This page documents the language specification for the azure package. If you're looking for help working with the inputs, outputs, or functions of azure resources in a Pulumi program, please see the resource documentation for examples and API reference.

compute

This provider is a derived work of the Terraform Provider distributed under MPL 2.0. If you encounter a bug or missing feature, first check the pulumi/pulumi-azure repo; however, if that doesn’t turn up anything, please consult the source terraform-providers/terraform-provider-azurerm repo.

class pulumi_azure.compute.AvailabilitySet(resource_name, opts=None, location=None, managed=None, name=None, platform_fault_domain_count=None, platform_update_domain_count=None, proximity_placement_group_id=None, resource_group_name=None, tags=None, __props__=None, __name__=None, __opts__=None)

Manages an Availability Set for Virtual Machines.

import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West Europe")
example_availability_set = azure.compute.AvailabilitySet("exampleAvailabilitySet",
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name,
    tags={
        "environment": "Production",
    })
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • location (pulumi.Input[str]) – Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • managed (pulumi.Input[bool]) – Specifies whether the availability set is managed or not. Possible values are true (to specify aligned) or false (to specify classic). Default is true.

  • name (pulumi.Input[str]) – Specifies the name of the availability set. Changing this forces a new resource to be created.

  • platform_fault_domain_count (pulumi.Input[float]) – Specifies the number of fault domains that are used. Defaults to 3.

  • platform_update_domain_count (pulumi.Input[float]) – Specifies the number of update domains that are used. Defaults to 5.

  • proximity_placement_group_id (pulumi.Input[str]) – The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created

  • resource_group_name (pulumi.Input[str]) – The name of the resource group in which to create the availability set. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

location: pulumi.Output[str] = None

Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

managed: pulumi.Output[bool] = None

Specifies whether the availability set is managed or not. Possible values are true (to specify aligned) or false (to specify classic). Default is true.

name: pulumi.Output[str] = None

Specifies the name of the availability set. Changing this forces a new resource to be created.

platform_fault_domain_count: pulumi.Output[float] = None

Specifies the number of fault domains that are used. Defaults to 3.

platform_update_domain_count: pulumi.Output[float] = None

Specifies the number of update domains that are used. Defaults to 5.

proximity_placement_group_id: pulumi.Output[str] = None

The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created

resource_group_name: pulumi.Output[str] = None

The name of the resource group in which to create the availability set. Changing this forces a new resource to be created.

tags: pulumi.Output[dict] = None

A mapping of tags to assign to the resource.

static get(resource_name, id, opts=None, location=None, managed=None, name=None, platform_fault_domain_count=None, platform_update_domain_count=None, proximity_placement_group_id=None, resource_group_name=None, tags=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • location (pulumi.Input[str]) – Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • managed (pulumi.Input[bool]) – Specifies whether the availability set is managed or not. Possible values are true (to specify aligned) or false (to specify classic). Default is true.

  • name (pulumi.Input[str]) – Specifies the name of the availability set. Changing this forces a new resource to be created.

  • platform_fault_domain_count (pulumi.Input[float]) – Specifies the number of fault domains that are used. Defaults to 3.

  • platform_update_domain_count (pulumi.Input[float]) – Specifies the number of update domains that are used. Defaults to 5.

  • proximity_placement_group_id (pulumi.Input[str]) – The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created

  • resource_group_name (pulumi.Input[str]) – The name of the resource group in which to create the availability set. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.AwaitableGetAvailabilitySetResult(id=None, location=None, managed=None, name=None, platform_fault_domain_count=None, platform_update_domain_count=None, resource_group_name=None, tags=None)
class pulumi_azure.compute.AwaitableGetDedicatedHostGroupResult(id=None, location=None, name=None, platform_fault_domain_count=None, resource_group_name=None, tags=None, zones=None)
class pulumi_azure.compute.AwaitableGetDedicatedHostResult(dedicated_host_group_name=None, id=None, location=None, name=None, resource_group_name=None, tags=None)
class pulumi_azure.compute.AwaitableGetDiskEncryptionSetResult(id=None, location=None, name=None, resource_group_name=None, tags=None)
class pulumi_azure.compute.AwaitableGetImageResult(data_disks=None, id=None, location=None, name=None, name_regex=None, os_disks=None, resource_group_name=None, sort_descending=None, tags=None, zone_resilient=None)
class pulumi_azure.compute.AwaitableGetManagedDiskResult(create_option=None, disk_encryption_set_id=None, disk_iops_read_write=None, disk_mbps_read_write=None, disk_size_gb=None, id=None, name=None, os_type=None, resource_group_name=None, source_resource_id=None, source_uri=None, storage_account_id=None, storage_account_type=None, tags=None, zones=None)
class pulumi_azure.compute.AwaitableGetPlatformImageResult(id=None, location=None, offer=None, publisher=None, sku=None, version=None)
class pulumi_azure.compute.AwaitableGetSharedImageGalleryResult(description=None, id=None, location=None, name=None, resource_group_name=None, tags=None, unique_name=None)
class pulumi_azure.compute.AwaitableGetSharedImageResult(description=None, eula=None, gallery_name=None, hyper_v_generation=None, id=None, identifiers=None, location=None, name=None, os_type=None, privacy_statement_uri=None, release_note_uri=None, resource_group_name=None, tags=None)
class pulumi_azure.compute.AwaitableGetSharedImageVersionResult(exclude_from_latest=None, gallery_name=None, id=None, image_name=None, location=None, managed_image_id=None, name=None, resource_group_name=None, tags=None, target_regions=None)
class pulumi_azure.compute.AwaitableGetSharedImageVersionsResult(gallery_name=None, id=None, image_name=None, images=None, resource_group_name=None, tags_filter=None)
class pulumi_azure.compute.AwaitableGetSnapshotResult(creation_option=None, disk_size_gb=None, encryption_settings=None, id=None, name=None, os_type=None, resource_group_name=None, source_resource_id=None, source_uri=None, storage_account_id=None, time_created=None)
class pulumi_azure.compute.AwaitableGetVirtualMachineResult(id=None, identities=None, location=None, name=None, resource_group_name=None)
class pulumi_azure.compute.AwaitableGetVirtualMachineScaleSetResult(id=None, identities=None, location=None, name=None, resource_group_name=None)
class pulumi_azure.compute.BastionHost(resource_name, opts=None, ip_configuration=None, location=None, name=None, resource_group_name=None, tags=None, __props__=None, __name__=None, __opts__=None)

Manages a Bastion Host.

Note: Bastion Hosts are a preview feature in Azure, and therefore are only supported in a select number of regions. Read more.

import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West Europe")
example_virtual_network = azure.network.VirtualNetwork("exampleVirtualNetwork",
    address_spaces=["192.168.1.0/24"],
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name)
example_subnet = azure.network.Subnet("exampleSubnet",
    resource_group_name=example_resource_group.name,
    virtual_network_name=example_virtual_network.name,
    address_prefix="192.168.1.224/27")
example_public_ip = azure.network.PublicIp("examplePublicIp",
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name,
    allocation_method="Static",
    sku="Standard")
example_bastion_host = azure.compute.BastionHost("exampleBastionHost",
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name,
    ip_configuration={
        "name": "configuration",
        "subnet_id": example_subnet.id,
        "public_ip_address_id": example_public_ip.id,
    })
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • ip_configuration (pulumi.Input[dict]) – A ip_configuration block as defined below.

  • location (pulumi.Input[str]) – Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the Bastion Host. Changing this forces a new resource to be created.

  • resource_group_name (pulumi.Input[str]) – The name of the resource group in which to create the Bastion Host.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

The ip_configuration object supports the following:

  • name (pulumi.Input[str]) - The name of the IP configuration.

  • public_ip_address_id (pulumi.Input[str]) - Reference to a Public IP Address to associate with this Bastion Host.

  • subnet_id (pulumi.Input[str]) - Reference to a subnet in which this Bastion Host has been created.

dns_name: pulumi.Output[str] = None

The FQDN for the Bastion Host.

ip_configuration: pulumi.Output[dict] = None

A ip_configuration block as defined below.

  • name (str) - The name of the IP configuration.

  • public_ip_address_id (str) - Reference to a Public IP Address to associate with this Bastion Host.

  • subnet_id (str) - Reference to a subnet in which this Bastion Host has been created.

location: pulumi.Output[str] = None

Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

name: pulumi.Output[str] = None

Specifies the name of the Bastion Host. Changing this forces a new resource to be created.

resource_group_name: pulumi.Output[str] = None

The name of the resource group in which to create the Bastion Host.

tags: pulumi.Output[dict] = None

A mapping of tags to assign to the resource.

static get(resource_name, id, opts=None, dns_name=None, ip_configuration=None, location=None, name=None, resource_group_name=None, tags=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • dns_name (pulumi.Input[str]) – The FQDN for the Bastion Host.

  • ip_configuration (pulumi.Input[dict]) – A ip_configuration block as defined below.

  • location (pulumi.Input[str]) – Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the Bastion Host. Changing this forces a new resource to be created.

  • resource_group_name (pulumi.Input[str]) – The name of the resource group in which to create the Bastion Host.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

The ip_configuration object supports the following:

  • name (pulumi.Input[str]) - The name of the IP configuration.

  • public_ip_address_id (pulumi.Input[str]) - Reference to a Public IP Address to associate with this Bastion Host.

  • subnet_id (pulumi.Input[str]) - Reference to a subnet in which this Bastion Host has been created.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.DataDiskAttachment(resource_name, opts=None, caching=None, create_option=None, lun=None, managed_disk_id=None, virtual_machine_id=None, write_accelerator_enabled=None, __props__=None, __name__=None, __opts__=None)

Manages attaching a Disk to a Virtual Machine.

NOTE: Data Disks can be attached either directly on the compute.VirtualMachine resource, or using the compute.DataDiskAttachment resource - but the two cannot be used together. If both are used against the same Virtual Machine, spurious changes will occur.

Please Note: only Managed Disks are supported via this separate resource, Unmanaged Disks can be attached using the storage_data_disk block in the compute.VirtualMachine resource.

import pulumi
import pulumi_azure as azure

config = pulumi.Config()
prefix = config.get("prefix")
if prefix is None:
    prefix = "example"
vm_name = f"{prefix}-vm"
main_resource_group = azure.core.ResourceGroup("mainResourceGroup", location="West Europe")
main_virtual_network = azure.network.VirtualNetwork("mainVirtualNetwork",
    address_spaces=["10.0.0.0/16"],
    location=main_resource_group.location,
    resource_group_name=main_resource_group.name)
internal = azure.network.Subnet("internal",
    resource_group_name=main_resource_group.name,
    virtual_network_name=main_virtual_network.name,
    address_prefix="10.0.2.0/24")
main_network_interface = azure.network.NetworkInterface("mainNetworkInterface",
    location=main_resource_group.location,
    resource_group_name=main_resource_group.name,
    ip_configuration=[{
        "name": "internal",
        "subnet_id": internal.id,
        "privateIpAddressAllocation": "Dynamic",
    }])
example_virtual_machine = azure.compute.VirtualMachine("exampleVirtualMachine",
    location=main_resource_group.location,
    resource_group_name=main_resource_group.name,
    network_interface_ids=[main_network_interface.id],
    vm_size="Standard_F2",
    storage_image_reference={
        "publisher": "Canonical",
        "offer": "UbuntuServer",
        "sku": "16.04-LTS",
        "version": "latest",
    },
    storage_os_disk={
        "name": "myosdisk1",
        "caching": "ReadWrite",
        "create_option": "FromImage",
        "managedDiskType": "Standard_LRS",
    },
    os_profile={
        "computer_name": vm_name,
        "admin_username": "testadmin",
        "admin_password": "Password1234!",
    },
    os_profile_linux_config={
        "disable_password_authentication": False,
    })
example_managed_disk = azure.compute.ManagedDisk("exampleManagedDisk",
    location=main_resource_group.location,
    resource_group_name=main_resource_group.name,
    storage_account_type="Standard_LRS",
    create_option="Empty",
    disk_size_gb=10)
example_data_disk_attachment = azure.compute.DataDiskAttachment("exampleDataDiskAttachment",
    managed_disk_id=example_managed_disk.id,
    virtual_machine_id=example_virtual_machine.id,
    lun="10",
    caching="ReadWrite")
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • caching (pulumi.Input[str]) – Specifies the caching requirements for this Data Disk. Possible values include None, ReadOnly and ReadWrite.

  • create_option (pulumi.Input[str]) – The Create Option of the Data Disk, such as Empty or Attach. Defaults to Attach. Changing this forces a new resource to be created.

  • lun (pulumi.Input[float]) – The Logical Unit Number of the Data Disk, which needs to be unique within the Virtual Machine. Changing this forces a new resource to be created.

  • managed_disk_id (pulumi.Input[str]) – The ID of an existing Managed Disk which should be attached. Changing this forces a new resource to be created.

  • virtual_machine_id (pulumi.Input[str]) – The ID of the Virtual Machine to which the Data Disk should be attached. Changing this forces a new resource to be created.

  • write_accelerator_enabled (pulumi.Input[bool]) – Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

caching: pulumi.Output[str] = None

Specifies the caching requirements for this Data Disk. Possible values include None, ReadOnly and ReadWrite.

create_option: pulumi.Output[str] = None

The Create Option of the Data Disk, such as Empty or Attach. Defaults to Attach. Changing this forces a new resource to be created.

lun: pulumi.Output[float] = None

The Logical Unit Number of the Data Disk, which needs to be unique within the Virtual Machine. Changing this forces a new resource to be created.

managed_disk_id: pulumi.Output[str] = None

The ID of an existing Managed Disk which should be attached. Changing this forces a new resource to be created.

virtual_machine_id: pulumi.Output[str] = None

The ID of the Virtual Machine to which the Data Disk should be attached. Changing this forces a new resource to be created.

write_accelerator_enabled: pulumi.Output[bool] = None

Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

static get(resource_name, id, opts=None, caching=None, create_option=None, lun=None, managed_disk_id=None, virtual_machine_id=None, write_accelerator_enabled=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • caching (pulumi.Input[str]) – Specifies the caching requirements for this Data Disk. Possible values include None, ReadOnly and ReadWrite.

  • create_option (pulumi.Input[str]) – The Create Option of the Data Disk, such as Empty or Attach. Defaults to Attach. Changing this forces a new resource to be created.

  • lun (pulumi.Input[float]) – The Logical Unit Number of the Data Disk, which needs to be unique within the Virtual Machine. Changing this forces a new resource to be created.

  • managed_disk_id (pulumi.Input[str]) – The ID of an existing Managed Disk which should be attached. Changing this forces a new resource to be created.

  • virtual_machine_id (pulumi.Input[str]) – The ID of the Virtual Machine to which the Data Disk should be attached. Changing this forces a new resource to be created.

  • write_accelerator_enabled (pulumi.Input[bool]) –

    Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.DedicatedHost(resource_name, opts=None, auto_replace_on_failure=None, dedicated_host_group_id=None, license_type=None, location=None, name=None, platform_fault_domain=None, sku_name=None, tags=None, __props__=None, __name__=None, __opts__=None)

Manage a Dedicated Host within a Dedicated Host Group.

import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West Europe")
example_dedicated_host_group = azure.compute.DedicatedHostGroup("exampleDedicatedHostGroup",
    resource_group_name=example_resource_group.name,
    location=example_resource_group.location,
    platform_fault_domain_count=2)
example_dedicated_host = azure.compute.DedicatedHost("exampleDedicatedHost",
    location=example_resource_group.location,
    dedicated_host_group_id=example_dedicated_host_group.id,
    sku_name="DSv3-Type1",
    platform_fault_domain=1)
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • auto_replace_on_failure (pulumi.Input[bool]) – Should the Dedicated Host automatically be replaced in case of a Hardware Failure? Defaults to true.

  • dedicated_host_group_id (pulumi.Input[str]) – Specifies the ID of the Dedicated Host Group where the Dedicated Host should exist. Changing this forces a new resource to be created.

  • license_type (pulumi.Input[str]) – Specifies the software license type that will be applied to the VMs deployed on the Dedicated Host. Possible values are None, Windows_Server_Hybrid and Windows_Server_Perpetual. Defaults to None.

  • location (pulumi.Input[str]) – Specify the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of this Dedicated Host. Changing this forces a new resource to be created.

  • platform_fault_domain (pulumi.Input[float]) – Specify the fault domain of the Dedicated Host Group in which to create the Dedicated Host. Changing this forces a new resource to be created.

  • sku_name (pulumi.Input[str]) – Specify the sku name of the Dedicated Host. Possible values are DSv3-Type1, DSv3-Type2, ESv3-Type1, ESv3-Type2,FSv2-Type2. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

auto_replace_on_failure: pulumi.Output[bool] = None

Should the Dedicated Host automatically be replaced in case of a Hardware Failure? Defaults to true.

dedicated_host_group_id: pulumi.Output[str] = None

Specifies the ID of the Dedicated Host Group where the Dedicated Host should exist. Changing this forces a new resource to be created.

license_type: pulumi.Output[str] = None

Specifies the software license type that will be applied to the VMs deployed on the Dedicated Host. Possible values are None, Windows_Server_Hybrid and Windows_Server_Perpetual. Defaults to None.

location: pulumi.Output[str] = None

Specify the supported Azure location where the resource exists. Changing this forces a new resource to be created.

name: pulumi.Output[str] = None

Specifies the name of this Dedicated Host. Changing this forces a new resource to be created.

platform_fault_domain: pulumi.Output[float] = None

Specify the fault domain of the Dedicated Host Group in which to create the Dedicated Host. Changing this forces a new resource to be created.

sku_name: pulumi.Output[str] = None

Specify the sku name of the Dedicated Host. Possible values are DSv3-Type1, DSv3-Type2, ESv3-Type1, ESv3-Type2,FSv2-Type2. Changing this forces a new resource to be created.

tags: pulumi.Output[dict] = None

A mapping of tags to assign to the resource.

static get(resource_name, id, opts=None, auto_replace_on_failure=None, dedicated_host_group_id=None, license_type=None, location=None, name=None, platform_fault_domain=None, sku_name=None, tags=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • auto_replace_on_failure (pulumi.Input[bool]) – Should the Dedicated Host automatically be replaced in case of a Hardware Failure? Defaults to true.

  • dedicated_host_group_id (pulumi.Input[str]) – Specifies the ID of the Dedicated Host Group where the Dedicated Host should exist. Changing this forces a new resource to be created.

  • license_type (pulumi.Input[str]) – Specifies the software license type that will be applied to the VMs deployed on the Dedicated Host. Possible values are None, Windows_Server_Hybrid and Windows_Server_Perpetual. Defaults to None.

  • location (pulumi.Input[str]) – Specify the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of this Dedicated Host. Changing this forces a new resource to be created.

  • platform_fault_domain (pulumi.Input[float]) – Specify the fault domain of the Dedicated Host Group in which to create the Dedicated Host. Changing this forces a new resource to be created.

  • sku_name (pulumi.Input[str]) – Specify the sku name of the Dedicated Host. Possible values are DSv3-Type1, DSv3-Type2, ESv3-Type1, ESv3-Type2,FSv2-Type2. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.DedicatedHostGroup(resource_name, opts=None, location=None, name=None, platform_fault_domain_count=None, resource_group_name=None, tags=None, zones=None, __props__=None, __name__=None, __opts__=None)

Manage a Dedicated Host Group.

import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West Europe")
example_dedicated_host_group = azure.compute.DedicatedHostGroup("exampleDedicatedHostGroup",
    resource_group_name=example_resource_group.name,
    location=example_resource_group.location,
    platform_fault_domain_count=1)
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • location (pulumi.Input[str]) – The Azure location where the Dedicated Host Group exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the Dedicated Host Group. Changing this forces a new resource to be created.

  • platform_fault_domain_count (pulumi.Input[float]) – The number of fault domains that the Dedicated Host Group spans. Changing this forces a new resource to be created.

  • resource_group_name (pulumi.Input[str]) – Specifies the name of the resource group the Dedicated Host Group is located in. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

  • zones (pulumi.Input[str]) – A list of Availability Zones in which the Dedicated Host Group should be located. Changing this forces a new resource to be created.

location: pulumi.Output[str] = None

The Azure location where the Dedicated Host Group exists. Changing this forces a new resource to be created.

name: pulumi.Output[str] = None

Specifies the name of the Dedicated Host Group. Changing this forces a new resource to be created.

platform_fault_domain_count: pulumi.Output[float] = None

The number of fault domains that the Dedicated Host Group spans. Changing this forces a new resource to be created.

resource_group_name: pulumi.Output[str] = None

Specifies the name of the resource group the Dedicated Host Group is located in. Changing this forces a new resource to be created.

tags: pulumi.Output[dict] = None

A mapping of tags to assign to the resource.

zones: pulumi.Output[str] = None

A list of Availability Zones in which the Dedicated Host Group should be located. Changing this forces a new resource to be created.

static get(resource_name, id, opts=None, location=None, name=None, platform_fault_domain_count=None, resource_group_name=None, tags=None, zones=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • location (pulumi.Input[str]) – The Azure location where the Dedicated Host Group exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the Dedicated Host Group. Changing this forces a new resource to be created.

  • platform_fault_domain_count (pulumi.Input[float]) – The number of fault domains that the Dedicated Host Group spans. Changing this forces a new resource to be created.

  • resource_group_name (pulumi.Input[str]) – Specifies the name of the resource group the Dedicated Host Group is located in. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

  • zones (pulumi.Input[str]) – A list of Availability Zones in which the Dedicated Host Group should be located. Changing this forces a new resource to be created.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.DiskEncryptionSet(resource_name, opts=None, identity=None, key_vault_key_id=None, location=None, name=None, resource_group_name=None, tags=None, __props__=None, __name__=None, __opts__=None)

Manages a Disk Encryption Set.

NOTE: At this time the Key Vault used to store the Active Key for this Disk Encryption Set must have both Soft Delete & Purge Protection enabled - which are not yet supported by this provider.

Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • identity (pulumi.Input[dict]) – A identity block defined below.

  • key_vault_key_id (pulumi.Input[str]) – Specifies the URL to a Key Vault Key (either from a Key Vault Key, or the Key URL for the Key Vault Secret).

  • location (pulumi.Input[str]) – Specifies the Azure Region where the Disk Encryption Set exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – The name of the Disk Encryption Set. Changing this forces a new resource to be created.

  • resource_group_name (pulumi.Input[str]) – Specifies the name of the Resource Group where the Disk Encryption Set should exist. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the Disk Encryption Set.

The identity object supports the following:

  • principal_id (pulumi.Input[str]) - The (Client) ID of the Service Principal.

  • tenant_id (pulumi.Input[str]) - The ID of the Tenant the Service Principal is assigned in.

  • type (pulumi.Input[str]) - The Type of Identity which should be used for this Disk Encryption Set. At this time the only possible value is SystemAssigned.

identity: pulumi.Output[dict] = None

A identity block defined below.

  • principal_id (str) - The (Client) ID of the Service Principal.

  • tenant_id (str) - The ID of the Tenant the Service Principal is assigned in.

  • type (str) - The Type of Identity which should be used for this Disk Encryption Set. At this time the only possible value is SystemAssigned.

key_vault_key_id: pulumi.Output[str] = None

Specifies the URL to a Key Vault Key (either from a Key Vault Key, or the Key URL for the Key Vault Secret).

location: pulumi.Output[str] = None

Specifies the Azure Region where the Disk Encryption Set exists. Changing this forces a new resource to be created.

name: pulumi.Output[str] = None

The name of the Disk Encryption Set. Changing this forces a new resource to be created.

resource_group_name: pulumi.Output[str] = None

Specifies the name of the Resource Group where the Disk Encryption Set should exist. Changing this forces a new resource to be created.

tags: pulumi.Output[dict] = None

A mapping of tags to assign to the Disk Encryption Set.

static get(resource_name, id, opts=None, identity=None, key_vault_key_id=None, location=None, name=None, resource_group_name=None, tags=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • identity (pulumi.Input[dict]) – A identity block defined below.

  • key_vault_key_id (pulumi.Input[str]) – Specifies the URL to a Key Vault Key (either from a Key Vault Key, or the Key URL for the Key Vault Secret).

  • location (pulumi.Input[str]) – Specifies the Azure Region where the Disk Encryption Set exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – The name of the Disk Encryption Set. Changing this forces a new resource to be created.

  • resource_group_name (pulumi.Input[str]) – Specifies the name of the Resource Group where the Disk Encryption Set should exist. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the Disk Encryption Set.

The identity object supports the following:

  • principal_id (pulumi.Input[str]) - The (Client) ID of the Service Principal.

  • tenant_id (pulumi.Input[str]) - The ID of the Tenant the Service Principal is assigned in.

  • type (pulumi.Input[str]) - The Type of Identity which should be used for this Disk Encryption Set. At this time the only possible value is SystemAssigned.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.Extension(resource_name, opts=None, auto_upgrade_minor_version=None, name=None, protected_settings=None, publisher=None, settings=None, tags=None, type=None, type_handler_version=None, virtual_machine_id=None, __props__=None, __name__=None, __opts__=None)

Manages a Virtual Machine Extension to provide post deployment configuration and run automated tasks.

NOTE: Custom Script Extensions for Linux & Windows require that the commandToExecute returns a 0 exit code to be classified as successfully deployed. You can achieve this by appending exit 0 to the end of your commandToExecute.

NOTE: Custom Script Extensions require that the Azure Virtual Machine Guest Agent is running on the Virtual Machine.

import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West US")
example_virtual_network = azure.network.VirtualNetwork("exampleVirtualNetwork",
    address_spaces=["10.0.0.0/16"],
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name)
example_subnet = azure.network.Subnet("exampleSubnet",
    resource_group_name=example_resource_group.name,
    virtual_network_name=example_virtual_network.name,
    address_prefix="10.0.2.0/24")
example_network_interface = azure.network.NetworkInterface("exampleNetworkInterface",
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name,
    ip_configuration=[{
        "name": "testconfiguration1",
        "subnet_id": example_subnet.id,
        "privateIpAddressAllocation": "Dynamic",
    }])
example_account = azure.storage.Account("exampleAccount",
    resource_group_name=example_resource_group.name,
    location=example_resource_group.location,
    account_tier="Standard",
    account_replication_type="LRS",
    tags={
        "environment": "staging",
    })
example_container = azure.storage.Container("exampleContainer",
    storage_account_name=example_account.name,
    container_access_type="private")
example_virtual_machine = azure.compute.VirtualMachine("exampleVirtualMachine",
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name,
    network_interface_ids=[example_network_interface.id],
    vm_size="Standard_F2",
    storage_image_reference={
        "publisher": "Canonical",
        "offer": "UbuntuServer",
        "sku": "16.04-LTS",
        "version": "latest",
    },
    storage_os_disk={
        "name": "myosdisk1",
        "vhdUri": pulumi.Output.all(example_account.primary_blob_endpoint, example_container.name).apply(lambda primary_blob_endpoint, name: f"{primary_blob_endpoint}{name}/myosdisk1.vhd"),
        "caching": "ReadWrite",
        "create_option": "FromImage",
    },
    os_profile={
        "computer_name": "hostname",
        "admin_username": "testadmin",
        "admin_password": "Password1234!",
    },
    os_profile_linux_config={
        "disable_password_authentication": False,
    },
    tags={
        "environment": "staging",
    })
example_extension = azure.compute.Extension("exampleExtension",
    virtual_machine_id=example_virtual_machine.id,
    publisher="Microsoft.Azure.Extensions",
    type="CustomScript",
    type_handler_version="2.0",
    settings="""        {
                "commandToExecute": "hostname && uptime"
        }
""",
    tags={
        "environment": "Production",
    })
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • auto_upgrade_minor_version (pulumi.Input[bool]) – Specifies if the platform deploys the latest minor version update to the type_handler_version specified.

  • name (pulumi.Input[str]) – The name of the virtual machine extension peering. Changing this forces a new resource to be created.

  • protected_settings (pulumi.Input[str]) – The protected_settings passed to the extension, like settings, these are specified as a JSON object in a string.

  • publisher (pulumi.Input[str]) – The publisher of the extension, available publishers can be found by using the Azure CLI.

  • settings (pulumi.Input[str]) – The settings passed to the extension, these are specified as a JSON object in a string.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

  • type (pulumi.Input[str]) – The type of extension, available types for a publisher can be found using the Azure CLI.

  • type_handler_version (pulumi.Input[str]) – Specifies the version of the extension to use, available versions can be found using the Azure CLI.

  • virtual_machine_id (pulumi.Input[str]) – The ID of the Virtual Machine. Changing this forces a new resource to be created

auto_upgrade_minor_version: pulumi.Output[bool] = None

Specifies if the platform deploys the latest minor version update to the type_handler_version specified.

name: pulumi.Output[str] = None

The name of the virtual machine extension peering. Changing this forces a new resource to be created.

protected_settings: pulumi.Output[str] = None

The protected_settings passed to the extension, like settings, these are specified as a JSON object in a string.

publisher: pulumi.Output[str] = None

The publisher of the extension, available publishers can be found by using the Azure CLI.

settings: pulumi.Output[str] = None

The settings passed to the extension, these are specified as a JSON object in a string.

tags: pulumi.Output[dict] = None

A mapping of tags to assign to the resource.

type: pulumi.Output[str] = None

The type of extension, available types for a publisher can be found using the Azure CLI.

type_handler_version: pulumi.Output[str] = None

Specifies the version of the extension to use, available versions can be found using the Azure CLI.

virtual_machine_id: pulumi.Output[str] = None

The ID of the Virtual Machine. Changing this forces a new resource to be created

static get(resource_name, id, opts=None, auto_upgrade_minor_version=None, name=None, protected_settings=None, publisher=None, settings=None, tags=None, type=None, type_handler_version=None, virtual_machine_id=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • auto_upgrade_minor_version (pulumi.Input[bool]) – Specifies if the platform deploys the latest minor version update to the type_handler_version specified.

  • name (pulumi.Input[str]) – The name of the virtual machine extension peering. Changing this forces a new resource to be created.

  • protected_settings (pulumi.Input[str]) – The protected_settings passed to the extension, like settings, these are specified as a JSON object in a string.

  • publisher (pulumi.Input[str]) – The publisher of the extension, available publishers can be found by using the Azure CLI.

  • settings (pulumi.Input[str]) – The settings passed to the extension, these are specified as a JSON object in a string.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

  • type (pulumi.Input[str]) – The type of extension, available types for a publisher can be found using the Azure CLI.

  • type_handler_version (pulumi.Input[str]) – Specifies the version of the extension to use, available versions can be found using the Azure CLI.

  • virtual_machine_id (pulumi.Input[str]) – The ID of the Virtual Machine. Changing this forces a new resource to be created

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.GetAvailabilitySetResult(id=None, location=None, managed=None, name=None, platform_fault_domain_count=None, platform_update_domain_count=None, resource_group_name=None, tags=None)

A collection of values returned by getAvailabilitySet.

id = None

The provider-assigned unique ID for this managed resource.

location = None

The supported Azure location where the Availability Set exists.

managed = None

Whether the availability set is managed or not.

platform_fault_domain_count = None

The number of fault domains that are used.

platform_update_domain_count = None

The number of update domains that are used.

tags = None

A mapping of tags assigned to the resource.

class pulumi_azure.compute.GetDedicatedHostGroupResult(id=None, location=None, name=None, platform_fault_domain_count=None, resource_group_name=None, tags=None, zones=None)

A collection of values returned by getDedicatedHostGroup.

id = None

The provider-assigned unique ID for this managed resource.

location = None

The Azure location where the Dedicated Host Group exists.

platform_fault_domain_count = None

The number of fault domains that the Dedicated Host Group spans.

tags = None

A mapping of tags assigned to the resource.

zones = None

The Availability Zones in which this Dedicated Host Group is located.

class pulumi_azure.compute.GetDedicatedHostResult(dedicated_host_group_name=None, id=None, location=None, name=None, resource_group_name=None, tags=None)

A collection of values returned by getDedicatedHost.

id = None

The provider-assigned unique ID for this managed resource.

location = None

The location where the Dedicated Host exists.

tags = None

A mapping of tags assigned to the Dedicated Host.

class pulumi_azure.compute.GetDiskEncryptionSetResult(id=None, location=None, name=None, resource_group_name=None, tags=None)

A collection of values returned by getDiskEncryptionSet.

id = None

The provider-assigned unique ID for this managed resource.

location = None

The location where the Disk Encryption Set exists.

tags = None

A mapping of tags assigned to the Disk Encryption Set.

class pulumi_azure.compute.GetImageResult(data_disks=None, id=None, location=None, name=None, name_regex=None, os_disks=None, resource_group_name=None, sort_descending=None, tags=None, zone_resilient=None)

A collection of values returned by getImage.

data_disks = None

a collection of data_disk blocks as defined below.

id = None

The provider-assigned unique ID for this managed resource.

location = None

the Azure Location where this Image exists.

name = None

the name of the Image.

os_disks = None

a os_disk block as defined below.

tags = None

a mapping of tags to assigned to the resource.

zone_resilient = None

is zone resiliency enabled?

class pulumi_azure.compute.GetManagedDiskResult(create_option=None, disk_encryption_set_id=None, disk_iops_read_write=None, disk_mbps_read_write=None, disk_size_gb=None, id=None, name=None, os_type=None, resource_group_name=None, source_resource_id=None, source_uri=None, storage_account_id=None, storage_account_type=None, tags=None, zones=None)

A collection of values returned by getManagedDisk.

disk_encryption_set_id = None

The ID of the Disk Encryption Set used to encrypt this Managed Disk.

disk_iops_read_write = None

The number of IOPS allowed for this disk, where one operation can transfer between 4k and 256k bytes.

disk_mbps_read_write = None

The bandwidth allowed for this disk.

disk_size_gb = None

The size of the Managed Disk in gigabytes.

id = None

The provider-assigned unique ID for this managed resource.

os_type = None

The operating system used for this Managed Disk.

source_resource_id = None

The ID of an existing Managed Disk which this Disk was created from.

source_uri = None

The Source URI for this Managed Disk.

storage_account_id = None

The ID of the Storage Account where the source_uri is located.

storage_account_type = None

The storage account type for the Managed Disk.

tags = None

A mapping of tags assigned to the resource.

zones = None

A list of Availability Zones where the Managed Disk exists.

class pulumi_azure.compute.GetPlatformImageResult(id=None, location=None, offer=None, publisher=None, sku=None, version=None)

A collection of values returned by getPlatformImage.

id = None

The provider-assigned unique ID for this managed resource.

class pulumi_azure.compute.GetSharedImageGalleryResult(description=None, id=None, location=None, name=None, resource_group_name=None, tags=None, unique_name=None)

A collection of values returned by getSharedImageGallery.

description = None

A description for the Shared Image Gallery.

id = None

The provider-assigned unique ID for this managed resource.

tags = None

A mapping of tags which are assigned to the Shared Image Gallery.

unique_name = None

The unique name assigned to the Shared Image Gallery.

class pulumi_azure.compute.GetSharedImageResult(description=None, eula=None, gallery_name=None, hyper_v_generation=None, id=None, identifiers=None, location=None, name=None, os_type=None, privacy_statement_uri=None, release_note_uri=None, resource_group_name=None, tags=None)

A collection of values returned by getSharedImage.

description = None

The description of this Shared Image.

eula = None

The End User Licence Agreement for the Shared Image.

hyper_v_generation = None

The generation of HyperV that the Virtual Machine used to create the Shared Image is based on.

id = None

The provider-assigned unique ID for this managed resource.

identifiers = None

An identifier block as defined below.

location = None

The supported Azure location where the Shared Image Gallery exists.

os_type = None

The type of Operating System present in this Shared Image.

privacy_statement_uri = None

The URI containing the Privacy Statement for this Shared Image.

release_note_uri = None

The URI containing the Release Notes for this Shared Image.

tags = None

A mapping of tags assigned to the Shared Image.

class pulumi_azure.compute.GetSharedImageVersionResult(exclude_from_latest=None, gallery_name=None, id=None, image_name=None, location=None, managed_image_id=None, name=None, resource_group_name=None, tags=None, target_regions=None)

A collection of values returned by getSharedImageVersion.

exclude_from_latest = None

Is this Image Version excluded from the latest filter?

id = None

The provider-assigned unique ID for this managed resource.

location = None

The supported Azure location where the Shared Image Gallery exists.

managed_image_id = None

The ID of the Managed Image which was the source of this Shared Image Version.

name = None

The Azure Region in which this Image Version exists.

tags = None

A mapping of tags assigned to the Shared Image.

target_regions = None

One or more target_region blocks as documented below.

class pulumi_azure.compute.GetSharedImageVersionsResult(gallery_name=None, id=None, image_name=None, images=None, resource_group_name=None, tags_filter=None)

A collection of values returned by getSharedImageVersions.

id = None

The provider-assigned unique ID for this managed resource.

images = None

An images block as defined below:

class pulumi_azure.compute.GetSnapshotResult(creation_option=None, disk_size_gb=None, encryption_settings=None, id=None, name=None, os_type=None, resource_group_name=None, source_resource_id=None, source_uri=None, storage_account_id=None, time_created=None)

A collection of values returned by getSnapshot.

disk_size_gb = None

The size of the Snapshotted Disk in GB.

id = None

The provider-assigned unique ID for this managed resource.

source_resource_id = None

The reference to an existing snapshot.

source_uri = None

The URI to a Managed or Unmanaged Disk.

storage_account_id = None

The ID of an storage account.

class pulumi_azure.compute.GetVirtualMachineResult(id=None, identities=None, location=None, name=None, resource_group_name=None)

A collection of values returned by getVirtualMachine.

id = None

The provider-assigned unique ID for this managed resource.

identities = None

A identity block as defined below.

class pulumi_azure.compute.GetVirtualMachineScaleSetResult(id=None, identities=None, location=None, name=None, resource_group_name=None)

A collection of values returned by getVirtualMachineScaleSet.

id = None

The provider-assigned unique ID for this managed resource.

identities = None

A identity block as defined below.

class pulumi_azure.compute.Image(resource_name, opts=None, data_disks=None, hyper_v_generation=None, location=None, name=None, os_disk=None, resource_group_name=None, source_virtual_machine_id=None, tags=None, zone_resilient=None, __props__=None, __name__=None, __opts__=None)

Manages a custom virtual machine image that can be used to create virtual machines.

import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West US")
example_image = azure.compute.Image("exampleImage",
    location="West US",
    resource_group_name=example_resource_group.name,
    os_disk={
        "os_type": "Linux",
        "osState": "Generalized",
        "blobUri": "{blob_uri}",
        "sizeGb": 30,
    })
import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West US")
example_image = azure.compute.Image("exampleImage",
    location="West US",
    resource_group_name=example_resource_group.name,
    source_virtual_machine_id="{vm_id}")
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • data_disks (pulumi.Input[list]) – One or more data_disk elements as defined below.

  • hyper_v_generation (pulumi.Input[str]) – The HyperVGenerationType of the VirtualMachine created from the image as V1, V2. The default is V1.

  • location (pulumi.Input[str]) – Specified the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the image. Changing this forces a new resource to be created.

  • os_disk (pulumi.Input[dict]) – One or more os_disk elements as defined below.

  • resource_group_name (pulumi.Input[str]) – The name of the resource group in which to create the image. Changing this forces a new resource to be created.

  • source_virtual_machine_id (pulumi.Input[str]) – The Virtual Machine ID from which to create the image.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

  • zone_resilient (pulumi.Input[bool]) – Is zone resiliency enabled? Defaults to false. Changing this forces a new resource to be created.

The data_disks object supports the following:

  • blobUri (pulumi.Input[str]) - Specifies the URI in Azure storage of the blob that you want to use to create the image.

  • caching (pulumi.Input[str]) - Specifies the caching mode as ReadWrite, ReadOnly, or None. The default is None.

  • lun (pulumi.Input[float]) - Specifies the logical unit number of the data disk.

  • managed_disk_id (pulumi.Input[str]) - Specifies the ID of the managed disk resource that you want to use to create the image.

  • sizeGb (pulumi.Input[float]) - Specifies the size of the image to be created. The target size can’t be smaller than the source size.

The os_disk object supports the following:

  • blobUri (pulumi.Input[str]) - Specifies the URI in Azure storage of the blob that you want to use to create the image.

  • caching (pulumi.Input[str]) - Specifies the caching mode as ReadWrite, ReadOnly, or None. The default is None.

  • managed_disk_id (pulumi.Input[str]) - Specifies the ID of the managed disk resource that you want to use to create the image.

  • osState (pulumi.Input[str]) - Specifies the state of the operating system contained in the blob. Currently, the only value is Generalized.

  • os_type (pulumi.Input[str]) - Specifies the type of operating system contained in the virtual machine image. Possible values are: Windows or Linux.

  • sizeGb (pulumi.Input[float]) - Specifies the size of the image to be created. The target size can’t be smaller than the source size.

data_disks: pulumi.Output[list] = None

One or more data_disk elements as defined below.

  • blobUri (str) - Specifies the URI in Azure storage of the blob that you want to use to create the image.

  • caching (str) - Specifies the caching mode as ReadWrite, ReadOnly, or None. The default is None.

  • lun (float) - Specifies the logical unit number of the data disk.

  • managed_disk_id (str) - Specifies the ID of the managed disk resource that you want to use to create the image.

  • sizeGb (float) - Specifies the size of the image to be created. The target size can’t be smaller than the source size.

hyper_v_generation: pulumi.Output[str] = None

The HyperVGenerationType of the VirtualMachine created from the image as V1, V2. The default is V1.

location: pulumi.Output[str] = None

Specified the supported Azure location where the resource exists. Changing this forces a new resource to be created.

name: pulumi.Output[str] = None

Specifies the name of the image. Changing this forces a new resource to be created.

os_disk: pulumi.Output[dict] = None

One or more os_disk elements as defined below.

  • blobUri (str) - Specifies the URI in Azure storage of the blob that you want to use to create the image.

  • caching (str) - Specifies the caching mode as ReadWrite, ReadOnly, or None. The default is None.

  • managed_disk_id (str) - Specifies the ID of the managed disk resource that you want to use to create the image.

  • osState (str) - Specifies the state of the operating system contained in the blob. Currently, the only value is Generalized.

  • os_type (str) - Specifies the type of operating system contained in the virtual machine image. Possible values are: Windows or Linux.

  • sizeGb (float) - Specifies the size of the image to be created. The target size can’t be smaller than the source size.

resource_group_name: pulumi.Output[str] = None

The name of the resource group in which to create the image. Changing this forces a new resource to be created.

source_virtual_machine_id: pulumi.Output[str] = None

The Virtual Machine ID from which to create the image.

tags: pulumi.Output[dict] = None

A mapping of tags to assign to the resource.

zone_resilient: pulumi.Output[bool] = None

Is zone resiliency enabled? Defaults to false. Changing this forces a new resource to be created.

static get(resource_name, id, opts=None, data_disks=None, hyper_v_generation=None, location=None, name=None, os_disk=None, resource_group_name=None, source_virtual_machine_id=None, tags=None, zone_resilient=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • data_disks (pulumi.Input[list]) – One or more data_disk elements as defined below.

  • hyper_v_generation (pulumi.Input[str]) – The HyperVGenerationType of the VirtualMachine created from the image as V1, V2. The default is V1.

  • location (pulumi.Input[str]) – Specified the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the image. Changing this forces a new resource to be created.

  • os_disk (pulumi.Input[dict]) – One or more os_disk elements as defined below.

  • resource_group_name (pulumi.Input[str]) – The name of the resource group in which to create the image. Changing this forces a new resource to be created.

  • source_virtual_machine_id (pulumi.Input[str]) – The Virtual Machine ID from which to create the image.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

  • zone_resilient (pulumi.Input[bool]) – Is zone resiliency enabled? Defaults to false. Changing this forces a new resource to be created.

The data_disks object supports the following:

  • blobUri (pulumi.Input[str]) - Specifies the URI in Azure storage of the blob that you want to use to create the image.

  • caching (pulumi.Input[str]) - Specifies the caching mode as ReadWrite, ReadOnly, or None. The default is None.

  • lun (pulumi.Input[float]) - Specifies the logical unit number of the data disk.

  • managed_disk_id (pulumi.Input[str]) - Specifies the ID of the managed disk resource that you want to use to create the image.

  • sizeGb (pulumi.Input[float]) - Specifies the size of the image to be created. The target size can’t be smaller than the source size.

The os_disk object supports the following:

  • blobUri (pulumi.Input[str]) - Specifies the URI in Azure storage of the blob that you want to use to create the image.

  • caching (pulumi.Input[str]) - Specifies the caching mode as ReadWrite, ReadOnly, or None. The default is None.

  • managed_disk_id (pulumi.Input[str]) - Specifies the ID of the managed disk resource that you want to use to create the image.

  • osState (pulumi.Input[str]) - Specifies the state of the operating system contained in the blob. Currently, the only value is Generalized.

  • os_type (pulumi.Input[str]) - Specifies the type of operating system contained in the virtual machine image. Possible values are: Windows or Linux.

  • sizeGb (pulumi.Input[float]) - Specifies the size of the image to be created. The target size can’t be smaller than the source size.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.LinuxVirtualMachine(resource_name, opts=None, additional_capabilities=None, admin_password=None, admin_ssh_keys=None, admin_username=None, allow_extension_operations=None, availability_set_id=None, boot_diagnostics=None, computer_name=None, custom_data=None, dedicated_host_id=None, disable_password_authentication=None, eviction_policy=None, identity=None, location=None, max_bid_price=None, name=None, network_interface_ids=None, os_disk=None, plan=None, priority=None, provision_vm_agent=None, proximity_placement_group_id=None, resource_group_name=None, secrets=None, size=None, source_image_id=None, source_image_reference=None, tags=None, virtual_machine_scale_set_id=None, zone=None, __props__=None, __name__=None, __opts__=None)

Manages a Linux Virtual Machine.

Note This provider will automatically remove the OS Disk by default - this behaviour can be configured using the features configuration within the Provider configuration block.

Note This resource does not support Unmanaged Disks. If you need to use Unmanaged Disks you can continue to use the compute.VirtualMachine resource instead.

Note This resource does not support attaching existing OS Disks. You can instead capture an image of the OS Disk or continue to use the compute.VirtualMachine resource instead.

In this release there’s a known issue where the public_ip_address and public_ip_addresses fields may not be fully populated for Dynamic Public IP’s.

import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West Europe")
example_virtual_network = azure.network.VirtualNetwork("exampleVirtualNetwork",
    address_spaces=["10.0.0.0/16"],
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name)
example_subnet = azure.network.Subnet("exampleSubnet",
    resource_group_name=example_resource_group.name,
    virtual_network_name=example_virtual_network.name,
    address_prefix="10.0.2.0/24")
example_network_interface = azure.network.NetworkInterface("exampleNetworkInterface",
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name,
    ip_configuration=[{
        "name": "internal",
        "subnet_id": example_subnet.id,
        "privateIpAddressAllocation": "Dynamic",
    }])
example_linux_virtual_machine = azure.compute.LinuxVirtualMachine("exampleLinuxVirtualMachine",
    resource_group_name=example_resource_group.name,
    location=example_resource_group.location,
    size="Standard_F2",
    admin_username="adminuser",
    network_interface_ids=[example_network_interface.id],
    admin_ssh_key=[{
        "username": "adminuser",
        "publicKey": (lambda path: open(path).read())("~/.ssh/id_rsa.pub"),
    }],
    os_disk={
        "caching": "ReadWrite",
        "storage_account_type": "Standard_LRS",
    },
    source_image_reference={
        "publisher": "Canonical",
        "offer": "UbuntuServer",
        "sku": "16.04-LTS",
        "version": "latest",
    })
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • additional_capabilities (pulumi.Input[dict]) – A additional_capabilities block as defined below.

  • admin_password (pulumi.Input[str]) – The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

  • admin_ssh_keys (pulumi.Input[list]) – One or more admin_ssh_key blocks as defined below.

  • admin_username (pulumi.Input[str]) – The username of the local administrator used for the Virtual Machine. Changing this forces a new resource to be created.

  • allow_extension_operations (pulumi.Input[bool]) – Should Extension Operations be allowed on this Virtual Machine? Changing this forces a new resource to be created.

  • availability_set_id (pulumi.Input[str]) – Specifies the ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.

  • boot_diagnostics (pulumi.Input[dict]) – A boot_diagnostics block as defined below.

  • computer_name (pulumi.Input[str]) – Specifies the Hostname which should be used for this Virtual Machine. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name, then you must specify computer_name. Changing this forces a new resource to be created.

  • custom_data (pulumi.Input[str]) – The Base64-Encoded Custom Data which should be used for this Virtual Machine. Changing this forces a new resource to be created.

  • dedicated_host_id (pulumi.Input[str]) – The ID of a Dedicated Host where this machine should be run on. Changing this forces a new resource to be created.

  • disable_password_authentication (pulumi.Input[bool]) – Should Password Authentication be disabled on this Virtual Machine? Defaults to true. Changing this forces a new resource to be created.

  • eviction_policy (pulumi.Input[str]) – Specifies what should happen when the Virtual Machine is evicted for price reasons when using a Spot instance. At this time the only supported value is Deallocate. Changing this forces a new resource to be created.

  • identity (pulumi.Input[dict]) – An identity block as defined below.

  • location (pulumi.Input[str]) – The Azure location where the Linux Virtual Machine should exist. Changing this forces a new resource to be created.

  • max_bid_price (pulumi.Input[float]) – The maximum price you’re willing to pay for this Virtual Machine, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machine will be evicted using the eviction_policy. Defaults to -1, which means that the Virtual Machine should not be evicted for price reasons.

  • name (pulumi.Input[str]) – The name of the Linux Virtual Machine. Changing this forces a new resource to be created.

  • network_interface_ids (pulumi.Input[list]) – . A list of Network Interface ID’s which should be attached to this Virtual Machine. The first Network Interface ID in this list will be the Primary Network Interface on the Virtual Machine.

  • os_disk (pulumi.Input[dict]) – A os_disk block as defined below.

  • plan (pulumi.Input[dict]) – A plan block as defined below. Changing this forces a new resource to be created.

  • priority (pulumi.Input[str]) – Specifies the priority of this Virtual Machine. Possible values are Regular and Spot. Defaults to Regular. Changing this forces a new resource to be created.

  • provision_vm_agent (pulumi.Input[bool]) – Should the Azure VM Agent be provisioned on this Virtual Machine? Defaults to true. Changing this forces a new resource to be created.

  • proximity_placement_group_id (pulumi.Input[str]) – The ID of the Proximity Placement Group which the Virtual Machine should be assigned to. Changing this forces a new resource to be created.

  • resource_group_name (pulumi.Input[str]) – The name of the Resource Group in which the Linux Virtual Machine should be exist. Changing this forces a new resource to be created.

  • secrets (pulumi.Input[list]) – One or more secret blocks as defined below.

  • size (pulumi.Input[str]) – The SKU which should be used for this Virtual Machine, such as Standard_F2.

  • source_image_id (pulumi.Input[str]) – The ID of the Image which this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • source_image_reference (pulumi.Input[dict]) – A source_image_reference block as defined below. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags which should be assigned to this Virtual Machine.

  • virtual_machine_scale_set_id (pulumi.Input[str]) – Specifies the Orchestrated Virtual Machine Scale Set that this Virtual Machine should be created within. Changing this forces a new resource to be created.

  • zone (pulumi.Input[str]) – The Zone in which this Virtual Machine should be created. Changing this forces a new resource to be created.

The additional_capabilities object supports the following:

  • ultraSsdEnabled (pulumi.Input[bool]) - Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine? Defaults to false. Changing this forces a new resource to be created.

The admin_ssh_keys object supports the following:

  • publicKey (pulumi.Input[str]) - The Public Key which should be used for authentication, which needs to be at least 2048-bit and in ssh-rsa format. Changing this forces a new resource to be created.

  • username (pulumi.Input[str]) - The Username for which this Public SSH Key should be configured. Changing this forces a new resource to be created.

The boot_diagnostics object supports the following:

  • storageAccountUri (pulumi.Input[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.

The identity object supports the following:

  • identityIds (pulumi.Input[list]) - A list of User Managed Identity ID’s which should be assigned to the Linux Virtual Machine.

  • principal_id (pulumi.Input[str]) - The ID of the System Managed Service Principal.

  • tenant_id (pulumi.Input[str]) - The ID of the Tenant the System Managed Service Principal is assigned in.

  • type (pulumi.Input[str]) - The type of Managed Identity which should be assigned to the Linux Virtual Machine. Possible values are SystemAssigned, UserAssigned and SystemAssigned, UserAssigned.

The os_disk object supports the following:

  • caching (pulumi.Input[str]) - The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.

  • diffDiskSettings (pulumi.Input[dict]) - A diff_disk_settings block as defined above.

    • option (pulumi.Input[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.

  • disk_encryption_set_id (pulumi.Input[str]) - The ID of the Disk Encryption Set which should be used to Encrypt this OS Disk.

  • disk_size_gb (pulumi.Input[float]) - The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine is sourced from.

  • name (pulumi.Input[str]) - The name which should be used for the Internal OS Disk. Changing this forces a new resource to be created.

  • storage_account_type (pulumi.Input[str]) - The Type of Storage Account which should back this the Internal OS Disk. Possible values are Standard_LRS, StandardSSD_LRS and Premium_LRS. Changing this forces a new resource to be created.

  • write_accelerator_enabled (pulumi.Input[bool]) - Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

The plan object supports the following:

  • name (pulumi.Input[str]) - Specifies the Name of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • product (pulumi.Input[str]) - Specifies the Product of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • publisher (pulumi.Input[str]) - Specifies the Publisher of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

The secrets object supports the following:

  • certificates (pulumi.Input[list]) - One or more certificate blocks as defined above.

    • url (pulumi.Input[str]) - The Secret URL of a Key Vault Certificate.

  • key_vault_id (pulumi.Input[str]) - The ID of the Key Vault from which all Secrets should be sourced.

The source_image_reference object supports the following:

  • offer (pulumi.Input[str]) - Specifies the offer of the image used to create the virtual machines.

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image used to create the virtual machines.

  • sku (pulumi.Input[str]) - Specifies the SKU of the image used to create the virtual machines.

  • version (pulumi.Input[str]) - Specifies the version of the image used to create the virtual machines.

additional_capabilities: pulumi.Output[dict] = None

A additional_capabilities block as defined below.

  • ultraSsdEnabled (bool) - Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine? Defaults to false. Changing this forces a new resource to be created.

admin_password: pulumi.Output[str] = None

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

admin_ssh_keys: pulumi.Output[list] = None

One or more admin_ssh_key blocks as defined below.

  • publicKey (str) - The Public Key which should be used for authentication, which needs to be at least 2048-bit and in ssh-rsa format. Changing this forces a new resource to be created.

  • username (str) - The Username for which this Public SSH Key should be configured. Changing this forces a new resource to be created.

admin_username: pulumi.Output[str] = None

The username of the local administrator used for the Virtual Machine. Changing this forces a new resource to be created.

allow_extension_operations: pulumi.Output[bool] = None

Should Extension Operations be allowed on this Virtual Machine? Changing this forces a new resource to be created.

availability_set_id: pulumi.Output[str] = None

Specifies the ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.

boot_diagnostics: pulumi.Output[dict] = None

A boot_diagnostics block as defined below.

  • storageAccountUri (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.

computer_name: pulumi.Output[str] = None

Specifies the Hostname which should be used for this Virtual Machine. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name, then you must specify computer_name. Changing this forces a new resource to be created.

custom_data: pulumi.Output[str] = None

The Base64-Encoded Custom Data which should be used for this Virtual Machine. Changing this forces a new resource to be created.

dedicated_host_id: pulumi.Output[str] = None

The ID of a Dedicated Host where this machine should be run on. Changing this forces a new resource to be created.

disable_password_authentication: pulumi.Output[bool] = None

Should Password Authentication be disabled on this Virtual Machine? Defaults to true. Changing this forces a new resource to be created.

eviction_policy: pulumi.Output[str] = None

Specifies what should happen when the Virtual Machine is evicted for price reasons when using a Spot instance. At this time the only supported value is Deallocate. Changing this forces a new resource to be created.

identity: pulumi.Output[dict] = None

An identity block as defined below.

  • identityIds (list) - A list of User Managed Identity ID’s which should be assigned to the Linux Virtual Machine.

  • principal_id (str) - The ID of the System Managed Service Principal.

  • tenant_id (str) - The ID of the Tenant the System Managed Service Principal is assigned in.

  • type (str) - The type of Managed Identity which should be assigned to the Linux Virtual Machine. Possible values are SystemAssigned, UserAssigned and SystemAssigned, UserAssigned.

location: pulumi.Output[str] = None

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

max_bid_price: pulumi.Output[float] = None

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

name: pulumi.Output[str] = None

The name of the Linux Virtual Machine. Changing this forces a new resource to be created.

network_interface_ids: pulumi.Output[list] = None

. A list of Network Interface ID’s which should be attached to this Virtual Machine. The first Network Interface ID in this list will be the Primary Network Interface on the Virtual Machine.

os_disk: pulumi.Output[dict] = None

A os_disk block as defined below.

  • caching (str) - The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.

  • diffDiskSettings (dict) - A diff_disk_settings block as defined above.

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

  • disk_encryption_set_id (str) - The ID of the Disk Encryption Set which should be used to Encrypt this OS Disk.

  • disk_size_gb (float) - The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine is sourced from.

  • name (str) - The name which should be used for the Internal OS Disk. Changing this forces a new resource to be created.

  • storage_account_type (str) - The Type of Storage Account which should back this the Internal OS Disk. Possible values are Standard_LRS, StandardSSD_LRS and Premium_LRS. Changing this forces a new resource to be created.

  • write_accelerator_enabled (bool) - Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

plan: pulumi.Output[dict] = None

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

  • name (str) - Specifies the Name of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • product (str) - Specifies the Product of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • publisher (str) - Specifies the Publisher of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

priority: pulumi.Output[str] = None

Specifies the priority of this Virtual Machine. Possible values are Regular and Spot. Defaults to Regular. Changing this forces a new resource to be created.

private_ip_address: pulumi.Output[str] = None

The Primary Private IP Address assigned to this Virtual Machine.

private_ip_addresses: pulumi.Output[list] = None

A list of Private IP Addresses assigned to this Virtual Machine.

provision_vm_agent: pulumi.Output[bool] = None

Should the Azure VM Agent be provisioned on this Virtual Machine? Defaults to true. Changing this forces a new resource to be created.

proximity_placement_group_id: pulumi.Output[str] = None

The ID of the Proximity Placement Group which the Virtual Machine should be assigned to. Changing this forces a new resource to be created.

public_ip_address: pulumi.Output[str] = None

The Primary Public IP Address assigned to this Virtual Machine.

public_ip_addresses: pulumi.Output[list] = None

A list of the Public IP Addresses assigned to this Virtual Machine.

resource_group_name: pulumi.Output[str] = None

The name of the Resource Group in which the Linux Virtual Machine should be exist. Changing this forces a new resource to be created.

secrets: pulumi.Output[list] = None

One or more secret blocks as defined below.

  • certificates (list) - One or more certificate blocks as defined above.

    • url (str) - The Secret URL of a Key Vault Certificate.

  • key_vault_id (str) - The ID of the Key Vault from which all Secrets should be sourced.

size: pulumi.Output[str] = None

The SKU which should be used for this Virtual Machine, such as Standard_F2.

source_image_id: pulumi.Output[str] = None

The ID of the Image which this Virtual Machine should be created from. Changing this forces a new resource to be created.

source_image_reference: pulumi.Output[dict] = None

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

  • offer (str) - Specifies the offer of the image used to create the virtual machines.

  • publisher (str) - Specifies the publisher of the image used to create the virtual machines.

  • sku (str) - Specifies the SKU of the image used to create the virtual machines.

  • version (str) - Specifies the version of the image used to create the virtual machines.

tags: pulumi.Output[dict] = None

A mapping of tags which should be assigned to this Virtual Machine.

virtual_machine_id: pulumi.Output[str] = None

A 128-bit identifier which uniquely identifies this Virtual Machine.

virtual_machine_scale_set_id: pulumi.Output[str] = None

Specifies the Orchestrated Virtual Machine Scale Set that this Virtual Machine should be created within. Changing this forces a new resource to be created.

zone: pulumi.Output[str] = None

The Zone in which this Virtual Machine should be created. Changing this forces a new resource to be created.

static get(resource_name, id, opts=None, additional_capabilities=None, admin_password=None, admin_ssh_keys=None, admin_username=None, allow_extension_operations=None, availability_set_id=None, boot_diagnostics=None, computer_name=None, custom_data=None, dedicated_host_id=None, disable_password_authentication=None, eviction_policy=None, identity=None, location=None, max_bid_price=None, name=None, network_interface_ids=None, os_disk=None, plan=None, priority=None, private_ip_address=None, private_ip_addresses=None, provision_vm_agent=None, proximity_placement_group_id=None, public_ip_address=None, public_ip_addresses=None, resource_group_name=None, secrets=None, size=None, source_image_id=None, source_image_reference=None, tags=None, virtual_machine_id=None, virtual_machine_scale_set_id=None, zone=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • additional_capabilities (pulumi.Input[dict]) – A additional_capabilities block as defined below.

  • admin_password (pulumi.Input[str]) – The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

  • admin_ssh_keys (pulumi.Input[list]) – One or more admin_ssh_key blocks as defined below.

  • admin_username (pulumi.Input[str]) – The username of the local administrator used for the Virtual Machine. Changing this forces a new resource to be created.

  • allow_extension_operations (pulumi.Input[bool]) – Should Extension Operations be allowed on this Virtual Machine? Changing this forces a new resource to be created.

  • availability_set_id (pulumi.Input[str]) – Specifies the ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.

  • boot_diagnostics (pulumi.Input[dict]) – A boot_diagnostics block as defined below.

  • computer_name (pulumi.Input[str]) – Specifies the Hostname which should be used for this Virtual Machine. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name, then you must specify computer_name. Changing this forces a new resource to be created.

  • custom_data (pulumi.Input[str]) – The Base64-Encoded Custom Data which should be used for this Virtual Machine. Changing this forces a new resource to be created.

  • dedicated_host_id (pulumi.Input[str]) – The ID of a Dedicated Host where this machine should be run on. Changing this forces a new resource to be created.

  • disable_password_authentication (pulumi.Input[bool]) – Should Password Authentication be disabled on this Virtual Machine? Defaults to true. Changing this forces a new resource to be created.

  • eviction_policy (pulumi.Input[str]) – Specifies what should happen when the Virtual Machine is evicted for price reasons when using a Spot instance. At this time the only supported value is Deallocate. Changing this forces a new resource to be created.

  • identity (pulumi.Input[dict]) – An identity block as defined below.

  • location (pulumi.Input[str]) – The Azure location where the Linux Virtual Machine should exist. Changing this forces a new resource to be created.

  • max_bid_price (pulumi.Input[float]) – The maximum price you’re willing to pay for this Virtual Machine, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machine will be evicted using the eviction_policy. Defaults to -1, which means that the Virtual Machine should not be evicted for price reasons.

  • name (pulumi.Input[str]) – The name of the Linux Virtual Machine. Changing this forces a new resource to be created.

  • network_interface_ids (pulumi.Input[list]) – . A list of Network Interface ID’s which should be attached to this Virtual Machine. The first Network Interface ID in this list will be the Primary Network Interface on the Virtual Machine.

  • os_disk (pulumi.Input[dict]) – A os_disk block as defined below.

  • plan (pulumi.Input[dict]) – A plan block as defined below. Changing this forces a new resource to be created.

  • priority (pulumi.Input[str]) – Specifies the priority of this Virtual Machine. Possible values are Regular and Spot. Defaults to Regular. Changing this forces a new resource to be created.

  • private_ip_address (pulumi.Input[str]) – The Primary Private IP Address assigned to this Virtual Machine.

  • private_ip_addresses (pulumi.Input[list]) – A list of Private IP Addresses assigned to this Virtual Machine.

  • provision_vm_agent (pulumi.Input[bool]) – Should the Azure VM Agent be provisioned on this Virtual Machine? Defaults to true. Changing this forces a new resource to be created.

  • proximity_placement_group_id (pulumi.Input[str]) – The ID of the Proximity Placement Group which the Virtual Machine should be assigned to. Changing this forces a new resource to be created.

  • public_ip_address (pulumi.Input[str]) – The Primary Public IP Address assigned to this Virtual Machine.

  • public_ip_addresses (pulumi.Input[list]) – A list of the Public IP Addresses assigned to this Virtual Machine.

  • resource_group_name (pulumi.Input[str]) – The name of the Resource Group in which the Linux Virtual Machine should be exist. Changing this forces a new resource to be created.

  • secrets (pulumi.Input[list]) – One or more secret blocks as defined below.

  • size (pulumi.Input[str]) – The SKU which should be used for this Virtual Machine, such as Standard_F2.

  • source_image_id (pulumi.Input[str]) – The ID of the Image which this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • source_image_reference (pulumi.Input[dict]) – A source_image_reference block as defined below. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags which should be assigned to this Virtual Machine.

  • virtual_machine_id (pulumi.Input[str]) – A 128-bit identifier which uniquely identifies this Virtual Machine.

  • virtual_machine_scale_set_id (pulumi.Input[str]) – Specifies the Orchestrated Virtual Machine Scale Set that this Virtual Machine should be created within. Changing this forces a new resource to be created.

  • zone (pulumi.Input[str]) – The Zone in which this Virtual Machine should be created. Changing this forces a new resource to be created.

The additional_capabilities object supports the following:

  • ultraSsdEnabled (pulumi.Input[bool]) - Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine? Defaults to false. Changing this forces a new resource to be created.

The admin_ssh_keys object supports the following:

  • publicKey (pulumi.Input[str]) - The Public Key which should be used for authentication, which needs to be at least 2048-bit and in ssh-rsa format. Changing this forces a new resource to be created.

  • username (pulumi.Input[str]) - The Username for which this Public SSH Key should be configured. Changing this forces a new resource to be created.

The boot_diagnostics object supports the following:

  • storageAccountUri (pulumi.Input[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.

The identity object supports the following:

  • identityIds (pulumi.Input[list]) - A list of User Managed Identity ID’s which should be assigned to the Linux Virtual Machine.

  • principal_id (pulumi.Input[str]) - The ID of the System Managed Service Principal.

  • tenant_id (pulumi.Input[str]) - The ID of the Tenant the System Managed Service Principal is assigned in.

  • type (pulumi.Input[str]) - The type of Managed Identity which should be assigned to the Linux Virtual Machine. Possible values are SystemAssigned, UserAssigned and SystemAssigned, UserAssigned.

The os_disk object supports the following:

  • caching (pulumi.Input[str]) - The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.

  • diffDiskSettings (pulumi.Input[dict]) - A diff_disk_settings block as defined above.

    • option (pulumi.Input[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.

  • disk_encryption_set_id (pulumi.Input[str]) - The ID of the Disk Encryption Set which should be used to Encrypt this OS Disk.

  • disk_size_gb (pulumi.Input[float]) - The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine is sourced from.

  • name (pulumi.Input[str]) - The name which should be used for the Internal OS Disk. Changing this forces a new resource to be created.

  • storage_account_type (pulumi.Input[str]) - The Type of Storage Account which should back this the Internal OS Disk. Possible values are Standard_LRS, StandardSSD_LRS and Premium_LRS. Changing this forces a new resource to be created.

  • write_accelerator_enabled (pulumi.Input[bool]) - Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

The plan object supports the following:

  • name (pulumi.Input[str]) - Specifies the Name of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • product (pulumi.Input[str]) - Specifies the Product of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • publisher (pulumi.Input[str]) - Specifies the Publisher of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

The secrets object supports the following:

  • certificates (pulumi.Input[list]) - One or more certificate blocks as defined above.

    • url (pulumi.Input[str]) - The Secret URL of a Key Vault Certificate.

  • key_vault_id (pulumi.Input[str]) - The ID of the Key Vault from which all Secrets should be sourced.

The source_image_reference object supports the following:

  • offer (pulumi.Input[str]) - Specifies the offer of the image used to create the virtual machines.

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image used to create the virtual machines.

  • sku (pulumi.Input[str]) - Specifies the SKU of the image used to create the virtual machines.

  • version (pulumi.Input[str]) - Specifies the version of the image used to create the virtual machines.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.LinuxVirtualMachineScaleSet(resource_name, opts=None, additional_capabilities=None, admin_password=None, admin_ssh_keys=None, admin_username=None, automatic_instance_repair=None, automatic_os_upgrade_policy=None, boot_diagnostics=None, computer_name_prefix=None, custom_data=None, data_disks=None, disable_password_authentication=None, do_not_run_extensions_on_overprovisioned_machines=None, eviction_policy=None, health_probe_id=None, identity=None, instances=None, location=None, max_bid_price=None, name=None, network_interfaces=None, os_disk=None, overprovision=None, plan=None, priority=None, provision_vm_agent=None, proximity_placement_group_id=None, resource_group_name=None, rolling_upgrade_policy=None, scale_in_policy=None, secrets=None, single_placement_group=None, sku=None, source_image_id=None, source_image_reference=None, tags=None, terminate_notification=None, upgrade_mode=None, zone_balance=None, zones=None, __props__=None, __name__=None, __opts__=None)

Manages a Linux Virtual Machine Scale Set.

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 configuration within the Provider configuration block.

Note: This resource does not support Unmanaged Disks. If you need to use Unmanaged Disks you can continue to use the compute.ScaleSet resource instead

import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West Europe")
example_virtual_network = azure.network.VirtualNetwork("exampleVirtualNetwork",
    resource_group_name=example_resource_group.name,
    location=example_resource_group.location,
    address_spaces=["10.0.0.0/16"])
internal = azure.network.Subnet("internal",
    resource_group_name=example_resource_group.name,
    virtual_network_name=example_virtual_network.name,
    address_prefix="10.0.2.0/24")
example_linux_virtual_machine_scale_set = azure.compute.LinuxVirtualMachineScaleSet("exampleLinuxVirtualMachineScaleSet",
    resource_group_name=example_resource_group.name,
    location=example_resource_group.location,
    sku="Standard_F2",
    instances=1,
    admin_username="adminuser",
    admin_ssh_key=[{
        "username": "adminuser",
        "publicKey": (lambda path: open(path).read())("~/.ssh/id_rsa.pub"),
    }],
    source_image_reference={
        "publisher": "Canonical",
        "offer": "UbuntuServer",
        "sku": "16.04-LTS",
        "version": "latest",
    },
    os_disk={
        "storage_account_type": "Standard_LRS",
        "caching": "ReadWrite",
    },
    network_interface=[{
        "name": "example",
        "primary": True,
        "ip_configuration": [{
            "name": "internal",
            "primary": True,
            "subnet_id": internal.id,
        }],
    }])
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • additional_capabilities (pulumi.Input[dict]) – A additional_capabilities block as defined below.

  • admin_password (pulumi.Input[str]) – The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

  • admin_ssh_keys (pulumi.Input[list]) – One or more admin_ssh_key blocks as defined below.

  • admin_username (pulumi.Input[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 (pulumi.Input[dict]) – A 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.

  • automatic_os_upgrade_policy (pulumi.Input[dict]) – A automatic_os_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic.

  • boot_diagnostics (pulumi.Input[dict]) – A boot_diagnostics block as defined below.

  • computer_name_prefix (pulumi.Input[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.

  • custom_data (pulumi.Input[str]) – The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.

  • data_disks (pulumi.Input[list]) – One or more data_disk blocks as defined below.

  • disable_password_authentication (pulumi.Input[bool]) – Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to true.

  • do_not_run_extensions_on_overprovisioned_machines (pulumi.Input[bool]) – Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.

  • eviction_policy (pulumi.Input[str]) – The Policy which should be used Virtual Machines are Evicted from the Scale Set. Changing this forces a new resource to be created.

  • health_probe_id (pulumi.Input[str]) – The ID of a Load Balancer Probe which should be used to determine the health of an instance. Changing this forces a new resource to be created. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.

  • identity (pulumi.Input[dict]) – A identity block as defined below.

  • instances (pulumi.Input[float]) – The number of Virtual Machines in the Scale Set.

  • location (pulumi.Input[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 (pulumi.Input[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.

  • name (pulumi.Input[str]) – The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.

  • network_interfaces (pulumi.Input[list]) – One or more network_interface blocks as defined below.

  • os_disk (pulumi.Input[dict]) – An os_disk block as defined below.

  • overprovision (pulumi.Input[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 false.

  • priority (pulumi.Input[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.

  • provision_vm_agent (pulumi.Input[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 (pulumi.Input[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 (pulumi.Input[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 (pulumi.Input[dict]) – 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.

  • scale_in_policy (pulumi.Input[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.

  • secrets (pulumi.Input[list]) – One or more secret blocks as defined below.

  • single_placement_group (pulumi.Input[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 (pulumi.Input[str]) – The Virtual Machine SKU for the Scale Set, such as Standard_F2.

  • source_image_id (pulumi.Input[str]) – The ID of an Image which each Virtual Machine in this Scale Set should be based on.

  • source_image_reference (pulumi.Input[dict]) – A source_image_reference block as defined below.

  • tags (pulumi.Input[dict]) – A mapping of tags which should be assigned to this Virtual Machine Scale Set.

  • terminate_notification (pulumi.Input[dict]) – A terminate_notification block as defined below.

  • upgrade_mode (pulumi.Input[str]) – Specifies how Upgrades (e.g. changing the Image/SKU) should be performed to Virtual Machine Instances. Possible values are Automatic, Manual and Rolling. Defaults to Manual.

  • zone_balance (pulumi.Input[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.

  • zones (pulumi.Input[list]) – A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.

The additional_capabilities object supports the following:

  • ultraSsdEnabled (pulumi.Input[bool]) - Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine Scale Set? Defaults to false. Changing this forces a new resource to be created.

The admin_ssh_keys object supports the following:

  • publicKey (pulumi.Input[str]) - The Public Key which should be used for authentication, which needs to be at least 2048-bit and in ssh-rsa format.

  • username (pulumi.Input[str]) - The Username for which this Public SSH Key should be configured.

The automatic_instance_repair object supports the following:

  • enabled (pulumi.Input[bool]) - Should the automatic instance repair be enabled on this Virtual Machine Scale Set?

  • gracePeriod (pulumi.Input[str]) - Amount of time (in minutes, between 30 and 90, defaults to 30 minutes) 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.

The automatic_os_upgrade_policy object supports the following:

  • disableAutomaticRollback (pulumi.Input[bool]) - Should automatic rollbacks be disabled? Changing this forces a new resource to be created.

  • enableAutomaticOsUpgrade (pulumi.Input[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? Changing this forces a new resource to be created.

The boot_diagnostics object supports the following:

  • storageAccountUri (pulumi.Input[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.

The data_disks object supports the following:

  • caching (pulumi.Input[str]) - The type of Caching which should be used for this Data Disk. Possible values are None, ReadOnly and ReadWrite.

  • create_option (pulumi.Input[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 (pulumi.Input[str]) - The ID of the Disk Encryption Set which should be used to encrypt this Data Disk.

  • disk_size_gb (pulumi.Input[float]) - The size of the Data Disk which should be created.

  • lun (pulumi.Input[float]) - The Logical Unit Number of the Data Disk, which must be unique within the Virtual Machine.

  • storage_account_type (pulumi.Input[str]) - The Type of Storage Account which should back this Data Disk. Possible values include Standard_LRS, StandardSSD_LRS, Premium_LRS and UltraSSD_LRS.

  • write_accelerator_enabled (pulumi.Input[bool]) - Should Write Accelerator be enabled for this Data Disk? Defaults to false.

The identity object supports the following:

  • identityIds (pulumi.Input[list]) - A list of User Managed Identity ID’s which should be assigned to the Linux Virtual Machine Scale Set.

  • principal_id (pulumi.Input[str]) - The ID of the System Managed Service Principal.

  • type (pulumi.Input[str]) - The type of Managed Identity which should be assigned to the Linux Virtual Machine Scale Set. Possible values are SystemAssigned, UserAssigned and SystemAssigned, UserAssigned.

The network_interfaces object supports the following:

  • dns_servers (pulumi.Input[list]) - A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.

  • enable_accelerated_networking (pulumi.Input[bool]) - Does this Network Interface support Accelerated Networking? Defaults to false.

  • enable_ip_forwarding (pulumi.Input[bool]) - Does this Network Interface support IP Forwarding? Defaults to false.

  • ip_configurations (pulumi.Input[list]) - One or more ip_configuration blocks as defined above.

    • applicationGatewayBackendAddressPoolIds (pulumi.Input[list]) - A list of Backend Address Pools ID’s from a Application Gateway which this Virtual Machine Scale Set should be connected to.

    • applicationSecurityGroupIds (pulumi.Input[list]) - A list of Application Security Group ID’s which this Virtual Machine Scale Set should be connected to.

    • loadBalancerBackendAddressPoolIds (pulumi.Input[list]) - A list of Backend Address Pools ID’s from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    • loadBalancerInboundNatRulesIds (pulumi.Input[list]) - A list of NAT Rule ID’s from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    • name (pulumi.Input[str]) - The Name which should be used for this IP Configuration.

    • primary (pulumi.Input[bool]) - Is this the Primary IP Configuration for this Network Interface? Defaults to false.

    • public_ip_addresses (pulumi.Input[list]) - A public_ip_address block as defined below.

      • domain_name_label (pulumi.Input[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 (pulumi.Input[float]) - The Idle Timeout in Minutes for the Public IP Address. Possible values are in the range 4 to 32.

      • ipTags (pulumi.Input[list]) - One or more ip_tag blocks as defined above.

        • tag (pulumi.Input[str]) - The IP Tag associated with the Public IP, such as SQL or Storage.

        • type (pulumi.Input[str]) - The Type of IP Tag, such as FirstPartyUsage.

      • name (pulumi.Input[str]) - The Name of the Public IP Address Configuration.

      • public_ip_prefix_id (pulumi.Input[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.

    • subnet_id (pulumi.Input[str]) - The ID of the Subnet which this IP Configuration should be connected to.

    • version (pulumi.Input[str]) - The Internet Protocol Version which should be used for this IP Configuration. Possible values are IPv4 and IPv6. Defaults to IPv4.

  • name (pulumi.Input[str]) - The Name which should be used for this Network Interface. Changing this forces a new resource to be created.

  • network_security_group_id (pulumi.Input[str]) - The ID of a Network Security Group which should be assigned to this Network Interface.

  • primary (pulumi.Input[bool]) - Is this the Primary IP Configuration?

The os_disk object supports the following:

  • caching (pulumi.Input[str]) - The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.

  • diffDiskSettings (pulumi.Input[dict]) - A diff_disk_settings block as defined above. Changing this forces a new resource to be created.

    • option (pulumi.Input[str])

  • disk_encryption_set_id (pulumi.Input[str]) - The ID of the Disk Encryption Set which should be used to encrypt this OS Disk.

  • disk_size_gb (pulumi.Input[float]) - 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.

  • storage_account_type (pulumi.Input[str]) - The Type of Storage Account which should back this the Internal OS Disk. Possible values include Standard_LRS, StandardSSD_LRS and Premium_LRS.

  • write_accelerator_enabled (pulumi.Input[bool]) - Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

The plan object supports the following:

  • name (pulumi.Input[str]) - The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.

  • product (pulumi.Input[str])

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image used to create the virtual machines.

The rolling_upgrade_policy object supports the following:

  • maxBatchInstancePercent (pulumi.Input[float]) - 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. Changing this forces a new resource to be created.

  • maxUnhealthyInstancePercent (pulumi.Input[float]) - 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. Changing this forces a new resource to be created.

  • maxUnhealthyUpgradedInstancePercent (pulumi.Input[float]) - 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. Changing this forces a new resource to be created.

  • pauseTimeBetweenBatches (pulumi.Input[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. Changing this forces a new resource to be created.

The secrets object supports the following:

  • certificates (pulumi.Input[list]) - One or more certificate blocks as defined above.

    • url (pulumi.Input[str]) - The Secret URL of a Key Vault Certificate.

  • key_vault_id (pulumi.Input[str]) - The ID of the Key Vault from which all Secrets should be sourced.

The source_image_reference object supports the following:

  • offer (pulumi.Input[str]) - Specifies the offer of the image used to create the virtual machines.

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image used to create the virtual machines.

  • sku (pulumi.Input[str]) - Specifies the SKU of the image used to create the virtual machines.

  • version (pulumi.Input[str]) - Specifies the version of the image used to create the virtual machines.

The terminate_notification object supports the following:

  • enabled (pulumi.Input[bool]) - Should the terminate notification be enabled on this Virtual Machine Scale Set? Defaults to false.

  • timeout (pulumi.Input[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.

additional_capabilities: pulumi.Output[dict] = None

A additional_capabilities block as defined below.

  • ultraSsdEnabled (bool) - Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine Scale Set? Defaults to false. Changing this forces a new resource to be created.

admin_password: pulumi.Output[str] = None

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

admin_ssh_keys: pulumi.Output[list] = None

One or more admin_ssh_key blocks as defined below.

  • publicKey (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.

admin_username: pulumi.Output[str] = None

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: pulumi.Output[dict] = None

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

  • enabled (bool) - Should the automatic instance repair be enabled on this Virtual Machine Scale Set?

  • gracePeriod (str) - Amount of time (in minutes, between 30 and 90, defaults to 30 minutes) 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.

automatic_os_upgrade_policy: pulumi.Output[dict] = None

A automatic_os_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic.

  • disableAutomaticRollback (bool) - Should automatic rollbacks be disabled? Changing this forces a new resource to be created.

  • 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? Changing this forces a new resource to be created.

boot_diagnostics: pulumi.Output[dict] = None

A boot_diagnostics block as defined below.

  • storageAccountUri (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.

computer_name_prefix: pulumi.Output[str] = None

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.

custom_data: pulumi.Output[str] = None

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

data_disks: pulumi.Output[list] = None

One or more data_disk blocks as defined below.

  • caching (str) - The type of Caching which should be used for this Data Disk. Possible values are None, ReadOnly and ReadWrite.

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

  • disk_size_gb (float) - The size of the Data Disk which should be created.

  • lun (float) - 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, Premium_LRS and UltraSSD_LRS.

  • write_accelerator_enabled (bool) - Should Write Accelerator be enabled for this Data Disk? Defaults to false.

disable_password_authentication: pulumi.Output[bool] = None

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

do_not_run_extensions_on_overprovisioned_machines: pulumi.Output[bool] = None

Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.

eviction_policy: pulumi.Output[str] = None

The Policy which should be used Virtual Machines are Evicted from the Scale Set. Changing this forces a new resource to be created.

health_probe_id: pulumi.Output[str] = None

The ID of a Load Balancer Probe which should be used to determine the health of an instance. Changing this forces a new resource to be created. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.

identity: pulumi.Output[dict] = None

A identity block as defined below.

  • identityIds (list) - A list of User Managed Identity ID’s which should be assigned to the Linux Virtual Machine Scale Set.

  • principal_id (str) - The ID of the System Managed Service Principal.

  • type (str) - The type of Managed Identity which should be assigned to the Linux Virtual Machine Scale Set. Possible values are SystemAssigned, UserAssigned and SystemAssigned, UserAssigned.

instances: pulumi.Output[float] = None

The number of Virtual Machines in the Scale Set.

location: pulumi.Output[str] = None

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

max_bid_price: pulumi.Output[float] = None

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.

name: pulumi.Output[str] = None

The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.

network_interfaces: pulumi.Output[list] = None

One or more network_interface blocks as defined below.

  • dns_servers (list) - 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.

  • ip_configurations (list) - One or more ip_configuration blocks as defined above.

    • applicationGatewayBackendAddressPoolIds (list) - A list of Backend Address Pools ID’s from a Application Gateway which this Virtual Machine Scale Set should be connected to.

    • applicationSecurityGroupIds (list) - A list of Application Security Group ID’s which this Virtual Machine Scale Set should be connected to.

    • loadBalancerBackendAddressPoolIds (list) - A list of Backend Address Pools ID’s from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    • loadBalancerInboundNatRulesIds (list) - A list of NAT Rule ID’s from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    • name (str) - The Name which should be used for this IP Configuration.

    • primary (bool) - Is this the Primary IP Configuration for this Network Interface? Defaults to false.

    • public_ip_addresses (list) - A public_ip_address block as defined below.

      • 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 (float) - The Idle Timeout in Minutes for the Public IP Address. Possible values are in the range 4 to 32.

      • ipTags (list) - One or more ip_tag blocks as defined above.

        • tag (str) - The IP Tag associated with the Public IP, such as SQL or Storage.

        • type (str) - The Type of IP Tag, such as FirstPartyUsage.

      • name (str) - The Name of the Public IP Address Configuration.

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

    • subnet_id (str) - The ID of the Subnet which this IP Configuration should be connected to.

    • version (str) - 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 Network Interface. Changing this forces a new resource to be created.

  • 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?

os_disk: pulumi.Output[dict] = None

An os_disk block as defined below.

  • caching (str) - The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.

  • diffDiskSettings (dict) - A diff_disk_settings block as defined above. Changing this forces a new resource to be created.

    • option (str)

  • disk_encryption_set_id (str) - The ID of the Disk Encryption Set which should be used to encrypt this OS Disk.

  • disk_size_gb (float) - 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.

  • storage_account_type (str) - The Type of Storage Account which should back this the Internal OS Disk. Possible values include Standard_LRS, StandardSSD_LRS and Premium_LRS.

  • write_accelerator_enabled (bool) - Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

overprovision: pulumi.Output[bool] = None

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

priority: pulumi.Output[str] = None

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

provision_vm_agent: pulumi.Output[bool] = None

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: pulumi.Output[str] = None

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: pulumi.Output[str] = None

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: pulumi.Output[dict] = None

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.

  • maxBatchInstancePercent (float) - 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. Changing this forces a new resource to be created.

  • maxUnhealthyInstancePercent (float) - 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. Changing this forces a new resource to be created.

  • maxUnhealthyUpgradedInstancePercent (float) - 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. Changing this forces a new resource to be created.

  • pauseTimeBetweenBatches (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. Changing this forces a new resource to be created.

scale_in_policy: pulumi.Output[str] = None

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.

secrets: pulumi.Output[list] = None

One or more secret blocks as defined below.

  • certificates (list) - One or more certificate blocks as defined above.

    • url (str) - The Secret URL of a Key Vault Certificate.

  • key_vault_id (str) - The ID of the Key Vault from which all Secrets should be sourced.

single_placement_group: pulumi.Output[bool] = None

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: pulumi.Output[str] = None

The Virtual Machine SKU for the Scale Set, such as Standard_F2.

source_image_id: pulumi.Output[str] = None

The ID of an Image which each Virtual Machine in this Scale Set should be based on.

source_image_reference: pulumi.Output[dict] = None

A source_image_reference block as defined below.

  • offer (str) - Specifies the offer of the image used to create the virtual machines.

  • publisher (str) - Specifies the publisher of the image used to create the virtual machines.

  • sku (str) - Specifies the SKU of the image used to create the virtual machines.

  • version (str) - Specifies the version of the image used to create the virtual machines.

tags: pulumi.Output[dict] = None

A mapping of tags which should be assigned to this Virtual Machine Scale Set.

terminate_notification: pulumi.Output[dict] = None

A terminate_notification block as defined below.

  • enabled (bool) - Should the terminate notification be enabled on this Virtual Machine Scale Set? Defaults to false.

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

unique_id: pulumi.Output[str] = None

The Unique ID for this Linux Virtual Machine Scale Set.

upgrade_mode: pulumi.Output[str] = None

Specifies how Upgrades (e.g. changing the Image/SKU) should be performed to Virtual Machine Instances. Possible values are Automatic, Manual and Rolling. Defaults to Manual.

zone_balance: pulumi.Output[bool] = None

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.

zones: pulumi.Output[list] = None

A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.

static get(resource_name, id, opts=None, additional_capabilities=None, admin_password=None, admin_ssh_keys=None, admin_username=None, automatic_instance_repair=None, automatic_os_upgrade_policy=None, boot_diagnostics=None, computer_name_prefix=None, custom_data=None, data_disks=None, disable_password_authentication=None, do_not_run_extensions_on_overprovisioned_machines=None, eviction_policy=None, health_probe_id=None, identity=None, instances=None, location=None, max_bid_price=None, name=None, network_interfaces=None, os_disk=None, overprovision=None, plan=None, priority=None, provision_vm_agent=None, proximity_placement_group_id=None, resource_group_name=None, rolling_upgrade_policy=None, scale_in_policy=None, secrets=None, single_placement_group=None, sku=None, source_image_id=None, source_image_reference=None, tags=None, terminate_notification=None, unique_id=None, upgrade_mode=None, zone_balance=None, zones=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • additional_capabilities (pulumi.Input[dict]) – A additional_capabilities block as defined below.

  • admin_password (pulumi.Input[str]) – The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

  • admin_ssh_keys (pulumi.Input[list]) – One or more admin_ssh_key blocks as defined below.

  • admin_username (pulumi.Input[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 (pulumi.Input[dict]) –

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

  • automatic_os_upgrade_policy (pulumi.Input[dict]) – A automatic_os_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic.

  • boot_diagnostics (pulumi.Input[dict]) – A boot_diagnostics block as defined below.

  • computer_name_prefix (pulumi.Input[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.

  • custom_data (pulumi.Input[str]) – The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.

  • data_disks (pulumi.Input[list]) – One or more data_disk blocks as defined below.

  • disable_password_authentication (pulumi.Input[bool]) – Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to true.

  • do_not_run_extensions_on_overprovisioned_machines (pulumi.Input[bool]) – Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.

  • eviction_policy (pulumi.Input[str]) – The Policy which should be used Virtual Machines are Evicted from the Scale Set. Changing this forces a new resource to be created.

  • health_probe_id (pulumi.Input[str]) – The ID of a Load Balancer Probe which should be used to determine the health of an instance. Changing this forces a new resource to be created. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.

  • identity (pulumi.Input[dict]) – A identity block as defined below.

  • instances (pulumi.Input[float]) – The number of Virtual Machines in the Scale Set.

  • location (pulumi.Input[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 (pulumi.Input[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.

  • name (pulumi.Input[str]) – The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.

  • network_interfaces (pulumi.Input[list]) – One or more network_interface blocks as defined below.

  • os_disk (pulumi.Input[dict]) – An os_disk block as defined below.

  • overprovision (pulumi.Input[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 false.

  • priority (pulumi.Input[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.

  • provision_vm_agent (pulumi.Input[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 (pulumi.Input[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 (pulumi.Input[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 (pulumi.Input[dict]) – 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.

  • scale_in_policy (pulumi.Input[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.

  • secrets (pulumi.Input[list]) – One or more secret blocks as defined below.

  • single_placement_group (pulumi.Input[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 (pulumi.Input[str]) – The Virtual Machine SKU for the Scale Set, such as Standard_F2.

  • source_image_id (pulumi.Input[str]) – The ID of an Image which each Virtual Machine in this Scale Set should be based on.

  • source_image_reference (pulumi.Input[dict]) – A source_image_reference block as defined below.

  • tags (pulumi.Input[dict]) – A mapping of tags which should be assigned to this Virtual Machine Scale Set.

  • terminate_notification (pulumi.Input[dict]) – A terminate_notification block as defined below.

  • unique_id (pulumi.Input[str]) – The Unique ID for this Linux Virtual Machine Scale Set.

  • upgrade_mode (pulumi.Input[str]) – Specifies how Upgrades (e.g. changing the Image/SKU) should be performed to Virtual Machine Instances. Possible values are Automatic, Manual and Rolling. Defaults to Manual.

  • zone_balance (pulumi.Input[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.

  • zones (pulumi.Input[list]) – A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.

The additional_capabilities object supports the following:

  • ultraSsdEnabled (pulumi.Input[bool]) - Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine Scale Set? Defaults to false. Changing this forces a new resource to be created.

The admin_ssh_keys object supports the following:

  • publicKey (pulumi.Input[str]) - The Public Key which should be used for authentication, which needs to be at least 2048-bit and in ssh-rsa format.

  • username (pulumi.Input[str]) - The Username for which this Public SSH Key should be configured.

The automatic_instance_repair object supports the following:

  • enabled (pulumi.Input[bool]) - Should the automatic instance repair be enabled on this Virtual Machine Scale Set?

  • gracePeriod (pulumi.Input[str]) - Amount of time (in minutes, between 30 and 90, defaults to 30 minutes) 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.

The automatic_os_upgrade_policy object supports the following:

  • disableAutomaticRollback (pulumi.Input[bool]) - Should automatic rollbacks be disabled? Changing this forces a new resource to be created.

  • enableAutomaticOsUpgrade (pulumi.Input[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? Changing this forces a new resource to be created.

The boot_diagnostics object supports the following:

  • storageAccountUri (pulumi.Input[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.

The data_disks object supports the following:

  • caching (pulumi.Input[str]) - The type of Caching which should be used for this Data Disk. Possible values are None, ReadOnly and ReadWrite.

  • create_option (pulumi.Input[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 (pulumi.Input[str]) - The ID of the Disk Encryption Set which should be used to encrypt this Data Disk.

  • disk_size_gb (pulumi.Input[float]) - The size of the Data Disk which should be created.

  • lun (pulumi.Input[float]) - The Logical Unit Number of the Data Disk, which must be unique within the Virtual Machine.

  • storage_account_type (pulumi.Input[str]) - The Type of Storage Account which should back this Data Disk. Possible values include Standard_LRS, StandardSSD_LRS, Premium_LRS and UltraSSD_LRS.

  • write_accelerator_enabled (pulumi.Input[bool]) - Should Write Accelerator be enabled for this Data Disk? Defaults to false.

The identity object supports the following:

  • identityIds (pulumi.Input[list]) - A list of User Managed Identity ID’s which should be assigned to the Linux Virtual Machine Scale Set.

  • principal_id (pulumi.Input[str]) - The ID of the System Managed Service Principal.

  • type (pulumi.Input[str]) - The type of Managed Identity which should be assigned to the Linux Virtual Machine Scale Set. Possible values are SystemAssigned, UserAssigned and SystemAssigned, UserAssigned.

The network_interfaces object supports the following:

  • dns_servers (pulumi.Input[list]) - A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.

  • enable_accelerated_networking (pulumi.Input[bool]) - Does this Network Interface support Accelerated Networking? Defaults to false.

  • enable_ip_forwarding (pulumi.Input[bool]) - Does this Network Interface support IP Forwarding? Defaults to false.

  • ip_configurations (pulumi.Input[list]) - One or more ip_configuration blocks as defined above.

    • applicationGatewayBackendAddressPoolIds (pulumi.Input[list]) - A list of Backend Address Pools ID’s from a Application Gateway which this Virtual Machine Scale Set should be connected to.

    • applicationSecurityGroupIds (pulumi.Input[list]) - A list of Application Security Group ID’s which this Virtual Machine Scale Set should be connected to.

    • loadBalancerBackendAddressPoolIds (pulumi.Input[list]) - A list of Backend Address Pools ID’s from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    • loadBalancerInboundNatRulesIds (pulumi.Input[list]) - A list of NAT Rule ID’s from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    • name (pulumi.Input[str]) - The Name which should be used for this IP Configuration.

    • primary (pulumi.Input[bool]) - Is this the Primary IP Configuration for this Network Interface? Defaults to false.

    • public_ip_addresses (pulumi.Input[list]) - A public_ip_address block as defined below.

      • domain_name_label (pulumi.Input[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 (pulumi.Input[float]) - The Idle Timeout in Minutes for the Public IP Address. Possible values are in the range 4 to 32.

      • ipTags (pulumi.Input[list]) - One or more ip_tag blocks as defined above.

        • tag (pulumi.Input[str]) - The IP Tag associated with the Public IP, such as SQL or Storage.

        • type (pulumi.Input[str]) - The Type of IP Tag, such as FirstPartyUsage.

      • name (pulumi.Input[str]) - The Name of the Public IP Address Configuration.

      • public_ip_prefix_id (pulumi.Input[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.

    • subnet_id (pulumi.Input[str]) - The ID of the Subnet which this IP Configuration should be connected to.

    • version (pulumi.Input[str]) - The Internet Protocol Version which should be used for this IP Configuration. Possible values are IPv4 and IPv6. Defaults to IPv4.

  • name (pulumi.Input[str]) - The Name which should be used for this Network Interface. Changing this forces a new resource to be created.

  • network_security_group_id (pulumi.Input[str]) - The ID of a Network Security Group which should be assigned to this Network Interface.

  • primary (pulumi.Input[bool]) - Is this the Primary IP Configuration?

The os_disk object supports the following:

  • caching (pulumi.Input[str]) - The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.

  • diffDiskSettings (pulumi.Input[dict]) - A diff_disk_settings block as defined above. Changing this forces a new resource to be created.

    • option (pulumi.Input[str])

  • disk_encryption_set_id (pulumi.Input[str]) - The ID of the Disk Encryption Set which should be used to encrypt this OS Disk.

  • disk_size_gb (pulumi.Input[float]) - 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.

  • storage_account_type (pulumi.Input[str]) - The Type of Storage Account which should back this the Internal OS Disk. Possible values include Standard_LRS, StandardSSD_LRS and Premium_LRS.

  • write_accelerator_enabled (pulumi.Input[bool]) - Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

The plan object supports the following:

  • name (pulumi.Input[str]) - The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.

  • product (pulumi.Input[str])

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image used to create the virtual machines.

The rolling_upgrade_policy object supports the following:

  • maxBatchInstancePercent (pulumi.Input[float]) - 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. Changing this forces a new resource to be created.

  • maxUnhealthyInstancePercent (pulumi.Input[float]) - 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. Changing this forces a new resource to be created.

  • maxUnhealthyUpgradedInstancePercent (pulumi.Input[float]) - 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. Changing this forces a new resource to be created.

  • pauseTimeBetweenBatches (pulumi.Input[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. Changing this forces a new resource to be created.

The secrets object supports the following:

  • certificates (pulumi.Input[list]) - One or more certificate blocks as defined above.

    • url (pulumi.Input[str]) - The Secret URL of a Key Vault Certificate.

  • key_vault_id (pulumi.Input[str]) - The ID of the Key Vault from which all Secrets should be sourced.

The source_image_reference object supports the following:

  • offer (pulumi.Input[str]) - Specifies the offer of the image used to create the virtual machines.

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image used to create the virtual machines.

  • sku (pulumi.Input[str]) - Specifies the SKU of the image used to create the virtual machines.

  • version (pulumi.Input[str]) - Specifies the version of the image used to create the virtual machines.

The terminate_notification object supports the following:

  • enabled (pulumi.Input[bool]) - Should the terminate notification be enabled on this Virtual Machine Scale Set? Defaults to false.

  • timeout (pulumi.Input[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.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.ManagedDisk(resource_name, opts=None, create_option=None, disk_encryption_set_id=None, disk_iops_read_write=None, disk_mbps_read_write=None, disk_size_gb=None, encryption_settings=None, image_reference_id=None, location=None, name=None, os_type=None, resource_group_name=None, source_resource_id=None, source_uri=None, storage_account_id=None, storage_account_type=None, tags=None, zones=None, __props__=None, __name__=None, __opts__=None)

Manages a managed disk.

import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West US 2")
example_managed_disk = azure.compute.ManagedDisk("exampleManagedDisk",
    location="West US 2",
    resource_group_name=example_resource_group.name,
    storage_account_type="Standard_LRS",
    create_option="Empty",
    disk_size_gb="1",
    tags={
        "environment": "staging",
    })
import pulumi
import pulumi_azure as azure

example = azure.core.ResourceGroup("example", location="West US 2")
source = azure.compute.ManagedDisk("source",
    location="West US 2",
    resource_group_name=example.name,
    storage_account_type="Standard_LRS",
    create_option="Empty",
    disk_size_gb="1",
    tags={
        "environment": "staging",
    })
copy = azure.compute.ManagedDisk("copy",
    location="West US 2",
    resource_group_name=example.name,
    storage_account_type="Standard_LRS",
    create_option="Copy",
    source_resource_id=source.id,
    disk_size_gb="1",
    tags={
        "environment": "staging",
    })
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • create_option (pulumi.Input[str]) – The method to use when creating the managed disk. Changing this forces a new resource to be created. Possible values include:

  • disk_encryption_set_id (pulumi.Input[str]) – The ID of a Disk Encryption Set which should be used to encrypt this Managed Disk.

  • disk_iops_read_write (pulumi.Input[float]) – The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes.

  • disk_mbps_read_write (pulumi.Input[float]) – The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second.

  • disk_size_gb (pulumi.Input[float]) – Specifies the size of the managed disk to create in gigabytes. If create_option is Copy or FromImage, then the value must be equal to or greater than the source’s size. The size can only be increased.

  • encryption_settings (pulumi.Input[dict]) – A encryption_settings block as defined below.

  • image_reference_id (pulumi.Input[str]) – ID of an existing platform/marketplace disk image to copy when create_option is FromImage.

  • location (pulumi.Input[str]) – Specified the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the Managed Disk. Changing this forces a new resource to be created.

  • os_type (pulumi.Input[str]) – Specify a value when the source of an Import or Copy operation targets a source that contains an operating system. Valid values are Linux or Windows.

  • resource_group_name (pulumi.Input[str]) – The name of the Resource Group where the Managed Disk should exist.

  • source_resource_id (pulumi.Input[str]) – The ID of an existing Managed Disk to copy create_option is Copy or the recovery point to restore when create_option is Restore

  • source_uri (pulumi.Input[str]) – URI to a valid VHD file to be used when create_option is Import.

  • storage_account_id (pulumi.Input[str]) – The ID of the Storage Account where the source_uri is located. Required when create_option is set to Import. Changing this forces a new resource to be created.

  • storage_account_type (pulumi.Input[str]) – The type of storage to use for the managed disk. Possible values are Standard_LRS, Premium_LRS, StandardSSD_LRS or UltraSSD_LRS.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

  • zones (pulumi.Input[str]) – A collection containing the availability zone to allocate the Managed Disk in.

The encryption_settings object supports the following:

  • diskEncryptionKey (pulumi.Input[dict]) - A disk_encryption_key block as defined above.

    • secretUrl (pulumi.Input[str]) - The URL to the Key Vault Secret used as the Disk Encryption Key. This can be found as id on the keyvault.Secret resource.

    • sourceVaultId (pulumi.Input[str]) - The ID of the source Key Vault.

  • enabled (pulumi.Input[bool]) - Is Encryption enabled on this Managed Disk? Changing this forces a new resource to be created.

  • keyEncryptionKey (pulumi.Input[dict]) - A key_encryption_key block as defined below.

    • keyUrl (pulumi.Input[str]) - The URL to the Key Vault Key used as the Key Encryption Key. This can be found as id on the keyvault.Key resource.

    • sourceVaultId (pulumi.Input[str]) - The ID of the source Key Vault.

create_option: pulumi.Output[str] = None

The method to use when creating the managed disk. Changing this forces a new resource to be created. Possible values include:

disk_encryption_set_id: pulumi.Output[str] = None

The ID of a Disk Encryption Set which should be used to encrypt this Managed Disk.

disk_iops_read_write: pulumi.Output[float] = None

The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes.

disk_mbps_read_write: pulumi.Output[float] = None

The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second.

disk_size_gb: pulumi.Output[float] = None

Specifies the size of the managed disk to create in gigabytes. If create_option is Copy or FromImage, then the value must be equal to or greater than the source’s size. The size can only be increased.

encryption_settings: pulumi.Output[dict] = None

A encryption_settings block as defined below.

  • diskEncryptionKey (dict) - A disk_encryption_key block as defined above.

    • secretUrl (str) - The URL to the Key Vault Secret used as the Disk Encryption Key. This can be found as id on the keyvault.Secret resource.

    • sourceVaultId (str) - The ID of the source Key Vault.

  • enabled (bool) - Is Encryption enabled on this Managed Disk? Changing this forces a new resource to be created.

  • keyEncryptionKey (dict) - A key_encryption_key block as defined below.

    • keyUrl (str) - The URL to the Key Vault Key used as the Key Encryption Key. This can be found as id on the keyvault.Key resource.

    • sourceVaultId (str) - The ID of the source Key Vault.

image_reference_id: pulumi.Output[str] = None

ID of an existing platform/marketplace disk image to copy when create_option is FromImage.

location: pulumi.Output[str] = None

Specified the supported Azure location where the resource exists. Changing this forces a new resource to be created.

name: pulumi.Output[str] = None

Specifies the name of the Managed Disk. Changing this forces a new resource to be created.

os_type: pulumi.Output[str] = None

Specify a value when the source of an Import or Copy operation targets a source that contains an operating system. Valid values are Linux or Windows.

resource_group_name: pulumi.Output[str] = None

The name of the Resource Group where the Managed Disk should exist.

source_resource_id: pulumi.Output[str] = None

The ID of an existing Managed Disk to copy create_option is Copy or the recovery point to restore when create_option is Restore

source_uri: pulumi.Output[str] = None

URI to a valid VHD file to be used when create_option is Import.

storage_account_id: pulumi.Output[str] = None

The ID of the Storage Account where the source_uri is located. Required when create_option is set to Import. Changing this forces a new resource to be created.

storage_account_type: pulumi.Output[str] = None

The type of storage to use for the managed disk. Possible values are Standard_LRS, Premium_LRS, StandardSSD_LRS or UltraSSD_LRS.

tags: pulumi.Output[dict] = None

A mapping of tags to assign to the resource.

zones: pulumi.Output[str] = None

A collection containing the availability zone to allocate the Managed Disk in.

static get(resource_name, id, opts=None, create_option=None, disk_encryption_set_id=None, disk_iops_read_write=None, disk_mbps_read_write=None, disk_size_gb=None, encryption_settings=None, image_reference_id=None, location=None, name=None, os_type=None, resource_group_name=None, source_resource_id=None, source_uri=None, storage_account_id=None, storage_account_type=None, tags=None, zones=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • create_option (pulumi.Input[str]) – The method to use when creating the managed disk. Changing this forces a new resource to be created. Possible values include:

  • disk_encryption_set_id (pulumi.Input[str]) – The ID of a Disk Encryption Set which should be used to encrypt this Managed Disk.

  • disk_iops_read_write (pulumi.Input[float]) – The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes.

  • disk_mbps_read_write (pulumi.Input[float]) – The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second.

  • disk_size_gb (pulumi.Input[float]) – Specifies the size of the managed disk to create in gigabytes. If create_option is Copy or FromImage, then the value must be equal to or greater than the source’s size. The size can only be increased.

  • encryption_settings (pulumi.Input[dict]) – A encryption_settings block as defined below.

  • image_reference_id (pulumi.Input[str]) – ID of an existing platform/marketplace disk image to copy when create_option is FromImage.

  • location (pulumi.Input[str]) – Specified the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the Managed Disk. Changing this forces a new resource to be created.

  • os_type (pulumi.Input[str]) – Specify a value when the source of an Import or Copy operation targets a source that contains an operating system. Valid values are Linux or Windows.

  • resource_group_name (pulumi.Input[str]) – The name of the Resource Group where the Managed Disk should exist.

  • source_resource_id (pulumi.Input[str]) – The ID of an existing Managed Disk to copy create_option is Copy or the recovery point to restore when create_option is Restore

  • source_uri (pulumi.Input[str]) – URI to a valid VHD file to be used when create_option is Import.

  • storage_account_id (pulumi.Input[str]) – The ID of the Storage Account where the source_uri is located. Required when create_option is set to Import. Changing this forces a new resource to be created.

  • storage_account_type (pulumi.Input[str]) – The type of storage to use for the managed disk. Possible values are Standard_LRS, Premium_LRS, StandardSSD_LRS or UltraSSD_LRS.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

  • zones (pulumi.Input[str]) – A collection containing the availability zone to allocate the Managed Disk in.

The encryption_settings object supports the following:

  • diskEncryptionKey (pulumi.Input[dict]) - A disk_encryption_key block as defined above.

    • secretUrl (pulumi.Input[str]) - The URL to the Key Vault Secret used as the Disk Encryption Key. This can be found as id on the keyvault.Secret resource.

    • sourceVaultId (pulumi.Input[str]) - The ID of the source Key Vault.

  • enabled (pulumi.Input[bool]) - Is Encryption enabled on this Managed Disk? Changing this forces a new resource to be created.

  • keyEncryptionKey (pulumi.Input[dict]) - A key_encryption_key block as defined below.

    • keyUrl (pulumi.Input[str]) - The URL to the Key Vault Key used as the Key Encryption Key. This can be found as id on the keyvault.Key resource.

    • sourceVaultId (pulumi.Input[str]) - The ID of the source Key Vault.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.OrchestratedVirtualMachineScaleSet(resource_name, opts=None, location=None, name=None, platform_fault_domain_count=None, resource_group_name=None, single_placement_group=None, tags=None, zones=None, __props__=None, __name__=None, __opts__=None)

Create a OrchestratedVirtualMachineScaleSet resource with the given unique name, props, and options. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] location: The Azure location where the Orchestrated Virtual Machine Scale Set should exist. Changing this forces a new resource to be created. :param pulumi.Input[str] name: The name of the Orchestrated Virtual Machine Scale Set. Changing this forces a new resource to be created. :param pulumi.Input[float] platform_fault_domain_count: Specifies the number of fault domains that are used by this Orchestrated Virtual Machine Scale Set. Changing this forces a new resource to be created. :param pulumi.Input[str] resource_group_name: The name of the Resource Group in which the Orchestrated Virtual Machine Scale Set should exist. Changing this forces a new resource to be created. :param pulumi.Input[bool] single_placement_group: Should the Orchestrated Virtual Machine Scale Set use single placement group? :param pulumi.Input[dict] tags: A mapping of tags which should be assigned to this Orchestrated Virtual Machine Scale Set. :param pulumi.Input[str] zones: A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.

location: pulumi.Output[str] = None

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

name: pulumi.Output[str] = None

The name of the Orchestrated Virtual Machine Scale Set. Changing this forces a new resource to be created.

platform_fault_domain_count: pulumi.Output[float] = None

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

resource_group_name: pulumi.Output[str] = None

The name of the Resource Group in which the Orchestrated Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.

single_placement_group: pulumi.Output[bool] = None

Should the Orchestrated Virtual Machine Scale Set use single placement group?

tags: pulumi.Output[dict] = None

A mapping of tags which should be assigned to this Orchestrated Virtual Machine Scale Set.

unique_id: pulumi.Output[str] = None

The Unique ID for the Orchestrated Virtual Machine Scale Set.

zones: pulumi.Output[str] = None

A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.

static get(resource_name, id, opts=None, location=None, name=None, platform_fault_domain_count=None, resource_group_name=None, single_placement_group=None, tags=None, unique_id=None, zones=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • location (pulumi.Input[str]) – The Azure location where the Orchestrated Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – The name of the Orchestrated Virtual Machine Scale Set. Changing this forces a new resource to be created.

  • platform_fault_domain_count (pulumi.Input[float]) – Specifies the number of fault domains that are used by this Orchestrated Virtual Machine Scale Set. Changing this forces a new resource to be created.

  • resource_group_name (pulumi.Input[str]) – The name of the Resource Group in which the Orchestrated Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.

  • single_placement_group (pulumi.Input[bool]) – Should the Orchestrated Virtual Machine Scale Set use single placement group?

  • tags (pulumi.Input[dict]) – A mapping of tags which should be assigned to this Orchestrated Virtual Machine Scale Set.

  • unique_id (pulumi.Input[str]) – The Unique ID for the Orchestrated Virtual Machine Scale Set.

  • zones (pulumi.Input[str]) – A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.ScaleSet(resource_name, opts=None, automatic_os_upgrade=None, boot_diagnostics=None, eviction_policy=None, extensions=None, health_probe_id=None, identity=None, license_type=None, location=None, name=None, network_profiles=None, os_profile=None, os_profile_linux_config=None, os_profile_secrets=None, os_profile_windows_config=None, overprovision=None, plan=None, priority=None, proximity_placement_group_id=None, resource_group_name=None, rolling_upgrade_policy=None, single_placement_group=None, sku=None, storage_profile_data_disks=None, storage_profile_image_reference=None, storage_profile_os_disk=None, tags=None, upgrade_policy_mode=None, zones=None, __props__=None, __name__=None, __opts__=None)

Manages a virtual machine scale set.

Note: The compute.ScaleSet resource has been superseded by the compute.LinuxVirtualMachineScaleSet and compute.WindowsVirtualMachineScaleSet resources. The existing compute.ScaleSet resource will continue to be available throughout the 2.x releases however is in a feature-frozen state to maintain compatibility - new functionality will instead be added to the compute.LinuxVirtualMachineScaleSet and compute.WindowsVirtualMachineScaleSet resources.

import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West US 2")
example_virtual_network = azure.network.VirtualNetwork("exampleVirtualNetwork",
    address_spaces=["10.0.0.0/16"],
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name)
example_subnet = azure.network.Subnet("exampleSubnet",
    resource_group_name=example_resource_group.name,
    virtual_network_name=example_virtual_network.name,
    address_prefix="10.0.2.0/24")
example_public_ip = azure.network.PublicIp("examplePublicIp",
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name,
    allocation_method="Static",
    domain_name_label=example_resource_group.name,
    tags={
        "environment": "staging",
    })
example_load_balancer = azure.lb.LoadBalancer("exampleLoadBalancer",
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name,
    frontend_ip_configuration=[{
        "name": "PublicIPAddress",
        "public_ip_address_id": example_public_ip.id,
    }])
bpepool = azure.lb.BackendAddressPool("bpepool",
    resource_group_name=example_resource_group.name,
    loadbalancer_id=example_load_balancer.id)
lbnatpool = azure.lb.NatPool("lbnatpool",
    resource_group_name=example_resource_group.name,
    loadbalancer_id=example_load_balancer.id,
    protocol="Tcp",
    frontend_port_start=50000,
    frontend_port_end=50119,
    backend_port=22,
    frontend_ip_configuration_name="PublicIPAddress")
example_probe = azure.lb.Probe("exampleProbe",
    resource_group_name=example_resource_group.name,
    loadbalancer_id=example_load_balancer.id,
    protocol="Http",
    request_path="/health",
    port=8080)
example_scale_set = azure.compute.ScaleSet("exampleScaleSet",
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name,
    automatic_os_upgrade=True,
    upgrade_policy_mode="Rolling",
    rolling_upgrade_policy={
        "maxBatchInstancePercent": 20,
        "maxUnhealthyInstancePercent": 20,
        "maxUnhealthyUpgradedInstancePercent": 5,
        "pauseTimeBetweenBatches": "PT0S",
    },
    health_probe_id=example_probe.id,
    sku={
        "name": "Standard_F2",
        "tier": "Standard",
        "capacity": 2,
    },
    storage_profile_image_reference={
        "publisher": "Canonical",
        "offer": "UbuntuServer",
        "sku": "16.04-LTS",
        "version": "latest",
    },
    storage_profile_os_disk={
        "name": "",
        "caching": "ReadWrite",
        "create_option": "FromImage",
        "managedDiskType": "Standard_LRS",
    },
    storage_profile_data_disk=[{
        "lun": 0,
        "caching": "ReadWrite",
        "create_option": "Empty",
        "disk_size_gb": 10,
    }],
    os_profile={
        "computer_name_prefix": "testvm",
        "admin_username": "myadmin",
    },
    os_profile_linux_config={
        "disable_password_authentication": True,
        "ssh_keys": [{
            "path": "/home/myadmin/.ssh/authorized_keys",
            "keyData": (lambda path: open(path).read())("~/.ssh/demo_key.pub"),
        }],
    },
    network_profile=[{
        "name": "mynetworkprofile",
        "primary": True,
        "ip_configuration": [{
            "name": "TestIPConfiguration",
            "primary": True,
            "subnet_id": example_subnet.id,
            "loadBalancerBackendAddressPoolIds": [bpepool.id],
            "loadBalancerInboundNatRulesIds": [lbnatpool.id],
        }],
    }],
    tags={
        "environment": "staging",
    })
import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West US")
example_virtual_network = azure.network.VirtualNetwork("exampleVirtualNetwork",
    address_spaces=["10.0.0.0/16"],
    location="West US",
    resource_group_name=example_resource_group.name)
example_subnet = azure.network.Subnet("exampleSubnet",
    resource_group_name=example_resource_group.name,
    virtual_network_name=example_virtual_network.name,
    address_prefix="10.0.2.0/24")
example_account = azure.storage.Account("exampleAccount",
    resource_group_name=example_resource_group.name,
    location="westus",
    account_tier="Standard",
    account_replication_type="LRS",
    tags={
        "environment": "staging",
    })
example_container = azure.storage.Container("exampleContainer",
    storage_account_name=example_account.name,
    container_access_type="private")
example_scale_set = azure.compute.ScaleSet("exampleScaleSet",
    location="West US",
    resource_group_name=example_resource_group.name,
    upgrade_policy_mode="Manual",
    sku={
        "name": "Standard_F2",
        "tier": "Standard",
        "capacity": 2,
    },
    os_profile={
        "computer_name_prefix": "testvm",
        "admin_username": "myadmin",
    },
    os_profile_linux_config={
        "disable_password_authentication": True,
        "ssh_keys": [{
            "path": "/home/myadmin/.ssh/authorized_keys",
            "keyData": (lambda path: open(path).read())("~/.ssh/demo_key.pub"),
        }],
    },
    network_profile=[{
        "name": "TestNetworkProfile",
        "primary": True,
        "ip_configuration": [{
            "name": "TestIPConfiguration",
            "primary": True,
            "subnet_id": example_subnet.id,
        }],
    }],
    storage_profile_os_disk={
        "name": "osDiskProfile",
        "caching": "ReadWrite",
        "create_option": "FromImage",
        "vhdContainers": [pulumi.Output.all(example_account.primary_blob_endpoint, example_container.name).apply(lambda primary_blob_endpoint, name: f"{primary_blob_endpoint}{name}")],
    },
    storage_profile_image_reference={
        "publisher": "Canonical",
        "offer": "UbuntuServer",
        "sku": "16.04-LTS",
        "version": "latest",
    })
import pulumi
import pulumi_azure as azure

example_image = azure.compute.Image("exampleImage")
# ...
example_scale_set = azure.compute.ScaleSet("exampleScaleSet", storage_profile_image_reference={
    "id": example_image.id,
})
# ...
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • automatic_os_upgrade (pulumi.Input[bool]) – Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when upgrade_policy_mode is set to Rolling. Defaults to false.

  • boot_diagnostics (pulumi.Input[dict]) – A boot diagnostics profile block as referenced below.

  • eviction_policy (pulumi.Input[str]) – Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are Deallocate and Delete.

  • extensions (pulumi.Input[list]) – Can be specified multiple times to add extension profiles to the scale set. Each extension block supports the fields documented below.

  • health_probe_id (pulumi.Input[str]) – Specifies the identifier for the load balancer health probe. Required when using Rolling as your upgrade_policy_mode.

  • license_type (pulumi.Input[str]) – Specifies the Windows OS license type. If supplied, the only allowed values are Windows_Client and Windows_Server.

  • location (pulumi.Input[str]) – Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.

  • network_profiles (pulumi.Input[list]) – A collection of network profile block as documented below.

  • os_profile (pulumi.Input[dict]) – A Virtual Machine OS Profile block as documented below.

  • os_profile_linux_config (pulumi.Input[dict]) – A Linux config block as documented below.

  • os_profile_secrets (pulumi.Input[list]) – A collection of Secret blocks as documented below.

  • os_profile_windows_config (pulumi.Input[dict]) – A Windows config block as documented below.

  • overprovision (pulumi.Input[bool]) – Specifies whether the virtual machine scale set should be overprovisioned.

  • plan (pulumi.Input[dict]) – A plan block as documented below.

  • priority (pulumi.Input[str]) – Specifies the priority for the Virtual Machines in the Scale Set. Defaults to Regular. Possible values are Low and Regular.

  • proximity_placement_group_id (pulumi.Input[str]) – The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created

  • resource_group_name (pulumi.Input[str]) – The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.

  • rolling_upgrade_policy (pulumi.Input[dict]) – A rolling_upgrade_policy block as defined below. This is only applicable when the upgrade_policy_mode is Rolling.

  • single_placement_group (pulumi.Input[bool]) – Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Default is true. Changing this forces a new resource to be created. See documentation for more information.

  • sku (pulumi.Input[dict]) – A sku block as documented below.

  • storage_profile_data_disks (pulumi.Input[list]) – A storage profile data disk block as documented below

  • storage_profile_image_reference (pulumi.Input[dict]) – A storage profile image reference block as documented below.

  • storage_profile_os_disk (pulumi.Input[dict]) – A storage profile os disk block as documented below

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

  • upgrade_policy_mode (pulumi.Input[str]) – Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, Rolling, Manual, or Automatic. When choosing Rolling, you will need to set a health probe.

  • zones (pulumi.Input[list]) – A collection of availability zones to spread the Virtual Machines over.

The boot_diagnostics object supports the following:

  • enabled (pulumi.Input[bool])

  • storageUri (pulumi.Input[str])

The extensions object supports the following:

  • auto_upgrade_minor_version (pulumi.Input[bool]) - Specifies whether or not to use the latest minor version available.

  • name (pulumi.Input[str]) - Specifies the name of the extension.

  • protected_settings (pulumi.Input[str]) - The protected_settings passed to the extension, like settings, these are specified as a JSON object in a string.

  • provision_after_extensions (pulumi.Input[list]) - Specifies a dependency array of extensions required to be executed before, the array stores the name of each extension.

  • publisher (pulumi.Input[str]) - The publisher of the extension, available publishers can be found by using the Azure CLI.

  • settings (pulumi.Input[str]) - The settings passed to the extension, these are specified as a JSON object in a string.

  • type (pulumi.Input[str]) - The type of extension, available types for a publisher can be found using the Azure CLI.

  • type_handler_version (pulumi.Input[str]) - Specifies the version of the extension to use, available versions can be found using the Azure CLI.

The identity object supports the following:

  • identityIds (pulumi.Input[list]) - Specifies a list of user managed identity ids to be assigned to the VMSS. Required if type is UserAssigned.

  • principal_id (pulumi.Input[str])

  • type (pulumi.Input[str]) - Specifies the identity type to be assigned to the scale set. Allowable values are SystemAssigned and UserAssigned. For the SystemAssigned identity the scale set’s Service Principal ID (SPN) can be retrieved after the scale set has been created. See documentation for more information.

The network_profiles object supports the following:

  • acceleratedNetworking (pulumi.Input[bool]) - Specifies whether to enable accelerated networking or not. Defaults to false.

  • dnsSettings (pulumi.Input[dict]) - A dns_settings block as documented below.

    • dns_servers (pulumi.Input[list]) - Specifies an array of dns servers.

  • ip_configurations (pulumi.Input[list]) - An ip_configuration block as documented below.

    • applicationGatewayBackendAddressPoolIds (pulumi.Input[list]) - Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets can use the same application gateway.

    • applicationSecurityGroupIds (pulumi.Input[list]) - Specifies up to 20 application security group IDs.

    • loadBalancerBackendAddressPoolIds (pulumi.Input[list]) - Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.

    • loadBalancerInboundNatRulesIds (pulumi.Input[list]) - Specifies an array of references to inbound NAT pools for load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.

    • name (pulumi.Input[str]) - Specifies name of the IP configuration.

    • primary (pulumi.Input[bool]) - Specifies if this ip_configuration is the primary one.

    • publicIpAddressConfiguration (pulumi.Input[dict]) - Describes a virtual machines scale set IP Configuration’s PublicIPAddress configuration. The public_ip_address_configuration is documented below.

      • domain_name_label (pulumi.Input[str]) - The domain name label for the dns settings.

      • idleTimeout (pulumi.Input[float]) - The idle timeout in minutes. This value must be between 4 and 30.

      • name (pulumi.Input[str]) - The name of the public ip address configuration

    • subnet_id (pulumi.Input[str]) - Specifies the identifier of the subnet.

  • ipForwarding (pulumi.Input[bool]) - Whether IP forwarding is enabled on this NIC. Defaults to false.

  • name (pulumi.Input[str]) - Specifies the name of the network interface configuration.

  • network_security_group_id (pulumi.Input[str]) - Specifies the identifier for the network security group.

  • primary (pulumi.Input[bool]) - Indicates whether network interfaces created from the network interface configuration will be the primary NIC of the VM.

The os_profile object supports the following:

  • admin_password (pulumi.Input[str]) - Specifies the administrator password to use for all the instances of virtual machines in a scale set.

  • admin_username (pulumi.Input[str]) - Specifies the administrator account name to use for all the instances of virtual machines in the scale set.

  • computer_name_prefix (pulumi.Input[str]) - Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 9 characters long for windows images and 1 - 58 for linux. Changing this forces a new resource to be created.

  • custom_data (pulumi.Input[str]) - Specifies custom data to supply to the machine. On linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes.

The os_profile_linux_config object supports the following:

  • disable_password_authentication (pulumi.Input[bool]) - Specifies whether password authentication should be disabled. Defaults to false. Changing this forces a new resource to be created.

  • sshKeys (pulumi.Input[list]) - Specifies a collection of path and key_data to be placed on the virtual machine.

    • keyData (pulumi.Input[str])

    • path (pulumi.Input[str])

The os_profile_secrets object supports the following:

  • sourceVaultId (pulumi.Input[str]) - Specifies the key vault to use.

  • vaultCertificates (pulumi.Input[list]) - A collection of Vault Certificates as documented below

    • certificateStore (pulumi.Input[str]) - Specifies the certificate store on the Virtual Machine where the certificate should be added to.

    • certificateUrl (pulumi.Input[str]) - It is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be data, dataType and password.

The os_profile_windows_config object supports the following:

  • additionalUnattendConfigs (pulumi.Input[list]) - An Additional Unattended Config block as documented below.

    • component (pulumi.Input[str]) - Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.

    • content (pulumi.Input[str]) - Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.

    • pass (pulumi.Input[str]) - Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.

    • settingName (pulumi.Input[str]) - Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.

  • enableAutomaticUpgrades (pulumi.Input[bool]) - Indicates whether virtual machines in the scale set are enabled for automatic updates.

  • provision_vm_agent (pulumi.Input[bool]) - Indicates whether virtual machine agent should be provisioned on the virtual machines in the scale set.

  • winrms (pulumi.Input[list]) - A collection of WinRM configuration blocks as documented below.

    • certificateUrl (pulumi.Input[str]) - Specifies URL of the certificate with which new Virtual Machines is provisioned.

    • protocol (pulumi.Input[str]) - Specifies the protocol of listener

The plan object supports the following:

  • name (pulumi.Input[str]) - Specifies the name of the image from the marketplace.

  • product (pulumi.Input[str]) - Specifies the product of the image from the marketplace.

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image.

The rolling_upgrade_policy object supports the following:

  • maxBatchInstancePercent (pulumi.Input[float]) - The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. Defaults to 20.

  • maxUnhealthyInstancePercent (pulumi.Input[float]) - The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. Defaults to 20.

  • maxUnhealthyUpgradedInstancePercent (pulumi.Input[float]) - The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. Defaults to 20.

  • pauseTimeBetweenBatches (pulumi.Input[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 for duration (https://en.wikipedia.org/wiki/ISO_8601#Durations). Defaults to 0 seconds represented as PT0S.

The sku object supports the following:

  • capacity (pulumi.Input[float]) - Specifies the number of virtual machines in the scale set.

  • name (pulumi.Input[str]) - Specifies the size of virtual machines in a scale set.

  • tier (pulumi.Input[str]) - Specifies the tier of virtual machines in a scale set. Possible values, standard or basic.

The storage_profile_data_disks object supports the following:

  • caching (pulumi.Input[str]) - Specifies the caching requirements. Possible values include: None (default), ReadOnly, ReadWrite.

  • create_option (pulumi.Input[str]) - Specifies how the data disk should be created. The only possible options are FromImage and Empty.

  • disk_size_gb (pulumi.Input[float]) - Specifies the size of the disk in GB. This element is required when creating an empty disk.

  • lun (pulumi.Input[float]) - Specifies the Logical Unit Number of the disk in each virtual machine in the scale set.

  • managedDiskType (pulumi.Input[str]) - Specifies the type of managed disk to create. Value must be either Standard_LRS, StandardSSD_LRS or Premium_LRS.

The storage_profile_image_reference object supports the following:

  • id (pulumi.Input[str]) - Specifies the ID of the (custom) image to use to create the virtual machine scale set, as in the example below.

  • offer (pulumi.Input[str]) - Specifies the offer of the image used to create the virtual machines.

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image used to create the virtual machines.

  • sku (pulumi.Input[str]) - Specifies the SKU of the image used to create the virtual machines.

  • version (pulumi.Input[str]) - Specifies the version of the image used to create the virtual machines.

The storage_profile_os_disk object supports the following:

  • caching (pulumi.Input[str]) - Specifies the caching requirements. Possible values include: None (default), ReadOnly, ReadWrite.

  • create_option (pulumi.Input[str]) - Specifies how the virtual machine should be created. The only possible option is FromImage.

  • image (pulumi.Input[str]) - Specifies the blob uri for user image. A virtual machine scale set creates an os disk in the same container as the user image. Updating the osDisk image causes the existing disk to be deleted and a new one created with the new image. If the VM scale set is in Manual upgrade mode then the virtual machines are not updated until they have manualUpgrade applied to them. When setting this field os_type needs to be specified. Cannot be used when vhd_containers, managed_disk_type or storage_profile_image_reference are specified.

  • managedDiskType (pulumi.Input[str]) - Specifies the type of managed disk to create. Value you must be either Standard_LRS, StandardSSD_LRS or Premium_LRS. Cannot be used when vhd_containers or image is specified.

  • name (pulumi.Input[str]) - Specifies the disk name. Must be specified when using unmanaged disk (‘managed_disk_type’ property not set).

  • os_type (pulumi.Input[str]) - Specifies the operating system Type, valid values are windows, linux.

  • vhdContainers (pulumi.Input[list]) - Specifies the vhd uri. Cannot be used when image or managed_disk_type is specified.

automatic_os_upgrade: pulumi.Output[bool] = None

Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when upgrade_policy_mode is set to Rolling. Defaults to false.

boot_diagnostics: pulumi.Output[dict] = None

A boot diagnostics profile block as referenced below.

  • enabled (bool)

  • storageUri (str)

eviction_policy: pulumi.Output[str] = None

Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are Deallocate and Delete.

extensions: pulumi.Output[list] = None

Can be specified multiple times to add extension profiles to the scale set. Each extension block supports the fields documented below.

  • auto_upgrade_minor_version (bool) - Specifies whether or not to use the latest minor version available.

  • name (str) - Specifies the name of the extension.

  • protected_settings (str) - The protected_settings passed to the extension, like settings, these are specified as a JSON object in a string.

  • provision_after_extensions (list) - Specifies a dependency array of extensions required to be executed before, the array stores the name of each extension.

  • publisher (str) - The publisher of the extension, available publishers can be found by using the Azure CLI.

  • settings (str) - The settings passed to the extension, these are specified as a JSON object in a string.

  • type (str) - The type of extension, available types for a publisher can be found using the Azure CLI.

  • type_handler_version (str) - Specifies the version of the extension to use, available versions can be found using the Azure CLI.

health_probe_id: pulumi.Output[str] = None

Specifies the identifier for the load balancer health probe. Required when using Rolling as your upgrade_policy_mode.

license_type: pulumi.Output[str] = None

Specifies the Windows OS license type. If supplied, the only allowed values are Windows_Client and Windows_Server.

location: pulumi.Output[str] = None

Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

name: pulumi.Output[str] = None

Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.

network_profiles: pulumi.Output[list] = None

A collection of network profile block as documented below.

  • acceleratedNetworking (bool) - Specifies whether to enable accelerated networking or not. Defaults to false.

  • dnsSettings (dict) - A dns_settings block as documented below.

    • dns_servers (list) - Specifies an array of dns servers.

  • ip_configurations (list) - An ip_configuration block as documented below.

    • applicationGatewayBackendAddressPoolIds (list) - Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets can use the same application gateway.

    • applicationSecurityGroupIds (list) - Specifies up to 20 application security group IDs.

    • loadBalancerBackendAddressPoolIds (list) - Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.

    • loadBalancerInboundNatRulesIds (list) - Specifies an array of references to inbound NAT pools for load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.

    • name (str) - Specifies name of the IP configuration.

    • primary (bool) - Specifies if this ip_configuration is the primary one.

    • publicIpAddressConfiguration (dict) - Describes a virtual machines scale set IP Configuration’s PublicIPAddress configuration. The public_ip_address_configuration is documented below.

      • domain_name_label (str) - The domain name label for the dns settings.

      • idleTimeout (float) - The idle timeout in minutes. This value must be between 4 and 30.

      • name (str) - The name of the public ip address configuration

    • subnet_id (str) - Specifies the identifier of the subnet.

  • ipForwarding (bool) - Whether IP forwarding is enabled on this NIC. Defaults to false.

  • name (str) - Specifies the name of the network interface configuration.

  • network_security_group_id (str) - Specifies the identifier for the network security group.

  • primary (bool) - Indicates whether network interfaces created from the network interface configuration will be the primary NIC of the VM.

os_profile: pulumi.Output[dict] = None

A Virtual Machine OS Profile block as documented below.

  • admin_password (str) - Specifies the administrator password to use for all the instances of virtual machines in a scale set.

  • admin_username (str) - Specifies the administrator account name to use for all the instances of virtual machines in the scale set.

  • computer_name_prefix (str) - Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 9 characters long for windows images and 1 - 58 for linux. Changing this forces a new resource to be created.

  • custom_data (str) - Specifies custom data to supply to the machine. On linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes.

os_profile_linux_config: pulumi.Output[dict] = None

A Linux config block as documented below.

  • disable_password_authentication (bool) - Specifies whether password authentication should be disabled. Defaults to false. Changing this forces a new resource to be created.

  • sshKeys (list) - Specifies a collection of path and key_data to be placed on the virtual machine.

    • keyData (str)

    • path (str)

os_profile_secrets: pulumi.Output[list] = None

A collection of Secret blocks as documented below.

  • sourceVaultId (str) - Specifies the key vault to use.

  • vaultCertificates (list) - A collection of Vault Certificates as documented below

    • certificateStore (str) - Specifies the certificate store on the Virtual Machine where the certificate should be added to.

    • certificateUrl (str) - It is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be data, dataType and password.

os_profile_windows_config: pulumi.Output[dict] = None

A Windows config block as documented below.

  • additionalUnattendConfigs (list) - An Additional Unattended Config block as documented below.

    • component (str) - Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.

    • content (str) - Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.

    • pass (str) - Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.

    • settingName (str) - Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.

  • enableAutomaticUpgrades (bool) - Indicates whether virtual machines in the scale set are enabled for automatic updates.

  • provision_vm_agent (bool) - Indicates whether virtual machine agent should be provisioned on the virtual machines in the scale set.

  • winrms (list) - A collection of WinRM configuration blocks as documented below.

    • certificateUrl (str) - Specifies URL of the certificate with which new Virtual Machines is provisioned.

    • protocol (str) - Specifies the protocol of listener

overprovision: pulumi.Output[bool] = None

Specifies whether the virtual machine scale set should be overprovisioned.

plan: pulumi.Output[dict] = None

A plan block as documented below.

  • name (str) - Specifies the name of the image from the marketplace.

  • product (str) - Specifies the product of the image from the marketplace.

  • publisher (str) - Specifies the publisher of the image.

priority: pulumi.Output[str] = None

Specifies the priority for the Virtual Machines in the Scale Set. Defaults to Regular. Possible values are Low and Regular.

proximity_placement_group_id: pulumi.Output[str] = None

The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created

resource_group_name: pulumi.Output[str] = None

The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.

rolling_upgrade_policy: pulumi.Output[dict] = None

A rolling_upgrade_policy block as defined below. This is only applicable when the upgrade_policy_mode is Rolling.

  • maxBatchInstancePercent (float) - The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. Defaults to 20.

  • maxUnhealthyInstancePercent (float) - The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. Defaults to 20.

  • maxUnhealthyUpgradedInstancePercent (float) - The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. Defaults to 20.

  • pauseTimeBetweenBatches (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 for duration (https://en.wikipedia.org/wiki/ISO_8601#Durations). Defaults to 0 seconds represented as PT0S.

single_placement_group: pulumi.Output[bool] = None

Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Default is true. Changing this forces a new resource to be created. See documentation for more information.

sku: pulumi.Output[dict] = None

A sku block as documented below.

  • capacity (float) - Specifies the number of virtual machines in the scale set.

  • name (str) - Specifies the size of virtual machines in a scale set.

  • tier (str) - Specifies the tier of virtual machines in a scale set. Possible values, standard or basic.

storage_profile_data_disks: pulumi.Output[list] = None

A storage profile data disk block as documented below

  • caching (str) - Specifies the caching requirements. Possible values include: None (default), ReadOnly, ReadWrite.

  • create_option (str) - Specifies how the data disk should be created. The only possible options are FromImage and Empty.

  • disk_size_gb (float) - Specifies the size of the disk in GB. This element is required when creating an empty disk.

  • lun (float) - Specifies the Logical Unit Number of the disk in each virtual machine in the scale set.

  • managedDiskType (str) - Specifies the type of managed disk to create. Value must be either Standard_LRS, StandardSSD_LRS or Premium_LRS.

storage_profile_image_reference: pulumi.Output[dict] = None

A storage profile image reference block as documented below.

  • id (str) - Specifies the ID of the (custom) image to use to create the virtual machine scale set, as in the example below.

  • offer (str) - Specifies the offer of the image used to create the virtual machines.

  • publisher (str) - Specifies the publisher of the image used to create the virtual machines.

  • sku (str) - Specifies the SKU of the image used to create the virtual machines.

  • version (str) - Specifies the version of the image used to create the virtual machines.

storage_profile_os_disk: pulumi.Output[dict] = None

A storage profile os disk block as documented below

  • caching (str) - Specifies the caching requirements. Possible values include: None (default), ReadOnly, ReadWrite.

  • create_option (str) - Specifies how the virtual machine should be created. The only possible option is FromImage.

  • image (str) - Specifies the blob uri for user image. A virtual machine scale set creates an os disk in the same container as the user image. Updating the osDisk image causes the existing disk to be deleted and a new one created with the new image. If the VM scale set is in Manual upgrade mode then the virtual machines are not updated until they have manualUpgrade applied to them. When setting this field os_type needs to be specified. Cannot be used when vhd_containers, managed_disk_type or storage_profile_image_reference are specified.

  • managedDiskType (str) - Specifies the type of managed disk to create. Value you must be either Standard_LRS, StandardSSD_LRS or Premium_LRS. Cannot be used when vhd_containers or image is specified.

  • name (str) - Specifies the disk name. Must be specified when using unmanaged disk (‘managed_disk_type’ property not set).

  • os_type (str) - Specifies the operating system Type, valid values are windows, linux.

  • vhdContainers (list) - Specifies the vhd uri. Cannot be used when image or managed_disk_type is specified.

tags: pulumi.Output[dict] = None

A mapping of tags to assign to the resource.

upgrade_policy_mode: pulumi.Output[str] = None

Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, Rolling, Manual, or Automatic. When choosing Rolling, you will need to set a health probe.

zones: pulumi.Output[list] = None

A collection of availability zones to spread the Virtual Machines over.

static get(resource_name, id, opts=None, automatic_os_upgrade=None, boot_diagnostics=None, eviction_policy=None, extensions=None, health_probe_id=None, identity=None, license_type=None, location=None, name=None, network_profiles=None, os_profile=None, os_profile_linux_config=None, os_profile_secrets=None, os_profile_windows_config=None, overprovision=None, plan=None, priority=None, proximity_placement_group_id=None, resource_group_name=None, rolling_upgrade_policy=None, single_placement_group=None, sku=None, storage_profile_data_disks=None, storage_profile_image_reference=None, storage_profile_os_disk=None, tags=None, upgrade_policy_mode=None, zones=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • automatic_os_upgrade (pulumi.Input[bool]) – Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when upgrade_policy_mode is set to Rolling. Defaults to false.

  • boot_diagnostics (pulumi.Input[dict]) – A boot diagnostics profile block as referenced below.

  • eviction_policy (pulumi.Input[str]) – Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are Deallocate and Delete.

  • extensions (pulumi.Input[list]) – Can be specified multiple times to add extension profiles to the scale set. Each extension block supports the fields documented below.

  • health_probe_id (pulumi.Input[str]) – Specifies the identifier for the load balancer health probe. Required when using Rolling as your upgrade_policy_mode.

  • license_type (pulumi.Input[str]) – Specifies the Windows OS license type. If supplied, the only allowed values are Windows_Client and Windows_Server.

  • location (pulumi.Input[str]) – Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.

  • network_profiles (pulumi.Input[list]) – A collection of network profile block as documented below.

  • os_profile (pulumi.Input[dict]) – A Virtual Machine OS Profile block as documented below.

  • os_profile_linux_config (pulumi.Input[dict]) – A Linux config block as documented below.

  • os_profile_secrets (pulumi.Input[list]) – A collection of Secret blocks as documented below.

  • os_profile_windows_config (pulumi.Input[dict]) – A Windows config block as documented below.

  • overprovision (pulumi.Input[bool]) – Specifies whether the virtual machine scale set should be overprovisioned.

  • plan (pulumi.Input[dict]) – A plan block as documented below.

  • priority (pulumi.Input[str]) – Specifies the priority for the Virtual Machines in the Scale Set. Defaults to Regular. Possible values are Low and Regular.

  • proximity_placement_group_id (pulumi.Input[str]) – The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created

  • resource_group_name (pulumi.Input[str]) – The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.

  • rolling_upgrade_policy (pulumi.Input[dict]) – A rolling_upgrade_policy block as defined below. This is only applicable when the upgrade_policy_mode is Rolling.

  • single_placement_group (pulumi.Input[bool]) –

    Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Default is true. Changing this forces a new resource to be created. See documentation for more information.

  • sku (pulumi.Input[dict]) – A sku block as documented below.

  • storage_profile_data_disks (pulumi.Input[list]) – A storage profile data disk block as documented below

  • storage_profile_image_reference (pulumi.Input[dict]) – A storage profile image reference block as documented below.

  • storage_profile_os_disk (pulumi.Input[dict]) – A storage profile os disk block as documented below

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

  • upgrade_policy_mode (pulumi.Input[str]) – Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, Rolling, Manual, or Automatic. When choosing Rolling, you will need to set a health probe.

  • zones (pulumi.Input[list]) – A collection of availability zones to spread the Virtual Machines over.

The boot_diagnostics object supports the following:

  • enabled (pulumi.Input[bool])

  • storageUri (pulumi.Input[str])

The extensions object supports the following:

  • auto_upgrade_minor_version (pulumi.Input[bool]) - Specifies whether or not to use the latest minor version available.

  • name (pulumi.Input[str]) - Specifies the name of the extension.

  • protected_settings (pulumi.Input[str]) - The protected_settings passed to the extension, like settings, these are specified as a JSON object in a string.

  • provision_after_extensions (pulumi.Input[list]) - Specifies a dependency array of extensions required to be executed before, the array stores the name of each extension.

  • publisher (pulumi.Input[str]) - The publisher of the extension, available publishers can be found by using the Azure CLI.

  • settings (pulumi.Input[str]) - The settings passed to the extension, these are specified as a JSON object in a string.

  • type (pulumi.Input[str]) - The type of extension, available types for a publisher can be found using the Azure CLI.

  • type_handler_version (pulumi.Input[str]) - Specifies the version of the extension to use, available versions can be found using the Azure CLI.

The identity object supports the following:

  • identityIds (pulumi.Input[list]) - Specifies a list of user managed identity ids to be assigned to the VMSS. Required if type is UserAssigned.

  • principal_id (pulumi.Input[str])

  • type (pulumi.Input[str]) - Specifies the identity type to be assigned to the scale set. Allowable values are SystemAssigned and UserAssigned. For the SystemAssigned identity the scale set’s Service Principal ID (SPN) can be retrieved after the scale set has been created. See documentation for more information.

The network_profiles object supports the following:

  • acceleratedNetworking (pulumi.Input[bool]) - Specifies whether to enable accelerated networking or not. Defaults to false.

  • dnsSettings (pulumi.Input[dict]) - A dns_settings block as documented below.

    • dns_servers (pulumi.Input[list]) - Specifies an array of dns servers.

  • ip_configurations (pulumi.Input[list]) - An ip_configuration block as documented below.

    • applicationGatewayBackendAddressPoolIds (pulumi.Input[list]) - Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets can use the same application gateway.

    • applicationSecurityGroupIds (pulumi.Input[list]) - Specifies up to 20 application security group IDs.

    • loadBalancerBackendAddressPoolIds (pulumi.Input[list]) - Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.

    • loadBalancerInboundNatRulesIds (pulumi.Input[list]) - Specifies an array of references to inbound NAT pools for load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.

    • name (pulumi.Input[str]) - Specifies name of the IP configuration.

    • primary (pulumi.Input[bool]) - Specifies if this ip_configuration is the primary one.

    • publicIpAddressConfiguration (pulumi.Input[dict]) - Describes a virtual machines scale set IP Configuration’s PublicIPAddress configuration. The public_ip_address_configuration is documented below.

      • domain_name_label (pulumi.Input[str]) - The domain name label for the dns settings.

      • idleTimeout (pulumi.Input[float]) - The idle timeout in minutes. This value must be between 4 and 30.

      • name (pulumi.Input[str]) - The name of the public ip address configuration

    • subnet_id (pulumi.Input[str]) - Specifies the identifier of the subnet.

  • ipForwarding (pulumi.Input[bool]) - Whether IP forwarding is enabled on this NIC. Defaults to false.

  • name (pulumi.Input[str]) - Specifies the name of the network interface configuration.

  • network_security_group_id (pulumi.Input[str]) - Specifies the identifier for the network security group.

  • primary (pulumi.Input[bool]) - Indicates whether network interfaces created from the network interface configuration will be the primary NIC of the VM.

The os_profile object supports the following:

  • admin_password (pulumi.Input[str]) - Specifies the administrator password to use for all the instances of virtual machines in a scale set.

  • admin_username (pulumi.Input[str]) - Specifies the administrator account name to use for all the instances of virtual machines in the scale set.

  • computer_name_prefix (pulumi.Input[str]) - Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 9 characters long for windows images and 1 - 58 for linux. Changing this forces a new resource to be created.

  • custom_data (pulumi.Input[str]) - Specifies custom data to supply to the machine. On linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes.

The os_profile_linux_config object supports the following:

  • disable_password_authentication (pulumi.Input[bool]) - Specifies whether password authentication should be disabled. Defaults to false. Changing this forces a new resource to be created.

  • sshKeys (pulumi.Input[list]) - Specifies a collection of path and key_data to be placed on the virtual machine.

    • keyData (pulumi.Input[str])

    • path (pulumi.Input[str])

The os_profile_secrets object supports the following:

  • sourceVaultId (pulumi.Input[str]) - Specifies the key vault to use.

  • vaultCertificates (pulumi.Input[list]) - A collection of Vault Certificates as documented below

    • certificateStore (pulumi.Input[str]) - Specifies the certificate store on the Virtual Machine where the certificate should be added to.

    • certificateUrl (pulumi.Input[str]) - It is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be data, dataType and password.

The os_profile_windows_config object supports the following:

  • additionalUnattendConfigs (pulumi.Input[list]) - An Additional Unattended Config block as documented below.

    • component (pulumi.Input[str]) - Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.

    • content (pulumi.Input[str]) - Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.

    • pass (pulumi.Input[str]) - Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.

    • settingName (pulumi.Input[str]) - Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.

  • enableAutomaticUpgrades (pulumi.Input[bool]) - Indicates whether virtual machines in the scale set are enabled for automatic updates.

  • provision_vm_agent (pulumi.Input[bool]) - Indicates whether virtual machine agent should be provisioned on the virtual machines in the scale set.

  • winrms (pulumi.Input[list]) - A collection of WinRM configuration blocks as documented below.

    • certificateUrl (pulumi.Input[str]) - Specifies URL of the certificate with which new Virtual Machines is provisioned.

    • protocol (pulumi.Input[str]) - Specifies the protocol of listener

The plan object supports the following:

  • name (pulumi.Input[str]) - Specifies the name of the image from the marketplace.

  • product (pulumi.Input[str]) - Specifies the product of the image from the marketplace.

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image.

The rolling_upgrade_policy object supports the following:

  • maxBatchInstancePercent (pulumi.Input[float]) - The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. Defaults to 20.

  • maxUnhealthyInstancePercent (pulumi.Input[float]) - The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. Defaults to 20.

  • maxUnhealthyUpgradedInstancePercent (pulumi.Input[float]) - The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. Defaults to 20.

  • pauseTimeBetweenBatches (pulumi.Input[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 for duration (https://en.wikipedia.org/wiki/ISO_8601#Durations). Defaults to 0 seconds represented as PT0S.

The sku object supports the following:

  • capacity (pulumi.Input[float]) - Specifies the number of virtual machines in the scale set.

  • name (pulumi.Input[str]) - Specifies the size of virtual machines in a scale set.

  • tier (pulumi.Input[str]) - Specifies the tier of virtual machines in a scale set. Possible values, standard or basic.

The storage_profile_data_disks object supports the following:

  • caching (pulumi.Input[str]) - Specifies the caching requirements. Possible values include: None (default), ReadOnly, ReadWrite.

  • create_option (pulumi.Input[str]) - Specifies how the data disk should be created. The only possible options are FromImage and Empty.

  • disk_size_gb (pulumi.Input[float]) - Specifies the size of the disk in GB. This element is required when creating an empty disk.

  • lun (pulumi.Input[float]) - Specifies the Logical Unit Number of the disk in each virtual machine in the scale set.

  • managedDiskType (pulumi.Input[str]) - Specifies the type of managed disk to create. Value must be either Standard_LRS, StandardSSD_LRS or Premium_LRS.

The storage_profile_image_reference object supports the following:

  • id (pulumi.Input[str]) - Specifies the ID of the (custom) image to use to create the virtual machine scale set, as in the example below.

  • offer (pulumi.Input[str]) - Specifies the offer of the image used to create the virtual machines.

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image used to create the virtual machines.

  • sku (pulumi.Input[str]) - Specifies the SKU of the image used to create the virtual machines.

  • version (pulumi.Input[str]) - Specifies the version of the image used to create the virtual machines.

The storage_profile_os_disk object supports the following:

  • caching (pulumi.Input[str]) - Specifies the caching requirements. Possible values include: None (default), ReadOnly, ReadWrite.

  • create_option (pulumi.Input[str]) - Specifies how the virtual machine should be created. The only possible option is FromImage.

  • image (pulumi.Input[str]) - Specifies the blob uri for user image. A virtual machine scale set creates an os disk in the same container as the user image. Updating the osDisk image causes the existing disk to be deleted and a new one created with the new image. If the VM scale set is in Manual upgrade mode then the virtual machines are not updated until they have manualUpgrade applied to them. When setting this field os_type needs to be specified. Cannot be used when vhd_containers, managed_disk_type or storage_profile_image_reference are specified.

  • managedDiskType (pulumi.Input[str]) - Specifies the type of managed disk to create. Value you must be either Standard_LRS, StandardSSD_LRS or Premium_LRS. Cannot be used when vhd_containers or image is specified.

  • name (pulumi.Input[str]) - Specifies the disk name. Must be specified when using unmanaged disk (‘managed_disk_type’ property not set).

  • os_type (pulumi.Input[str]) - Specifies the operating system Type, valid values are windows, linux.

  • vhdContainers (pulumi.Input[list]) - Specifies the vhd uri. Cannot be used when image or managed_disk_type is specified.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.SharedImage(resource_name, opts=None, description=None, eula=None, gallery_name=None, hyper_v_generation=None, identifier=None, location=None, name=None, os_type=None, privacy_statement_uri=None, release_note_uri=None, resource_group_name=None, tags=None, __props__=None, __name__=None, __opts__=None)

Manages a Shared Image within a Shared Image Gallery.

import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West Europe")
example_shared_image_gallery = azure.compute.SharedImageGallery("exampleSharedImageGallery",
    resource_group_name=example_resource_group.name,
    location=example_resource_group.location,
    description="Shared images and things.",
    tags={
        "Hello": "There",
        "World": "Example",
    })
example_shared_image = azure.compute.SharedImage("exampleSharedImage",
    gallery_name=example_shared_image_gallery.name,
    resource_group_name=example_resource_group.name,
    location=example_resource_group.location,
    os_type="Linux",
    identifier={
        "publisher": "PublisherName",
        "offer": "OfferName",
        "sku": "ExampleSku",
    })
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • description (pulumi.Input[str]) – A description of this Shared Image.

  • eula (pulumi.Input[str]) – The End User Licence Agreement for the Shared Image.

  • gallery_name (pulumi.Input[str]) – Specifies the name of the Shared Image Gallery in which this Shared Image should exist. Changing this forces a new resource to be created.

  • hyper_v_generation (pulumi.Input[str]) – The generation of HyperV that the Virtual Machine used to create the Shared Image is based on. Possible values are V1 and V2. Defaults to V1. Changing this forces a new resource to be created.

  • identifier (pulumi.Input[dict]) – An identifier block as defined below.

  • location (pulumi.Input[str]) – Specifies the supported Azure location where the Shared Image Gallery exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the Shared Image. Changing this forces a new resource to be created.

  • os_type (pulumi.Input[str]) – The type of Operating System present in this Shared Image. Possible values are Linux and Windows.

  • privacy_statement_uri (pulumi.Input[str]) – The URI containing the Privacy Statement associated with this Shared Image.

  • release_note_uri (pulumi.Input[str]) – The URI containing the Release Notes associated with this Shared Image.

  • resource_group_name (pulumi.Input[str]) – The name of the resource group in which the Shared Image Gallery exists. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the Shared Image.

The identifier object supports the following:

  • offer (pulumi.Input[str]) - The Offer Name for this Shared Image.

  • publisher (pulumi.Input[str]) - The Publisher Name for this Gallery Image.

  • sku (pulumi.Input[str]) - The Name of the SKU for this Gallery Image.

description: pulumi.Output[str] = None

A description of this Shared Image.

eula: pulumi.Output[str] = None

The End User Licence Agreement for the Shared Image.

gallery_name: pulumi.Output[str] = None

Specifies the name of the Shared Image Gallery in which this Shared Image should exist. Changing this forces a new resource to be created.

hyper_v_generation: pulumi.Output[str] = None

The generation of HyperV that the Virtual Machine used to create the Shared Image is based on. Possible values are V1 and V2. Defaults to V1. Changing this forces a new resource to be created.

identifier: pulumi.Output[dict] = None

An identifier block as defined below.

  • offer (str) - The Offer Name for this Shared Image.

  • publisher (str) - The Publisher Name for this Gallery Image.

  • sku (str) - The Name of the SKU for this Gallery Image.

location: pulumi.Output[str] = None

Specifies the supported Azure location where the Shared Image Gallery exists. Changing this forces a new resource to be created.

name: pulumi.Output[str] = None

Specifies the name of the Shared Image. Changing this forces a new resource to be created.

os_type: pulumi.Output[str] = None

The type of Operating System present in this Shared Image. Possible values are Linux and Windows.

privacy_statement_uri: pulumi.Output[str] = None

The URI containing the Privacy Statement associated with this Shared Image.

release_note_uri: pulumi.Output[str] = None

The URI containing the Release Notes associated with this Shared Image.

resource_group_name: pulumi.Output[str] = None

The name of the resource group in which the Shared Image Gallery exists. Changing this forces a new resource to be created.

tags: pulumi.Output[dict] = None

A mapping of tags to assign to the Shared Image.

static get(resource_name, id, opts=None, description=None, eula=None, gallery_name=None, hyper_v_generation=None, identifier=None, location=None, name=None, os_type=None, privacy_statement_uri=None, release_note_uri=None, resource_group_name=None, tags=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • description (pulumi.Input[str]) – A description of this Shared Image.

  • eula (pulumi.Input[str]) – The End User Licence Agreement for the Shared Image.

  • gallery_name (pulumi.Input[str]) – Specifies the name of the Shared Image Gallery in which this Shared Image should exist. Changing this forces a new resource to be created.

  • hyper_v_generation (pulumi.Input[str]) – The generation of HyperV that the Virtual Machine used to create the Shared Image is based on. Possible values are V1 and V2. Defaults to V1. Changing this forces a new resource to be created.

  • identifier (pulumi.Input[dict]) – An identifier block as defined below.

  • location (pulumi.Input[str]) – Specifies the supported Azure location where the Shared Image Gallery exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the Shared Image. Changing this forces a new resource to be created.

  • os_type (pulumi.Input[str]) – The type of Operating System present in this Shared Image. Possible values are Linux and Windows.

  • privacy_statement_uri (pulumi.Input[str]) – The URI containing the Privacy Statement associated with this Shared Image.

  • release_note_uri (pulumi.Input[str]) – The URI containing the Release Notes associated with this Shared Image.

  • resource_group_name (pulumi.Input[str]) – The name of the resource group in which the Shared Image Gallery exists. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the Shared Image.

The identifier object supports the following:

  • offer (pulumi.Input[str]) - The Offer Name for this Shared Image.

  • publisher (pulumi.Input[str]) - The Publisher Name for this Gallery Image.

  • sku (pulumi.Input[str]) - The Name of the SKU for this Gallery Image.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.SharedImageGallery(resource_name, opts=None, description=None, location=None, name=None, resource_group_name=None, tags=None, __props__=None, __name__=None, __opts__=None)

Manages a Shared Image Gallery.

import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West Europe")
example_shared_image_gallery = azure.compute.SharedImageGallery("exampleSharedImageGallery",
    resource_group_name=example_resource_group.name,
    location=example_resource_group.location,
    description="Shared images and things.",
    tags={
        "Hello": "There",
        "World": "Example",
    })
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • description (pulumi.Input[str]) – A description for this Shared Image Gallery.

  • location (pulumi.Input[str]) – Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the Shared Image Gallery. Changing this forces a new resource to be created.

  • resource_group_name (pulumi.Input[str]) – The name of the resource group in which to create the Shared Image Gallery. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the Shared Image Gallery.

description: pulumi.Output[str] = None

A description for this Shared Image Gallery.

location: pulumi.Output[str] = None

Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

name: pulumi.Output[str] = None

Specifies the name of the Shared Image Gallery. Changing this forces a new resource to be created.

resource_group_name: pulumi.Output[str] = None

The name of the resource group in which to create the Shared Image Gallery. Changing this forces a new resource to be created.

tags: pulumi.Output[dict] = None

A mapping of tags to assign to the Shared Image Gallery.

unique_name: pulumi.Output[str] = None

The Unique Name for this Shared Image Gallery.

static get(resource_name, id, opts=None, description=None, location=None, name=None, resource_group_name=None, tags=None, unique_name=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • description (pulumi.Input[str]) – A description for this Shared Image Gallery.

  • location (pulumi.Input[str]) – Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the Shared Image Gallery. Changing this forces a new resource to be created.

  • resource_group_name (pulumi.Input[str]) – The name of the resource group in which to create the Shared Image Gallery. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the Shared Image Gallery.

  • unique_name (pulumi.Input[str]) – The Unique Name for this Shared Image Gallery.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.SharedImageVersion(resource_name, opts=None, exclude_from_latest=None, gallery_name=None, image_name=None, location=None, managed_image_id=None, name=None, resource_group_name=None, tags=None, target_regions=None, __props__=None, __name__=None, __opts__=None)

Manages a Version of a Shared Image within a Shared Image Gallery.

import pulumi
import pulumi_azure as azure

existing_image = azure.compute.get_image(name="search-api",
    resource_group_name="packerimages")
existing_shared_image = azure.compute.get_shared_image(name="existing-image",
    gallery_name="existing_gallery",
    resource_group_name="existing-resources")
example = azure.compute.SharedImageVersion("example",
    gallery_name=existing_shared_image.gallery_name,
    image_name=existing_shared_image.name,
    resource_group_name=existing_shared_image.resource_group_name,
    location=existing_shared_image.location,
    managed_image_id=existing_image.id,
    target_region=[{
        "name": existing_shared_image.location,
        "regionalReplicaCount": "5",
        "storage_account_type": "Standard_LRS",
    }])
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • exclude_from_latest (pulumi.Input[bool]) – Should this Image Version be excluded from the latest filter? If set to true this Image Version won’t be returned for the latest version. Defaults to false.

  • gallery_name (pulumi.Input[str]) – The name of the Shared Image Gallery in which the Shared Image exists. Changing this forces a new resource to be created.

  • image_name (pulumi.Input[str]) – The name of the Shared Image within the Shared Image Gallery in which this Version should be created. Changing this forces a new resource to be created.

  • location (pulumi.Input[str]) – The Azure Region in which the Shared Image Gallery exists. Changing this forces a new resource to be created.

  • managed_image_id (pulumi.Input[str]) – The ID of the Managed Image which should be used for this Shared Image Version. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – The version number for this Image Version, such as 1.0.0. Changing this forces a new resource to be created.

  • resource_group_name (pulumi.Input[str]) – The name of the Resource Group in which the Shared Image Gallery exists. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A collection of tags which should be applied to this resource.

  • target_regions (pulumi.Input[list]) – One or more target_region blocks as documented below.

The target_regions object supports the following:

  • name (pulumi.Input[str]) - The Azure Region in which this Image Version should exist.

  • regionalReplicaCount (pulumi.Input[float]) - The number of replicas of the Image Version to be created per region.

  • storage_account_type (pulumi.Input[str]) - The storage account type for the image version. Possible values are Standard_LRS and Standard_ZRS. Defaults to Standard_LRS. You can store all of your image version replicas in Zone Redundant Storage by specifying Standard_ZRS.

exclude_from_latest: pulumi.Output[bool] = None

Should this Image Version be excluded from the latest filter? If set to true this Image Version won’t be returned for the latest version. Defaults to false.

gallery_name: pulumi.Output[str] = None

The name of the Shared Image Gallery in which the Shared Image exists. Changing this forces a new resource to be created.

image_name: pulumi.Output[str] = None

The name of the Shared Image within the Shared Image Gallery in which this Version should be created. Changing this forces a new resource to be created.

location: pulumi.Output[str] = None

The Azure Region in which the Shared Image Gallery exists. Changing this forces a new resource to be created.

managed_image_id: pulumi.Output[str] = None

The ID of the Managed Image which should be used for this Shared Image Version. Changing this forces a new resource to be created.

name: pulumi.Output[str] = None

The version number for this Image Version, such as 1.0.0. Changing this forces a new resource to be created.

resource_group_name: pulumi.Output[str] = None

The name of the Resource Group in which the Shared Image Gallery exists. Changing this forces a new resource to be created.

tags: pulumi.Output[dict] = None

A collection of tags which should be applied to this resource.

target_regions: pulumi.Output[list] = None

One or more target_region blocks as documented below.

  • name (str) - The Azure Region in which this Image Version should exist.

  • regionalReplicaCount (float) - The number of replicas of the Image Version to be created per region.

  • storage_account_type (str) - The storage account type for the image version. Possible values are Standard_LRS and Standard_ZRS. Defaults to Standard_LRS. You can store all of your image version replicas in Zone Redundant Storage by specifying Standard_ZRS.

static get(resource_name, id, opts=None, exclude_from_latest=None, gallery_name=None, image_name=None, location=None, managed_image_id=None, name=None, resource_group_name=None, tags=None, target_regions=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • exclude_from_latest (pulumi.Input[bool]) – Should this Image Version be excluded from the latest filter? If set to true this Image Version won’t be returned for the latest version. Defaults to false.

  • gallery_name (pulumi.Input[str]) – The name of the Shared Image Gallery in which the Shared Image exists. Changing this forces a new resource to be created.

  • image_name (pulumi.Input[str]) – The name of the Shared Image within the Shared Image Gallery in which this Version should be created. Changing this forces a new resource to be created.

  • location (pulumi.Input[str]) – The Azure Region in which the Shared Image Gallery exists. Changing this forces a new resource to be created.

  • managed_image_id (pulumi.Input[str]) – The ID of the Managed Image which should be used for this Shared Image Version. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – The version number for this Image Version, such as 1.0.0. Changing this forces a new resource to be created.

  • resource_group_name (pulumi.Input[str]) – The name of the Resource Group in which the Shared Image Gallery exists. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A collection of tags which should be applied to this resource.

  • target_regions (pulumi.Input[list]) – One or more target_region blocks as documented below.

The target_regions object supports the following:

  • name (pulumi.Input[str]) - The Azure Region in which this Image Version should exist.

  • regionalReplicaCount (pulumi.Input[float]) - The number of replicas of the Image Version to be created per region.

  • storage_account_type (pulumi.Input[str]) - The storage account type for the image version. Possible values are Standard_LRS and Standard_ZRS. Defaults to Standard_LRS. You can store all of your image version replicas in Zone Redundant Storage by specifying Standard_ZRS.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.Snapshot(resource_name, opts=None, create_option=None, disk_size_gb=None, encryption_settings=None, location=None, name=None, resource_group_name=None, source_resource_id=None, source_uri=None, storage_account_id=None, tags=None, __props__=None, __name__=None, __opts__=None)

Manages a Disk Snapshot.

import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West Europe")
example_managed_disk = azure.compute.ManagedDisk("exampleManagedDisk",
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name,
    storage_account_type="Standard_LRS",
    create_option="Empty",
    disk_size_gb="10")
example_snapshot = azure.compute.Snapshot("exampleSnapshot",
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name,
    create_option="Copy",
    source_uri=example_managed_disk.id)
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • create_option (pulumi.Input[str]) – Indicates how the snapshot is to be created. Possible values are Copy or Import. Changing this forces a new resource to be created.

  • disk_size_gb (pulumi.Input[float]) – The size of the Snapshotted Disk in GB.

  • location (pulumi.Input[str]) – Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the Snapshot resource. Changing this forces a new resource to be created.

  • resource_group_name (pulumi.Input[str]) – The name of the resource group in which to create the Snapshot. Changing this forces a new resource to be created.

  • source_resource_id (pulumi.Input[str]) – Specifies a reference to an existing snapshot, when create_option is Copy. Changing this forces a new resource to be created.

  • source_uri (pulumi.Input[str]) – Specifies the URI to a Managed or Unmanaged Disk. Changing this forces a new resource to be created.

  • storage_account_id (pulumi.Input[str]) – Specifies the ID of an storage account. Used with source_uri to allow authorization during import of unmanaged blobs from a different subscription. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

The encryption_settings object supports the following:

  • diskEncryptionKey (pulumi.Input[dict])

    • secretUrl (pulumi.Input[str])

    • sourceVaultId (pulumi.Input[str])

  • enabled (pulumi.Input[bool])

  • keyEncryptionKey (pulumi.Input[dict])

    • keyUrl (pulumi.Input[str])

    • sourceVaultId (pulumi.Input[str])

create_option: pulumi.Output[str] = None

Indicates how the snapshot is to be created. Possible values are Copy or Import. Changing this forces a new resource to be created.

disk_size_gb: pulumi.Output[float] = None

The size of the Snapshotted Disk in GB.

location: pulumi.Output[str] = None

Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

name: pulumi.Output[str] = None

Specifies the name of the Snapshot resource. Changing this forces a new resource to be created.

resource_group_name: pulumi.Output[str] = None

The name of the resource group in which to create the Snapshot. Changing this forces a new resource to be created.

source_resource_id: pulumi.Output[str] = None

Specifies a reference to an existing snapshot, when create_option is Copy. Changing this forces a new resource to be created.

source_uri: pulumi.Output[str] = None

Specifies the URI to a Managed or Unmanaged Disk. Changing this forces a new resource to be created.

storage_account_id: pulumi.Output[str] = None

Specifies the ID of an storage account. Used with source_uri to allow authorization during import of unmanaged blobs from a different subscription. Changing this forces a new resource to be created.

tags: pulumi.Output[dict] = None

A mapping of tags to assign to the resource.

static get(resource_name, id, opts=None, create_option=None, disk_size_gb=None, encryption_settings=None, location=None, name=None, resource_group_name=None, source_resource_id=None, source_uri=None, storage_account_id=None, tags=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • create_option (pulumi.Input[str]) – Indicates how the snapshot is to be created. Possible values are Copy or Import. Changing this forces a new resource to be created.

  • disk_size_gb (pulumi.Input[float]) – The size of the Snapshotted Disk in GB.

  • location (pulumi.Input[str]) – Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the Snapshot resource. Changing this forces a new resource to be created.

  • resource_group_name (pulumi.Input[str]) – The name of the resource group in which to create the Snapshot. Changing this forces a new resource to be created.

  • source_resource_id (pulumi.Input[str]) – Specifies a reference to an existing snapshot, when create_option is Copy. Changing this forces a new resource to be created.

  • source_uri (pulumi.Input[str]) – Specifies the URI to a Managed or Unmanaged Disk. Changing this forces a new resource to be created.

  • storage_account_id (pulumi.Input[str]) – Specifies the ID of an storage account. Used with source_uri to allow authorization during import of unmanaged blobs from a different subscription. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the resource.

The encryption_settings object supports the following:

  • diskEncryptionKey (pulumi.Input[dict])

    • secretUrl (pulumi.Input[str])

    • sourceVaultId (pulumi.Input[str])

  • enabled (pulumi.Input[bool])

  • keyEncryptionKey (pulumi.Input[dict])

    • keyUrl (pulumi.Input[str])

    • sourceVaultId (pulumi.Input[str])

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.VirtualMachine(resource_name, opts=None, additional_capabilities=None, availability_set_id=None, boot_diagnostics=None, delete_data_disks_on_termination=None, delete_os_disk_on_termination=None, identity=None, license_type=None, location=None, name=None, network_interface_ids=None, os_profile=None, os_profile_linux_config=None, os_profile_secrets=None, os_profile_windows_config=None, plan=None, primary_network_interface_id=None, proximity_placement_group_id=None, resource_group_name=None, storage_data_disks=None, storage_image_reference=None, storage_os_disk=None, tags=None, vm_size=None, zones=None, __props__=None, __name__=None, __opts__=None)

Manages a Virtual Machine.

Note: The compute.VirtualMachine resource has been superseded by the compute.LinuxVirtualMachine and compute.WindowsVirtualMachine resources. The existing compute.VirtualMachine resource will continue to be available throughout the 2.x releases however is in a feature-frozen state to maintain compatibility - new functionality will instead be added to the compute.LinuxVirtualMachine and compute.WindowsVirtualMachine resources.

Note: Data Disks can be attached either directly on the compute.VirtualMachine resource, or using the compute.DataDiskAttachment resource - but the two cannot be used together. If both are used against the same Virtual Machine, spurious changes will occur.

import pulumi
import pulumi_azure as azure

config = pulumi.Config()
prefix = config.get("prefix")
if prefix is None:
    prefix = "tfvmex"
main_resource_group = azure.core.ResourceGroup("mainResourceGroup", location="West US 2")
main_virtual_network = azure.network.VirtualNetwork("mainVirtualNetwork",
    address_spaces=["10.0.0.0/16"],
    location=main_resource_group.location,
    resource_group_name=main_resource_group.name)
internal = azure.network.Subnet("internal",
    resource_group_name=main_resource_group.name,
    virtual_network_name=main_virtual_network.name,
    address_prefix="10.0.2.0/24")
main_network_interface = azure.network.NetworkInterface("mainNetworkInterface",
    location=main_resource_group.location,
    resource_group_name=main_resource_group.name,
    ip_configuration=[{
        "name": "testconfiguration1",
        "subnet_id": internal.id,
        "privateIpAddressAllocation": "Dynamic",
    }])
main_virtual_machine = azure.compute.VirtualMachine("mainVirtualMachine",
    location=main_resource_group.location,
    resource_group_name=main_resource_group.name,
    network_interface_ids=[main_network_interface.id],
    vm_size="Standard_DS1_v2",
    storage_image_reference={
        "publisher": "Canonical",
        "offer": "UbuntuServer",
        "sku": "16.04-LTS",
        "version": "latest",
    },
    storage_os_disk={
        "name": "myosdisk1",
        "caching": "ReadWrite",
        "create_option": "FromImage",
        "managedDiskType": "Standard_LRS",
    },
    os_profile={
        "computer_name": "hostname",
        "admin_username": "testadmin",
        "admin_password": "Password1234!",
    },
    os_profile_linux_config={
        "disable_password_authentication": False,
    },
    tags={
        "environment": "staging",
    })
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • additional_capabilities (pulumi.Input[dict]) – A additional_capabilities block.

  • availability_set_id (pulumi.Input[str]) – The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.

  • boot_diagnostics (pulumi.Input[dict]) – A boot_diagnostics block.

  • delete_data_disks_on_termination (pulumi.Input[bool]) – Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to false.

  • delete_os_disk_on_termination (pulumi.Input[bool]) – Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to false.

  • identity (pulumi.Input[dict]) – A identity block.

  • license_type (pulumi.Input[str]) – Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are Windows_Client and Windows_Server.

  • location (pulumi.Input[str]) – Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.

  • network_interface_ids (pulumi.Input[list]) – A list of Network Interface ID’s which should be associated with the Virtual Machine.

  • os_profile (pulumi.Input[dict]) – An os_profile block. Required when create_option in the storage_os_disk block is set to FromImage.

  • os_profile_linux_config (pulumi.Input[dict]) – A os_profile_linux_config block.

  • os_profile_secrets (pulumi.Input[list]) – One or more os_profile_secrets blocks.

  • os_profile_windows_config (pulumi.Input[dict]) – A os_profile_windows_config block.

  • plan (pulumi.Input[dict]) – A plan block.

  • primary_network_interface_id (pulumi.Input[str]) – The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.

  • proximity_placement_group_id (pulumi.Input[str]) – The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created

  • resource_group_name (pulumi.Input[str]) – Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.

  • storage_data_disks (pulumi.Input[list]) – One or more storage_data_disk blocks.

  • storage_image_reference (pulumi.Input[dict]) – A storage_image_reference block.

  • storage_os_disk (pulumi.Input[dict]) – A storage_os_disk block.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the Virtual Machine.

  • vm_size (pulumi.Input[str]) – Specifies the size of the Virtual Machine.

  • zones (pulumi.Input[str]) – A list of a single item of the Availability Zone which the Virtual Machine should be allocated in.

The additional_capabilities object supports the following:

  • ultraSsdEnabled (pulumi.Input[bool]) - Should Ultra SSD disk be enabled for this Virtual Machine?

The boot_diagnostics object supports the following:

  • enabled (pulumi.Input[bool]) - Should Boot Diagnostics be enabled for this Virtual Machine?

  • storageUri (pulumi.Input[str]) - The Storage Account’s Blob Endpoint which should hold the virtual machine’s diagnostic files.

The identity object supports the following:

  • identityIds (pulumi.Input[list]) - Specifies a list of user managed identity ids to be assigned to the VM. Required if type is UserAssigned.

  • principal_id (pulumi.Input[str]) - The Principal ID for the Service Principal associated with the Managed Service Identity of this Virtual Machine.

  • type (pulumi.Input[str]) - The Managed Service Identity Type of this Virtual Machine. Possible values are SystemAssigned (where Azure will generate a Service Principal for you), UserAssigned (where you can specify the Service Principal ID’s) to be used by this Virtual Machine using the identity_ids field, and SystemAssigned, UserAssigned which assigns both a system managed identity as well as the specified user assigned identities.

The os_profile object supports the following:

  • admin_password (pulumi.Input[str]) - The password associated with the local administrator account.

  • admin_username (pulumi.Input[str]) - Specifies the name of the local administrator account.

  • computer_name (pulumi.Input[str]) - Specifies the name of the Virtual Machine.

  • custom_data (pulumi.Input[str]) - Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes.

The os_profile_linux_config object supports the following:

  • disable_password_authentication (pulumi.Input[bool]) - Specifies whether password authentication should be disabled. If set to false, an admin_password must be specified.

  • sshKeys (pulumi.Input[list]) - One or more ssh_keys blocks. This field is required if disable_password_authentication is set to true.

    • keyData (pulumi.Input[str]) - The Public SSH Key which should be written to the path defined above.

    • path (pulumi.Input[str]) - The path of the destination file on the virtual machine

The os_profile_secrets object supports the following:

  • sourceVaultId (pulumi.Input[str]) - Specifies the ID of the Key Vault to use.

  • vaultCertificates (pulumi.Input[list]) - One or more vault_certificates blocks.

    • certificateStore (pulumi.Input[str]) - Specifies the certificate store on the Virtual Machine where the certificate should be added to, such as My.

    • certificateUrl (pulumi.Input[str]) - The ID of the Key Vault Secret. Stored secret is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be:

The os_profile_windows_config object supports the following:

  • additionalUnattendConfigs (pulumi.Input[list]) - A additional_unattend_config block.

    • component (pulumi.Input[str]) - Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.

    • content (pulumi.Input[str]) - Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.

    • pass (pulumi.Input[str]) - Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.

    • settingName (pulumi.Input[str]) - Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.

  • enableAutomaticUpgrades (pulumi.Input[bool]) - Are automatic updates enabled on this Virtual Machine? Defaults to false.

  • provision_vm_agent (pulumi.Input[bool]) - Should the Azure Virtual Machine Guest Agent be installed on this Virtual Machine? Defaults to false.

  • timezone (pulumi.Input[str]) - Specifies the time zone of the virtual machine, the possible values are defined here.

  • winrms (pulumi.Input[list]) - One or more winrm block.

    • certificateUrl (pulumi.Input[str]) - The ID of the Key Vault Secret which contains the encrypted Certificate which should be installed on the Virtual Machine. This certificate must also be specified in the vault_certificates block within the os_profile_secrets block.

    • protocol (pulumi.Input[str]) - Specifies the protocol of listener. Possible values are HTTP or HTTPS.

The plan object supports the following:

  • name (pulumi.Input[str]) - Specifies the name of the image from the marketplace.

  • product (pulumi.Input[str]) - Specifies the product of the image from the marketplace.

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image.

The storage_data_disks object supports the following:

  • caching (pulumi.Input[str]) - Specifies the caching requirements for the Data Disk. Possible values include None, ReadOnly and ReadWrite.

  • create_option (pulumi.Input[str]) - Specifies how the data disk should be created. Possible values are Attach, FromImage and Empty.

  • disk_size_gb (pulumi.Input[float]) - Specifies the size of the data disk in gigabytes.

  • lun (pulumi.Input[float]) - Specifies the logical unit number of the data disk. This needs to be unique within all the Data Disks on the Virtual Machine.

  • managed_disk_id (pulumi.Input[str]) - Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set create_option must be set to Attach.

  • managedDiskType (pulumi.Input[str]) - Specifies the type of managed disk to create. Possible values are either Standard_LRS, StandardSSD_LRS, Premium_LRS or UltraSSD_LRS.

  • name (pulumi.Input[str]) - The name of the Data Disk.

  • vhdUri (pulumi.Input[str]) - Specifies the URI of the VHD file backing this Unmanaged Data Disk. Changing this forces a new resource to be created.

  • write_accelerator_enabled (pulumi.Input[bool]) - Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

The storage_image_reference object supports the following:

  • id (pulumi.Input[str]) - Specifies the ID of the Custom Image which the Virtual Machine should be created from. Changing this forces a new resource to be created.

  • offer (pulumi.Input[str]) - Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.

  • sku (pulumi.Input[str]) - Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.

  • version (pulumi.Input[str]) - Specifies the version of the image used to create the virtual machine. Changing this forces a new resource to be created.

The storage_os_disk object supports the following:

  • caching (pulumi.Input[str]) - Specifies the caching requirements for the OS Disk. Possible values include None, ReadOnly and ReadWrite.

  • create_option (pulumi.Input[str]) - Specifies how the OS Disk should be created. Possible values are Attach (managed disks only) and FromImage.

  • disk_size_gb (pulumi.Input[float]) - Specifies the size of the OS Disk in gigabytes.

  • imageUri (pulumi.Input[str]) - Specifies the Image URI in the format publisherName:offer:skus:version. This field can also specify the VHD uri of a custom VM image to clone. When cloning a Custom (Unmanaged) Disk Image the os_type field must be set.

  • managed_disk_id (pulumi.Input[str]) - Specifies the ID of an existing Managed Disk which should be attached as the OS Disk of this Virtual Machine. If this is set then the create_option must be set to Attach.

  • managedDiskType (pulumi.Input[str]) - Specifies the type of Managed Disk which should be created. Possible values are Standard_LRS, StandardSSD_LRS or Premium_LRS.

  • name (pulumi.Input[str]) - Specifies the name of the OS Disk.

  • os_type (pulumi.Input[str]) - Specifies the Operating System on the OS Disk. Possible values are Linux and Windows.

  • vhdUri (pulumi.Input[str]) - Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.

  • write_accelerator_enabled (pulumi.Input[bool]) - Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

additional_capabilities: pulumi.Output[dict] = None

A additional_capabilities block.

  • ultraSsdEnabled (bool) - Should Ultra SSD disk be enabled for this Virtual Machine?

availability_set_id: pulumi.Output[str] = None

The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.

boot_diagnostics: pulumi.Output[dict] = None

A boot_diagnostics block.

  • enabled (bool) - Should Boot Diagnostics be enabled for this Virtual Machine?

  • storageUri (str) - The Storage Account’s Blob Endpoint which should hold the virtual machine’s diagnostic files.

delete_data_disks_on_termination: pulumi.Output[bool] = None

Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to false.

delete_os_disk_on_termination: pulumi.Output[bool] = None

Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to false.

identity: pulumi.Output[dict] = None

A identity block.

  • identityIds (list) - Specifies a list of user managed identity ids to be assigned to the VM. Required if type is UserAssigned.

  • principal_id (str) - The Principal ID for the Service Principal associated with the Managed Service Identity of this Virtual Machine.

  • type (str) - The Managed Service Identity Type of this Virtual Machine. Possible values are SystemAssigned (where Azure will generate a Service Principal for you), UserAssigned (where you can specify the Service Principal ID’s) to be used by this Virtual Machine using the identity_ids field, and SystemAssigned, UserAssigned which assigns both a system managed identity as well as the specified user assigned identities.

license_type: pulumi.Output[str] = None

Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are Windows_Client and Windows_Server.

location: pulumi.Output[str] = None

Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.

name: pulumi.Output[str] = None

Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.

network_interface_ids: pulumi.Output[list] = None

A list of Network Interface ID’s which should be associated with the Virtual Machine.

os_profile: pulumi.Output[dict] = None

An os_profile block. Required when create_option in the storage_os_disk block is set to FromImage.

  • admin_password (str) - The password associated with the local administrator account.

  • admin_username (str) - Specifies the name of the local administrator account.

  • computer_name (str) - Specifies the name of the Virtual Machine.

  • custom_data (str) - Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes.

os_profile_linux_config: pulumi.Output[dict] = None

A os_profile_linux_config block.

  • disable_password_authentication (bool) - Specifies whether password authentication should be disabled. If set to false, an admin_password must be specified.

  • sshKeys (list) - One or more ssh_keys blocks. This field is required if disable_password_authentication is set to true.

    • keyData (str) - The Public SSH Key which should be written to the path defined above.

    • path (str) - The path of the destination file on the virtual machine

os_profile_secrets: pulumi.Output[list] = None

One or more os_profile_secrets blocks.

  • sourceVaultId (str) - Specifies the ID of the Key Vault to use.

  • vaultCertificates (list) - One or more vault_certificates blocks.

    • certificateStore (str) - Specifies the certificate store on the Virtual Machine where the certificate should be added to, such as My.

    • certificateUrl (str) - The ID of the Key Vault Secret. Stored secret is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be:

os_profile_windows_config: pulumi.Output[dict] = None

A os_profile_windows_config block.

  • additionalUnattendConfigs (list) - A additional_unattend_config block.

    • component (str) - Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.

    • content (str) - Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.

    • pass (str) - Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.

    • settingName (str) - Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.

  • enableAutomaticUpgrades (bool) - Are automatic updates enabled on this Virtual Machine? Defaults to false.

  • provision_vm_agent (bool) - Should the Azure Virtual Machine Guest Agent be installed on this Virtual Machine? Defaults to false.

  • timezone (str) - Specifies the time zone of the virtual machine, the possible values are defined here.

  • winrms (list) - One or more winrm block.

    • certificateUrl (str) - The ID of the Key Vault Secret which contains the encrypted Certificate which should be installed on the Virtual Machine. This certificate must also be specified in the vault_certificates block within the os_profile_secrets block.

    • protocol (str) - Specifies the protocol of listener. Possible values are HTTP or HTTPS.

plan: pulumi.Output[dict] = None

A plan block.

  • name (str) - Specifies the name of the image from the marketplace.

  • product (str) - Specifies the product of the image from the marketplace.

  • publisher (str) - Specifies the publisher of the image.

primary_network_interface_id: pulumi.Output[str] = None

The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.

proximity_placement_group_id: pulumi.Output[str] = None

The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created

resource_group_name: pulumi.Output[str] = None

Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.

storage_data_disks: pulumi.Output[list] = None

One or more storage_data_disk blocks.

  • caching (str) - Specifies the caching requirements for the Data Disk. Possible values include None, ReadOnly and ReadWrite.

  • create_option (str) - Specifies how the data disk should be created. Possible values are Attach, FromImage and Empty.

  • disk_size_gb (float) - Specifies the size of the data disk in gigabytes.

  • lun (float) - Specifies the logical unit number of the data disk. This needs to be unique within all the Data Disks on the Virtual Machine.

  • managed_disk_id (str) - Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set create_option must be set to Attach.

  • managedDiskType (str) - Specifies the type of managed disk to create. Possible values are either Standard_LRS, StandardSSD_LRS, Premium_LRS or UltraSSD_LRS.

  • name (str) - The name of the Data Disk.

  • vhdUri (str) - Specifies the URI of the VHD file backing this Unmanaged Data Disk. Changing this forces a new resource to be created.

  • write_accelerator_enabled (bool) - Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

storage_image_reference: pulumi.Output[dict] = None

A storage_image_reference block.

  • id (str) - Specifies the ID of the Custom Image which the Virtual Machine should be created from. Changing this forces a new resource to be created.

  • offer (str) - Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.

  • publisher (str) - Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.

  • sku (str) - Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.

  • version (str) - Specifies the version of the image used to create the virtual machine. Changing this forces a new resource to be created.

storage_os_disk: pulumi.Output[dict] = None

A storage_os_disk block.

  • caching (str) - Specifies the caching requirements for the OS Disk. Possible values include None, ReadOnly and ReadWrite.

  • create_option (str) - Specifies how the OS Disk should be created. Possible values are Attach (managed disks only) and FromImage.

  • disk_size_gb (float) - Specifies the size of the OS Disk in gigabytes.

  • imageUri (str) - Specifies the Image URI in the format publisherName:offer:skus:version. This field can also specify the VHD uri of a custom VM image to clone. When cloning a Custom (Unmanaged) Disk Image the os_type field must be set.

  • managed_disk_id (str) - Specifies the ID of an existing Managed Disk which should be attached as the OS Disk of this Virtual Machine. If this is set then the create_option must be set to Attach.

  • managedDiskType (str) - Specifies the type of Managed Disk which should be created. Possible values are Standard_LRS, StandardSSD_LRS or Premium_LRS.

  • name (str) - Specifies the name of the OS Disk.

  • os_type (str) - Specifies the Operating System on the OS Disk. Possible values are Linux and Windows.

  • vhdUri (str) - Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.

  • write_accelerator_enabled (bool) - Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

tags: pulumi.Output[dict] = None

A mapping of tags to assign to the Virtual Machine.

vm_size: pulumi.Output[str] = None

Specifies the size of the Virtual Machine.

zones: pulumi.Output[str] = None

A list of a single item of the Availability Zone which the Virtual Machine should be allocated in.

static get(resource_name, id, opts=None, additional_capabilities=None, availability_set_id=None, boot_diagnostics=None, delete_data_disks_on_termination=None, delete_os_disk_on_termination=None, identity=None, license_type=None, location=None, name=None, network_interface_ids=None, os_profile=None, os_profile_linux_config=None, os_profile_secrets=None, os_profile_windows_config=None, plan=None, primary_network_interface_id=None, proximity_placement_group_id=None, resource_group_name=None, storage_data_disks=None, storage_image_reference=None, storage_os_disk=None, tags=None, vm_size=None, zones=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • additional_capabilities (pulumi.Input[dict]) – A additional_capabilities block.

  • availability_set_id (pulumi.Input[str]) – The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.

  • boot_diagnostics (pulumi.Input[dict]) – A boot_diagnostics block.

  • delete_data_disks_on_termination (pulumi.Input[bool]) – Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to false.

  • delete_os_disk_on_termination (pulumi.Input[bool]) – Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to false.

  • identity (pulumi.Input[dict]) – A identity block.

  • license_type (pulumi.Input[str]) – Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are Windows_Client and Windows_Server.

  • location (pulumi.Input[str]) – Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.

  • name (pulumi.Input[str]) – Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.

  • network_interface_ids (pulumi.Input[list]) – A list of Network Interface ID’s which should be associated with the Virtual Machine.

  • os_profile (pulumi.Input[dict]) – An os_profile block. Required when create_option in the storage_os_disk block is set to FromImage.

  • os_profile_linux_config (pulumi.Input[dict]) – A os_profile_linux_config block.

  • os_profile_secrets (pulumi.Input[list]) – One or more os_profile_secrets blocks.

  • os_profile_windows_config (pulumi.Input[dict]) – A os_profile_windows_config block.

  • plan (pulumi.Input[dict]) – A plan block.

  • primary_network_interface_id (pulumi.Input[str]) – The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.

  • proximity_placement_group_id (pulumi.Input[str]) – The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created

  • resource_group_name (pulumi.Input[str]) – Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.

  • storage_data_disks (pulumi.Input[list]) – One or more storage_data_disk blocks.

  • storage_image_reference (pulumi.Input[dict]) – A storage_image_reference block.

  • storage_os_disk (pulumi.Input[dict]) – A storage_os_disk block.

  • tags (pulumi.Input[dict]) – A mapping of tags to assign to the Virtual Machine.

  • vm_size (pulumi.Input[str]) –

    Specifies the size of the Virtual Machine.

  • zones (pulumi.Input[str]) – A list of a single item of the Availability Zone which the Virtual Machine should be allocated in.

The additional_capabilities object supports the following:

  • ultraSsdEnabled (pulumi.Input[bool]) - Should Ultra SSD disk be enabled for this Virtual Machine?

The boot_diagnostics object supports the following:

  • enabled (pulumi.Input[bool]) - Should Boot Diagnostics be enabled for this Virtual Machine?

  • storageUri (pulumi.Input[str]) - The Storage Account’s Blob Endpoint which should hold the virtual machine’s diagnostic files.

The identity object supports the following:

  • identityIds (pulumi.Input[list]) - Specifies a list of user managed identity ids to be assigned to the VM. Required if type is UserAssigned.

  • principal_id (pulumi.Input[str]) - The Principal ID for the Service Principal associated with the Managed Service Identity of this Virtual Machine.

  • type (pulumi.Input[str]) - The Managed Service Identity Type of this Virtual Machine. Possible values are SystemAssigned (where Azure will generate a Service Principal for you), UserAssigned (where you can specify the Service Principal ID’s) to be used by this Virtual Machine using the identity_ids field, and SystemAssigned, UserAssigned which assigns both a system managed identity as well as the specified user assigned identities.

The os_profile object supports the following:

  • admin_password (pulumi.Input[str]) - The password associated with the local administrator account.

  • admin_username (pulumi.Input[str]) - Specifies the name of the local administrator account.

  • computer_name (pulumi.Input[str]) - Specifies the name of the Virtual Machine.

  • custom_data (pulumi.Input[str]) - Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes.

The os_profile_linux_config object supports the following:

  • disable_password_authentication (pulumi.Input[bool]) - Specifies whether password authentication should be disabled. If set to false, an admin_password must be specified.

  • sshKeys (pulumi.Input[list]) - One or more ssh_keys blocks. This field is required if disable_password_authentication is set to true.

    • keyData (pulumi.Input[str]) - The Public SSH Key which should be written to the path defined above.

    • path (pulumi.Input[str]) - The path of the destination file on the virtual machine

The os_profile_secrets object supports the following:

  • sourceVaultId (pulumi.Input[str]) - Specifies the ID of the Key Vault to use.

  • vaultCertificates (pulumi.Input[list]) - One or more vault_certificates blocks.

    • certificateStore (pulumi.Input[str]) - Specifies the certificate store on the Virtual Machine where the certificate should be added to, such as My.

    • certificateUrl (pulumi.Input[str]) - The ID of the Key Vault Secret. Stored secret is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be:

The os_profile_windows_config object supports the following:

  • additionalUnattendConfigs (pulumi.Input[list]) - A additional_unattend_config block.

    • component (pulumi.Input[str]) - Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.

    • content (pulumi.Input[str]) - Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.

    • pass (pulumi.Input[str]) - Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.

    • settingName (pulumi.Input[str]) - Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.

  • enableAutomaticUpgrades (pulumi.Input[bool]) - Are automatic updates enabled on this Virtual Machine? Defaults to false.

  • provision_vm_agent (pulumi.Input[bool]) - Should the Azure Virtual Machine Guest Agent be installed on this Virtual Machine? Defaults to false.

  • timezone (pulumi.Input[str]) - Specifies the time zone of the virtual machine, the possible values are defined here.

  • winrms (pulumi.Input[list]) - One or more winrm block.

    • certificateUrl (pulumi.Input[str]) - The ID of the Key Vault Secret which contains the encrypted Certificate which should be installed on the Virtual Machine. This certificate must also be specified in the vault_certificates block within the os_profile_secrets block.

    • protocol (pulumi.Input[str]) - Specifies the protocol of listener. Possible values are HTTP or HTTPS.

The plan object supports the following:

  • name (pulumi.Input[str]) - Specifies the name of the image from the marketplace.

  • product (pulumi.Input[str]) - Specifies the product of the image from the marketplace.

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image.

The storage_data_disks object supports the following:

  • caching (pulumi.Input[str]) - Specifies the caching requirements for the Data Disk. Possible values include None, ReadOnly and ReadWrite.

  • create_option (pulumi.Input[str]) - Specifies how the data disk should be created. Possible values are Attach, FromImage and Empty.

  • disk_size_gb (pulumi.Input[float]) - Specifies the size of the data disk in gigabytes.

  • lun (pulumi.Input[float]) - Specifies the logical unit number of the data disk. This needs to be unique within all the Data Disks on the Virtual Machine.

  • managed_disk_id (pulumi.Input[str]) - Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set create_option must be set to Attach.

  • managedDiskType (pulumi.Input[str]) - Specifies the type of managed disk to create. Possible values are either Standard_LRS, StandardSSD_LRS, Premium_LRS or UltraSSD_LRS.

  • name (pulumi.Input[str]) - The name of the Data Disk.

  • vhdUri (pulumi.Input[str]) - Specifies the URI of the VHD file backing this Unmanaged Data Disk. Changing this forces a new resource to be created.

  • write_accelerator_enabled (pulumi.Input[bool]) - Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

The storage_image_reference object supports the following:

  • id (pulumi.Input[str]) - Specifies the ID of the Custom Image which the Virtual Machine should be created from. Changing this forces a new resource to be created.

  • offer (pulumi.Input[str]) - Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.

  • sku (pulumi.Input[str]) - Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.

  • version (pulumi.Input[str]) - Specifies the version of the image used to create the virtual machine. Changing this forces a new resource to be created.

The storage_os_disk object supports the following:

  • caching (pulumi.Input[str]) - Specifies the caching requirements for the OS Disk. Possible values include None, ReadOnly and ReadWrite.

  • create_option (pulumi.Input[str]) - Specifies how the OS Disk should be created. Possible values are Attach (managed disks only) and FromImage.

  • disk_size_gb (pulumi.Input[float]) - Specifies the size of the OS Disk in gigabytes.

  • imageUri (pulumi.Input[str]) - Specifies the Image URI in the format publisherName:offer:skus:version. This field can also specify the VHD uri of a custom VM image to clone. When cloning a Custom (Unmanaged) Disk Image the os_type field must be set.

  • managed_disk_id (pulumi.Input[str]) - Specifies the ID of an existing Managed Disk which should be attached as the OS Disk of this Virtual Machine. If this is set then the create_option must be set to Attach.

  • managedDiskType (pulumi.Input[str]) - Specifies the type of Managed Disk which should be created. Possible values are Standard_LRS, StandardSSD_LRS or Premium_LRS.

  • name (pulumi.Input[str]) - Specifies the name of the OS Disk.

  • os_type (pulumi.Input[str]) - Specifies the Operating System on the OS Disk. Possible values are Linux and Windows.

  • vhdUri (pulumi.Input[str]) - Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.

  • write_accelerator_enabled (pulumi.Input[bool]) - Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.VirtualMachineScaleSetExtension(resource_name, opts=None, auto_upgrade_minor_version=None, force_update_tag=None, name=None, protected_settings=None, provision_after_extensions=None, publisher=None, settings=None, type=None, type_handler_version=None, virtual_machine_scale_set_id=None, __props__=None, __name__=None, __opts__=None)

Manages an Extension for a Virtual Machine Scale Set.

NOTE: This resource is not intended to be used with the compute.ScaleSet resource - instead it’s intended for this to be used with the compute.LinuxVirtualMachineScaleSet and compute.WindowsVirtualMachineScaleSet resources.

import pulumi
import json
import pulumi_azure as azure

example_linux_virtual_machine_scale_set = azure.compute.LinuxVirtualMachineScaleSet("exampleLinuxVirtualMachineScaleSet")
#...
example_virtual_machine_scale_set_extension = azure.compute.VirtualMachineScaleSetExtension("exampleVirtualMachineScaleSetExtension",
    virtual_machine_scale_set_id=example_linux_virtual_machine_scale_set.id,
    publisher="Microsoft.Azure.Extensions",
    type="CustomScript",
    type_handler_version="2.0",
    settings=json.dumps({
        "commandToExecute": "echo $HOSTNAME",
    }))
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • auto_upgrade_minor_version (pulumi.Input[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.

  • force_update_tag (pulumi.Input[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.

  • name (pulumi.Input[str]) – The name for the Virtual Machine Scale Set Extension. Changing this forces a new resource to be created.

  • protected_settings (pulumi.Input[str]) – A JSON String which specifies Sensitive Settings (such as Passwords) for the Extension.

  • provision_after_extensions (pulumi.Input[list]) – An ordered list of Extension names which this should be provisioned after.

  • publisher (pulumi.Input[str]) – Specifies the Publisher of the Extension. Changing this forces a new resource to be created.

  • settings (pulumi.Input[str]) – A JSON String which specifies Settings for the Extension.

  • type (pulumi.Input[str]) – Specifies the Type of the Extension. Changing this forces a new resource to be created.

  • type_handler_version (pulumi.Input[str]) – Specifies the version of the extension to use, available versions can be found using the Azure CLI.

  • virtual_machine_scale_set_id (pulumi.Input[str]) – The ID of the Virtual Machine Scale Set. Changing this forces a new resource to be created.

auto_upgrade_minor_version: pulumi.Output[bool] = None

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.

force_update_tag: pulumi.Output[str] = None

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.

name: pulumi.Output[str] = None

The name for the Virtual Machine Scale Set Extension. Changing this forces a new resource to be created.

protected_settings: pulumi.Output[str] = None

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

provision_after_extensions: pulumi.Output[list] = None

An ordered list of Extension names which this should be provisioned after.

publisher: pulumi.Output[str] = None

Specifies the Publisher of the Extension. Changing this forces a new resource to be created.

settings: pulumi.Output[str] = None

A JSON String which specifies Settings for the Extension.

type: pulumi.Output[str] = None

Specifies the Type of the Extension. Changing this forces a new resource to be created.

type_handler_version: pulumi.Output[str] = None

Specifies the version of the extension to use, available versions can be found using the Azure CLI.

virtual_machine_scale_set_id: pulumi.Output[str] = None

The ID of the Virtual Machine Scale Set. Changing this forces a new resource to be created.

static get(resource_name, id, opts=None, auto_upgrade_minor_version=None, force_update_tag=None, name=None, protected_settings=None, provision_after_extensions=None, publisher=None, settings=None, type=None, type_handler_version=None, virtual_machine_scale_set_id=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • auto_upgrade_minor_version (pulumi.Input[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.

  • force_update_tag (pulumi.Input[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.

  • name (pulumi.Input[str]) – The name for the Virtual Machine Scale Set Extension. Changing this forces a new resource to be created.

  • protected_settings (pulumi.Input[str]) – A JSON String which specifies Sensitive Settings (such as Passwords) for the Extension.

  • provision_after_extensions (pulumi.Input[list]) – An ordered list of Extension names which this should be provisioned after.

  • publisher (pulumi.Input[str]) – Specifies the Publisher of the Extension. Changing this forces a new resource to be created.

  • settings (pulumi.Input[str]) – A JSON String which specifies Settings for the Extension.

  • type (pulumi.Input[str]) – Specifies the Type of the Extension. Changing this forces a new resource to be created.

  • type_handler_version (pulumi.Input[str]) – Specifies the version of the extension to use, available versions can be found using the Azure CLI.

  • virtual_machine_scale_set_id (pulumi.Input[str]) – The ID of the Virtual Machine Scale Set. Changing this forces a new resource to be created.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.WindowsVirtualMachine(resource_name, opts=None, additional_capabilities=None, additional_unattend_contents=None, admin_password=None, admin_username=None, allow_extension_operations=None, availability_set_id=None, boot_diagnostics=None, computer_name=None, custom_data=None, dedicated_host_id=None, enable_automatic_updates=None, eviction_policy=None, identity=None, license_type=None, location=None, max_bid_price=None, name=None, network_interface_ids=None, os_disk=None, plan=None, priority=None, provision_vm_agent=None, proximity_placement_group_id=None, resource_group_name=None, secrets=None, size=None, source_image_id=None, source_image_reference=None, tags=None, timezone=None, virtual_machine_scale_set_id=None, winrm_listeners=None, zone=None, __props__=None, __name__=None, __opts__=None)

Manages a Windows Virtual Machine.

Note This provider will automatically remove the OS Disk by default - this behaviour can be configured using the features configuration within the Provider configuration block.

Note This resource does not support Unmanaged Disks. If you need to use Unmanaged Disks you can continue to use the compute.VirtualMachine resource instead.

Note This resource does not support attaching existing OS Disks. You can instead capture an image of the OS Disk or continue to use the compute.VirtualMachine resource instead.

In this release there’s a known issue where the public_ip_address and public_ip_addresses fields may not be fully populated for Dynamic Public IP’s.

import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West Europe")
example_virtual_network = azure.network.VirtualNetwork("exampleVirtualNetwork",
    address_spaces=["10.0.0.0/16"],
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name)
example_subnet = azure.network.Subnet("exampleSubnet",
    resource_group_name=example_resource_group.name,
    virtual_network_name=example_virtual_network.name,
    address_prefix="10.0.2.0/24")
example_network_interface = azure.network.NetworkInterface("exampleNetworkInterface",
    location=example_resource_group.location,
    resource_group_name=example_resource_group.name,
    ip_configuration=[{
        "name": "internal",
        "subnet_id": example_subnet.id,
        "privateIpAddressAllocation": "Dynamic",
    }])
example_windows_virtual_machine = azure.compute.WindowsVirtualMachine("exampleWindowsVirtualMachine",
    resource_group_name=example_resource_group.name,
    location=example_resource_group.location,
    size="Standard_F2",
    admin_username="adminuser",
    admin_password="P@$$w0rd1234!",
    network_interface_ids=[example_network_interface.id],
    os_disk={
        "caching": "ReadWrite",
        "storage_account_type": "Standard_LRS",
    },
    source_image_reference={
        "publisher": "MicrosoftWindowsServer",
        "offer": "WindowsServer",
        "sku": "2016-Datacenter",
        "version": "latest",
    })
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • additional_capabilities (pulumi.Input[dict]) – A additional_capabilities block as defined below.

  • additional_unattend_contents (pulumi.Input[list]) – One or more additional_unattend_content blocks as defined below. Changing this forces a new resource to be created.

  • admin_password (pulumi.Input[str]) – The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

  • admin_username (pulumi.Input[str]) – The username of the local administrator used for the Virtual Machine. Changing this forces a new resource to be created.

  • allow_extension_operations (pulumi.Input[bool]) – Should Extension Operations be allowed on this Virtual Machine? Changing this forces a new resource to be created.

  • availability_set_id (pulumi.Input[str]) – Specifies the ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.

  • boot_diagnostics (pulumi.Input[dict]) – A boot_diagnostics block as defined below.

  • computer_name (pulumi.Input[str]) – Specifies the Hostname which should be used for this Virtual Machine. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name, then you must specify computer_name. Changing this forces a new resource to be created.

  • custom_data (pulumi.Input[str]) – The Base64-Encoded Custom Data which should be used for this Virtual Machine. Changing this forces a new resource to be created.

  • dedicated_host_id (pulumi.Input[str]) – The ID of a Dedicated Host where this machine should be run on. Changing this forces a new resource to be created.

  • enable_automatic_updates (pulumi.Input[bool]) – Specifies if Automatic Updates are Enabled for the Windows Virtual Machine. Changing this forces a new resource to be created.

  • eviction_policy (pulumi.Input[str]) – Specifies what should happen when the Virtual Machine is evicted for price reasons when using a Spot instance. At this time the only supported value is Deallocate. Changing this forces a new resource to be created.

  • identity (pulumi.Input[dict]) – An identity block as defined below.

  • license_type (pulumi.Input[str]) – Specifies the type of on-premise license (also known as Azure Hybrid Use Benefit) which should be used for this Virtual Machine. Possible values are None, Windows_Client and Windows_Server. Changing this forces a new resource to be created.

  • location (pulumi.Input[str]) – The Azure location where the Windows Virtual Machine should exist. Changing this forces a new resource to be created.

  • max_bid_price (pulumi.Input[float]) – The maximum price you’re willing to pay for this Virtual Machine, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machine will be evicted using the eviction_policy. Defaults to -1, which means that the Virtual Machine should not be evicted for price reasons.

  • name (pulumi.Input[str]) – The name of the Windows Virtual Machine. Changing this forces a new resource to be created.

  • network_interface_ids (pulumi.Input[list]) – . A list of Network Interface ID’s which should be attached to this Virtual Machine. The first Network Interface ID in this list will be the Primary Network Interface on the Virtual Machine.

  • os_disk (pulumi.Input[dict]) – A os_disk block as defined below.

  • plan (pulumi.Input[dict]) – A plan block as defined below. Changing this forces a new resource to be created.

  • priority (pulumi.Input[str]) – Specifies the priority of this Virtual Machine. Possible values are Regular and Spot. Defaults to Regular. Changing this forces a new resource to be created.

  • provision_vm_agent (pulumi.Input[bool]) – Should the Azure VM Agent be provisioned on this Virtual Machine? Defaults to true. Changing this forces a new resource to be created.

  • proximity_placement_group_id (pulumi.Input[str]) – The ID of the Proximity Placement Group which the Virtual Machine should be assigned to. Changing this forces a new resource to be created.

  • resource_group_name (pulumi.Input[str]) – The name of the Resource Group in which the Windows Virtual Machine should be exist. Changing this forces a new resource to be created.

  • secrets (pulumi.Input[list]) – One or more secret blocks as defined below.

  • size (pulumi.Input[str]) – The SKU which should be used for this Virtual Machine, such as Standard_F2.

  • source_image_id (pulumi.Input[str]) – The ID of the Image which this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • source_image_reference (pulumi.Input[dict]) – A source_image_reference block as defined below. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags which should be assigned to this Virtual Machine.

  • timezone (pulumi.Input[str]) –

    Specifies the Time Zone which should be used by the Virtual Machine, the possible values are defined here.

  • virtual_machine_scale_set_id (pulumi.Input[str]) – Specifies the Orchestrated Virtual Machine Scale Set that this Virtual Machine should be created within. Changing this forces a new resource to be created.

  • winrm_listeners (pulumi.Input[list]) – One or more winrm_listener blocks as defined below.

  • zone (pulumi.Input[str]) – The Zone in which this Virtual Machine should be created. Changing this forces a new resource to be created.

The additional_capabilities object supports the following:

  • ultraSsdEnabled (pulumi.Input[bool]) - Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine? Defaults to false. Changing this forces a new resource to be created.

The additional_unattend_contents object supports the following:

  • content (pulumi.Input[str]) - The XML formatted content that is added to the unattend.xml file for the specified path and component. Changing this forces a new resource to be created.

  • setting (pulumi.Input[str]) - The name of the setting to which the content applies. Possible values are AutoLogon and FirstLogonCommands. Changing this forces a new resource to be created.

The boot_diagnostics object supports the following:

  • storageAccountUri (pulumi.Input[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.

The identity object supports the following:

  • identityIds (pulumi.Input[list]) - A list of User Managed Identity ID’s which should be assigned to the Windows Virtual Machine.

  • principal_id (pulumi.Input[str]) - The ID of the System Managed Service Principal.

  • tenant_id (pulumi.Input[str]) - The ID of the Tenant the System Managed Service Principal is assigned in.

  • type (pulumi.Input[str]) - The type of Managed Identity which should be assigned to the Windows Virtual Machine. Possible values are SystemAssigned, UserAssigned and SystemAssigned, UserAssigned.

The os_disk object supports the following:

  • caching (pulumi.Input[str]) - The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.

  • diffDiskSettings (pulumi.Input[dict]) - A diff_disk_settings block as defined above.

    • option (pulumi.Input[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.

  • disk_encryption_set_id (pulumi.Input[str]) - The ID of the Disk Encryption Set which should be used to Encrypt this OS Disk.

  • disk_size_gb (pulumi.Input[float]) - The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine is sourced from.

  • name (pulumi.Input[str]) - The name which should be used for the Internal OS Disk. Changing this forces a new resource to be created.

  • storage_account_type (pulumi.Input[str]) - The Type of Storage Account which should back this the Internal OS Disk. Possible values are Standard_LRS, StandardSSD_LRS and Premium_LRS. Changing this forces a new resource to be created.

  • write_accelerator_enabled (pulumi.Input[bool]) - Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

The plan object supports the following:

  • name (pulumi.Input[str]) - Specifies the Name of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • product (pulumi.Input[str]) - Specifies the Product of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • publisher (pulumi.Input[str]) - Specifies the Publisher of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

The secrets object supports the following:

  • certificates (pulumi.Input[list]) - One or more certificate blocks as defined above.

    • store (pulumi.Input[str]) - The certificate store on the Virtual Machine where the certificate should be added.

    • url (pulumi.Input[str]) - The Secret URL of a Key Vault Certificate.

  • key_vault_id (pulumi.Input[str]) - The ID of the Key Vault from which all Secrets should be sourced.

The source_image_reference object supports the following:

  • offer (pulumi.Input[str]) - (Optional) Specifies the offer of the image used to create the virtual machines.

  • publisher (pulumi.Input[str]) - Specifies the Publisher of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • sku (pulumi.Input[str]) - (Optional) Specifies the SKU of the image used to create the virtual machines.

  • version (pulumi.Input[str]) - (Optional) Specifies the version of the image used to create the virtual machines.

The winrm_listeners object supports the following:

  • certificateUrl (pulumi.Input[str]) - The Secret URL of a Key Vault Certificate, which must be specified when protocol is set to Https.

  • protocol (pulumi.Input[str])

additional_capabilities: pulumi.Output[dict] = None

A additional_capabilities block as defined below.

  • ultraSsdEnabled (bool) - Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine? Defaults to false. Changing this forces a new resource to be created.

additional_unattend_contents: pulumi.Output[list] = None

One or more additional_unattend_content blocks as defined below. Changing this forces a new resource to be created.

  • content (str) - The XML formatted content that is added to the unattend.xml file for the specified path and component. Changing this forces a new resource to be created.

  • setting (str) - The name of the setting to which the content applies. Possible values are AutoLogon and FirstLogonCommands. Changing this forces a new resource to be created.

admin_password: pulumi.Output[str] = None

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

admin_username: pulumi.Output[str] = None

The username of the local administrator used for the Virtual Machine. Changing this forces a new resource to be created.

allow_extension_operations: pulumi.Output[bool] = None

Should Extension Operations be allowed on this Virtual Machine? Changing this forces a new resource to be created.

availability_set_id: pulumi.Output[str] = None

Specifies the ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.

boot_diagnostics: pulumi.Output[dict] = None

A boot_diagnostics block as defined below.

  • storageAccountUri (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.

computer_name: pulumi.Output[str] = None

Specifies the Hostname which should be used for this Virtual Machine. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name, then you must specify computer_name. Changing this forces a new resource to be created.

custom_data: pulumi.Output[str] = None

The Base64-Encoded Custom Data which should be used for this Virtual Machine. Changing this forces a new resource to be created.

dedicated_host_id: pulumi.Output[str] = None

The ID of a Dedicated Host where this machine should be run on. Changing this forces a new resource to be created.

enable_automatic_updates: pulumi.Output[bool] = None

Specifies if Automatic Updates are Enabled for the Windows Virtual Machine. Changing this forces a new resource to be created.

eviction_policy: pulumi.Output[str] = None

Specifies what should happen when the Virtual Machine is evicted for price reasons when using a Spot instance. At this time the only supported value is Deallocate. Changing this forces a new resource to be created.

identity: pulumi.Output[dict] = None

An identity block as defined below.

  • identityIds (list) - A list of User Managed Identity ID’s which should be assigned to the Windows Virtual Machine.

  • principal_id (str) - The ID of the System Managed Service Principal.

  • tenant_id (str) - The ID of the Tenant the System Managed Service Principal is assigned in.

  • type (str) - The type of Managed Identity which should be assigned to the Windows Virtual Machine. Possible values are SystemAssigned, UserAssigned and SystemAssigned, UserAssigned.

license_type: pulumi.Output[str] = None

Specifies the type of on-premise license (also known as Azure Hybrid Use Benefit) which should be used for this Virtual Machine. Possible values are None, Windows_Client and Windows_Server. Changing this forces a new resource to be created.

location: pulumi.Output[str] = None

The Azure location where the Windows Virtual Machine should exist. Changing this forces a new resource to be created.

max_bid_price: pulumi.Output[float] = None

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

name: pulumi.Output[str] = None

The name of the Windows Virtual Machine. Changing this forces a new resource to be created.

network_interface_ids: pulumi.Output[list] = None

. A list of Network Interface ID’s which should be attached to this Virtual Machine. The first Network Interface ID in this list will be the Primary Network Interface on the Virtual Machine.

os_disk: pulumi.Output[dict] = None

A os_disk block as defined below.

  • caching (str) - The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.

  • diffDiskSettings (dict) - A diff_disk_settings block as defined above.

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

  • disk_encryption_set_id (str) - The ID of the Disk Encryption Set which should be used to Encrypt this OS Disk.

  • disk_size_gb (float) - The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine is sourced from.

  • name (str) - The name which should be used for the Internal OS Disk. Changing this forces a new resource to be created.

  • storage_account_type (str) - The Type of Storage Account which should back this the Internal OS Disk. Possible values are Standard_LRS, StandardSSD_LRS and Premium_LRS. Changing this forces a new resource to be created.

  • write_accelerator_enabled (bool) - Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

plan: pulumi.Output[dict] = None

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

  • name (str) - Specifies the Name of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • product (str) - Specifies the Product of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • publisher (str) - Specifies the Publisher of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

priority: pulumi.Output[str] = None

Specifies the priority of this Virtual Machine. Possible values are Regular and Spot. Defaults to Regular. Changing this forces a new resource to be created.

private_ip_address: pulumi.Output[str] = None

The Primary Private IP Address assigned to this Virtual Machine.

private_ip_addresses: pulumi.Output[list] = None

A list of Private IP Addresses assigned to this Virtual Machine.

provision_vm_agent: pulumi.Output[bool] = None

Should the Azure VM Agent be provisioned on this Virtual Machine? Defaults to true. Changing this forces a new resource to be created.

proximity_placement_group_id: pulumi.Output[str] = None

The ID of the Proximity Placement Group which the Virtual Machine should be assigned to. Changing this forces a new resource to be created.

public_ip_address: pulumi.Output[str] = None

The Primary Public IP Address assigned to this Virtual Machine.

public_ip_addresses: pulumi.Output[list] = None

A list of the Public IP Addresses assigned to this Virtual Machine.

resource_group_name: pulumi.Output[str] = None

The name of the Resource Group in which the Windows Virtual Machine should be exist. Changing this forces a new resource to be created.

secrets: pulumi.Output[list] = None

One or more secret blocks as defined below.

  • certificates (list) - One or more certificate blocks as defined above.

    • store (str) - The certificate store on the Virtual Machine where the certificate should be added.

    • url (str) - The Secret URL of a Key Vault Certificate.

  • key_vault_id (str) - The ID of the Key Vault from which all Secrets should be sourced.

size: pulumi.Output[str] = None

The SKU which should be used for this Virtual Machine, such as Standard_F2.

source_image_id: pulumi.Output[str] = None

The ID of the Image which this Virtual Machine should be created from. Changing this forces a new resource to be created.

source_image_reference: pulumi.Output[dict] = None

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

  • offer (str) - (Optional) Specifies the offer of the image used to create the virtual machines.

  • publisher (str) - Specifies the Publisher of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • sku (str) - (Optional) Specifies the SKU of the image used to create the virtual machines.

  • version (str) - (Optional) Specifies the version of the image used to create the virtual machines.

tags: pulumi.Output[dict] = None

A mapping of tags which should be assigned to this Virtual Machine.

timezone: pulumi.Output[str] = None

Specifies the Time Zone which should be used by the Virtual Machine, the possible values are defined here.

virtual_machine_id: pulumi.Output[str] = None

A 128-bit identifier which uniquely identifies this Virtual Machine.

virtual_machine_scale_set_id: pulumi.Output[str] = None

Specifies the Orchestrated Virtual Machine Scale Set that this Virtual Machine should be created within. Changing this forces a new resource to be created.

winrm_listeners: pulumi.Output[list] = None

One or more winrm_listener blocks as defined below.

  • certificateUrl (str) - The Secret URL of a Key Vault Certificate, which must be specified when protocol is set to Https.

  • protocol (str)

zone: pulumi.Output[str] = None

The Zone in which this Virtual Machine should be created. Changing this forces a new resource to be created.

static get(resource_name, id, opts=None, additional_capabilities=None, additional_unattend_contents=None, admin_password=None, admin_username=None, allow_extension_operations=None, availability_set_id=None, boot_diagnostics=None, computer_name=None, custom_data=None, dedicated_host_id=None, enable_automatic_updates=None, eviction_policy=None, identity=None, license_type=None, location=None, max_bid_price=None, name=None, network_interface_ids=None, os_disk=None, plan=None, priority=None, private_ip_address=None, private_ip_addresses=None, provision_vm_agent=None, proximity_placement_group_id=None, public_ip_address=None, public_ip_addresses=None, resource_group_name=None, secrets=None, size=None, source_image_id=None, source_image_reference=None, tags=None, timezone=None, virtual_machine_id=None, virtual_machine_scale_set_id=None, winrm_listeners=None, zone=None)

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

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • additional_capabilities (pulumi.Input[dict]) – A additional_capabilities block as defined below.

  • additional_unattend_contents (pulumi.Input[list]) – One or more additional_unattend_content blocks as defined below. Changing this forces a new resource to be created.

  • admin_password (pulumi.Input[str]) – The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

  • admin_username (pulumi.Input[str]) – The username of the local administrator used for the Virtual Machine. Changing this forces a new resource to be created.

  • allow_extension_operations (pulumi.Input[bool]) – Should Extension Operations be allowed on this Virtual Machine? Changing this forces a new resource to be created.

  • availability_set_id (pulumi.Input[str]) – Specifies the ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.

  • boot_diagnostics (pulumi.Input[dict]) – A boot_diagnostics block as defined below.

  • computer_name (pulumi.Input[str]) – Specifies the Hostname which should be used for this Virtual Machine. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name, then you must specify computer_name. Changing this forces a new resource to be created.

  • custom_data (pulumi.Input[str]) – The Base64-Encoded Custom Data which should be used for this Virtual Machine. Changing this forces a new resource to be created.

  • dedicated_host_id (pulumi.Input[str]) – The ID of a Dedicated Host where this machine should be run on. Changing this forces a new resource to be created.

  • enable_automatic_updates (pulumi.Input[bool]) – Specifies if Automatic Updates are Enabled for the Windows Virtual Machine. Changing this forces a new resource to be created.

  • eviction_policy (pulumi.Input[str]) – Specifies what should happen when the Virtual Machine is evicted for price reasons when using a Spot instance. At this time the only supported value is Deallocate. Changing this forces a new resource to be created.

  • identity (pulumi.Input[dict]) – An identity block as defined below.

  • license_type (pulumi.Input[str]) –

    Specifies the type of on-premise license (also known as Azure Hybrid Use Benefit) which should be used for this Virtual Machine. Possible values are None, Windows_Client and Windows_Server. Changing this forces a new resource to be created.

  • location (pulumi.Input[str]) – The Azure location where the Windows Virtual Machine should exist. Changing this forces a new resource to be created.

  • max_bid_price (pulumi.Input[float]) – The maximum price you’re willing to pay for this Virtual Machine, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machine will be evicted using the eviction_policy. Defaults to -1, which means that the Virtual Machine should not be evicted for price reasons.

  • name (pulumi.Input[str]) – The name of the Windows Virtual Machine. Changing this forces a new resource to be created.

  • network_interface_ids (pulumi.Input[list]) – . A list of Network Interface ID’s which should be attached to this Virtual Machine. The first Network Interface ID in this list will be the Primary Network Interface on the Virtual Machine.

  • os_disk (pulumi.Input[dict]) – A os_disk block as defined below.

  • plan (pulumi.Input[dict]) – A plan block as defined below. Changing this forces a new resource to be created.

  • priority (pulumi.Input[str]) – Specifies the priority of this Virtual Machine. Possible values are Regular and Spot. Defaults to Regular. Changing this forces a new resource to be created.

  • private_ip_address (pulumi.Input[str]) – The Primary Private IP Address assigned to this Virtual Machine.

  • private_ip_addresses (pulumi.Input[list]) – A list of Private IP Addresses assigned to this Virtual Machine.

  • provision_vm_agent (pulumi.Input[bool]) – Should the Azure VM Agent be provisioned on this Virtual Machine? Defaults to true. Changing this forces a new resource to be created.

  • proximity_placement_group_id (pulumi.Input[str]) – The ID of the Proximity Placement Group which the Virtual Machine should be assigned to. Changing this forces a new resource to be created.

  • public_ip_address (pulumi.Input[str]) – The Primary Public IP Address assigned to this Virtual Machine.

  • public_ip_addresses (pulumi.Input[list]) – A list of the Public IP Addresses assigned to this Virtual Machine.

  • resource_group_name (pulumi.Input[str]) – The name of the Resource Group in which the Windows Virtual Machine should be exist. Changing this forces a new resource to be created.

  • secrets (pulumi.Input[list]) – One or more secret blocks as defined below.

  • size (pulumi.Input[str]) – The SKU which should be used for this Virtual Machine, such as Standard_F2.

  • source_image_id (pulumi.Input[str]) – The ID of the Image which this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • source_image_reference (pulumi.Input[dict]) – A source_image_reference block as defined below. Changing this forces a new resource to be created.

  • tags (pulumi.Input[dict]) – A mapping of tags which should be assigned to this Virtual Machine.

  • timezone (pulumi.Input[str]) –

    Specifies the Time Zone which should be used by the Virtual Machine, the possible values are defined here.

  • virtual_machine_id (pulumi.Input[str]) – A 128-bit identifier which uniquely identifies this Virtual Machine.

  • virtual_machine_scale_set_id (pulumi.Input[str]) – Specifies the Orchestrated Virtual Machine Scale Set that this Virtual Machine should be created within. Changing this forces a new resource to be created.

  • winrm_listeners (pulumi.Input[list]) – One or more winrm_listener blocks as defined below.

  • zone (pulumi.Input[str]) – The Zone in which this Virtual Machine should be created. Changing this forces a new resource to be created.

The additional_capabilities object supports the following:

  • ultraSsdEnabled (pulumi.Input[bool]) - Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine? Defaults to false. Changing this forces a new resource to be created.

The additional_unattend_contents object supports the following:

  • content (pulumi.Input[str]) - The XML formatted content that is added to the unattend.xml file for the specified path and component. Changing this forces a new resource to be created.

  • setting (pulumi.Input[str]) - The name of the setting to which the content applies. Possible values are AutoLogon and FirstLogonCommands. Changing this forces a new resource to be created.

The boot_diagnostics object supports the following:

  • storageAccountUri (pulumi.Input[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.

The identity object supports the following:

  • identityIds (pulumi.Input[list]) - A list of User Managed Identity ID’s which should be assigned to the Windows Virtual Machine.

  • principal_id (pulumi.Input[str]) - The ID of the System Managed Service Principal.

  • tenant_id (pulumi.Input[str]) - The ID of the Tenant the System Managed Service Principal is assigned in.

  • type (pulumi.Input[str]) - The type of Managed Identity which should be assigned to the Windows Virtual Machine. Possible values are SystemAssigned, UserAssigned and SystemAssigned, UserAssigned.

The os_disk object supports the following:

  • caching (pulumi.Input[str]) - The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.

  • diffDiskSettings (pulumi.Input[dict]) - A diff_disk_settings block as defined above.

    • option (pulumi.Input[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.

  • disk_encryption_set_id (pulumi.Input[str]) - The ID of the Disk Encryption Set which should be used to Encrypt this OS Disk.

  • disk_size_gb (pulumi.Input[float]) - The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine is sourced from.

  • name (pulumi.Input[str]) - The name which should be used for the Internal OS Disk. Changing this forces a new resource to be created.

  • storage_account_type (pulumi.Input[str]) - The Type of Storage Account which should back this the Internal OS Disk. Possible values are Standard_LRS, StandardSSD_LRS and Premium_LRS. Changing this forces a new resource to be created.

  • write_accelerator_enabled (pulumi.Input[bool]) - Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

The plan object supports the following:

  • name (pulumi.Input[str]) - Specifies the Name of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • product (pulumi.Input[str]) - Specifies the Product of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • publisher (pulumi.Input[str]) - Specifies the Publisher of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

The secrets object supports the following:

  • certificates (pulumi.Input[list]) - One or more certificate blocks as defined above.

    • store (pulumi.Input[str]) - The certificate store on the Virtual Machine where the certificate should be added.

    • url (pulumi.Input[str]) - The Secret URL of a Key Vault Certificate.

  • key_vault_id (pulumi.Input[str]) - The ID of the Key Vault from which all Secrets should be sourced.

The source_image_reference object supports the following:

  • offer (pulumi.Input[str]) - (Optional) Specifies the offer of the image used to create the virtual machines.

  • publisher (pulumi.Input[str]) - Specifies the Publisher of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.

  • sku (pulumi.Input[str]) - (Optional) Specifies the SKU of the image used to create the virtual machines.

  • version (pulumi.Input[str]) - (Optional) Specifies the version of the image used to create the virtual machines.

The winrm_listeners object supports the following:

  • certificateUrl (pulumi.Input[str]) - The Secret URL of a Key Vault Certificate, which must be specified when protocol is set to Https.

  • protocol (pulumi.Input[str])

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

class pulumi_azure.compute.WindowsVirtualMachineScaleSet(resource_name, opts=None, additional_capabilities=None, additional_unattend_contents=None, admin_password=None, admin_username=None, automatic_instance_repair=None, automatic_os_upgrade_policy=None, boot_diagnostics=None, computer_name_prefix=None, custom_data=None, data_disks=None, do_not_run_extensions_on_overprovisioned_machines=None, enable_automatic_updates=None, eviction_policy=None, health_probe_id=None, identity=None, instances=None, license_type=None, location=None, max_bid_price=None, name=None, network_interfaces=None, os_disk=None, overprovision=None, plan=None, priority=None, provision_vm_agent=None, proximity_placement_group_id=None, resource_group_name=None, rolling_upgrade_policy=None, scale_in_policy=None, secrets=None, single_placement_group=None, sku=None, source_image_id=None, source_image_reference=None, tags=None, terminate_notification=None, timezone=None, upgrade_mode=None, winrm_listeners=None, zone_balance=None, zones=None, __props__=None, __name__=None, __opts__=None)

Manages a Windows Virtual Machine Scale Set.

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 configuration within the Provider configuration block.

Note: This resource does not support Unmanaged Disks. If you need to use Unmanaged Disks you can continue to use the compute.ScaleSet resource instead

import pulumi
import pulumi_azure as azure

example_resource_group = azure.core.ResourceGroup("exampleResourceGroup", location="West Europe")
example_virtual_network = azure.network.VirtualNetwork("exampleVirtualNetwork",
    resource_group_name=example_resource_group.name,
    location=example_resource_group.location,
    address_spaces=["10.0.0.0/16"])
internal = azure.network.Subnet("internal",
    resource_group_name=example_resource_group.name,
    virtual_network_name=example_virtual_network.name,
    address_prefix="10.0.2.0/24")
example_windows_virtual_machine_scale_set = azure.compute.WindowsVirtualMachineScaleSet("exampleWindowsVirtualMachineScaleSet",
    resource_group_name=example_resource_group.name,
    location=example_resource_group.location,
    sku="Standard_F2",
    instances=1,
    admin_password="P@55w0rd1234!",
    admin_username="adminuser",
    source_image_reference={
        "publisher": "MicrosoftWindowsServer",
        "offer": "WindowsServer",
        "sku": "2016-Datacenter-Server-Core",
        "version": "latest",
    },
    os_disk={
        "storage_account_type": "Standard_LRS",
        "caching": "ReadWrite",
    },
    network_interface=[{
        "name": "example",
        "primary": True,
        "ip_configuration": [{
            "name": "internal",
            "primary": True,
            "subnet_id": internal.id,
        }],
    }])
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • additional_capabilities (pulumi.Input[dict]) – A additional_capabilities block as defined below.

  • additional_unattend_contents (pulumi.Input[list]) – One or more additional_unattend_content blocks as defined below.

  • admin_password (pulumi.Input[str]) – The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

  • admin_username (pulumi.Input[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 (pulumi.Input[dict]) –

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

  • automatic_os_upgrade_policy (pulumi.Input[dict]) – A automatic_os_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic.

  • boot_diagnostics (pulumi.Input[dict]) – A boot_diagnostics block as defined below.

  • computer_name_prefix (pulumi.Input[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.

  • custom_data (pulumi.Input[str]) – The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.

  • data_disks (pulumi.Input[list]) – One or more data_disk blocks as defined below.

  • do_not_run_extensions_on_overprovisioned_machines (pulumi.Input[bool]) – Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.

  • enable_automatic_updates (pulumi.Input[bool]) – Are automatic updates enabled for this Virtual Machine? Defaults to true.

  • eviction_policy (pulumi.Input[str]) – The Policy which should be used Virtual Machines are Evicted from the Scale Set. Changing this forces a new resource to be created.

  • health_probe_id (pulumi.Input[str]) – The ID of a Load Balancer Probe which should be used to determine the health of an instance. Changing this forces a new resource to be created. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.

  • identity (pulumi.Input[dict]) – A identity block as defined below.

  • instances (pulumi.Input[float]) – The number of Virtual Machines in the Scale Set.

  • license_type (pulumi.Input[str]) –

    Specifies the type of on-premise license (also known as Azure Hybrid Use Benefit) which should be used for this Virtual Machine Scale Set. Possible values are None, Windows_Client and Windows_Server. Changing this forces a new resource to be created.

  • location (pulumi.Input[str]) – The Azure location where the Windows Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.

  • max_bid_price (pulumi.Input[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 the Scale Set should not be evicted for price reasons.

  • name (pulumi.Input[str]) – The name of the Windows Virtual Machine Scale Set. Changing this forces a new resource to be created.

  • network_interfaces (pulumi.Input[list]) – One or more network_interface blocks as defined below.

  • os_disk (pulumi.Input[dict]) – An os_disk block as defined below.

  • overprovision (pulumi.Input[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 false.

  • priority (pulumi.Input[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.

  • provision_vm_agent (pulumi.Input[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 (pulumi.Input[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 (pulumi.Input[str]) – The name of the Resource Group in which the Windows Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.

  • rolling_upgrade_policy (pulumi.Input[dict]) – 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.

  • scale_in_policy (pulumi.Input[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.

  • secrets (pulumi.Input[list]) – One or more secret blocks as defined below.

  • single_placement_group (pulumi.Input[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 (pulumi.Input[str]) – The Virtual Machine SKU for the Scale Set, such as Standard_F2.

  • source_image_id (pulumi.Input[str]) – The ID of an Image which each Virtual Machine in this Scale Set should be based on.

  • source_image_reference (pulumi.Input[dict]) – A source_image_reference block as defined below.

  • tags (pulumi.Input[dict]) – A mapping of tags which should be assigned to this Virtual Machine Scale Set.

  • terminate_notification (pulumi.Input[dict]) – A terminate_notification block as defined below.

  • timezone (pulumi.Input[str]) –

    Specifies the time zone of the virtual machine, the possible values are defined here.

  • upgrade_mode (pulumi.Input[str]) – Specifies how Upgrades (e.g. changing the Image/SKU) should be performed to Virtual Machine Instances. Possible values are Automatic, Manual and Rolling. Defaults to Manual.

  • winrm_listeners (pulumi.Input[list]) – One or more winrm_listener blocks as defined below.

  • zone_balance (pulumi.Input[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.

  • zones (pulumi.Input[list]) – A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.

The additional_capabilities object supports the following:

  • ultraSsdEnabled (pulumi.Input[bool]) - Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine Scale Set? Defaults to false. Changing this forces a new resource to be created.

The additional_unattend_contents object supports the following:

  • content (pulumi.Input[str]) - The XML formatted content that is added to the unattend.xml file for the specified path and component. Changing this forces a new resource to be created.

  • setting (pulumi.Input[str]) - The name of the setting to which the content applies. Possible values are AutoLogon and FirstLogonCommands. Changing this forces a new resource to be created.

The automatic_instance_repair object supports the following:

  • enabled (pulumi.Input[bool]) - Should the automatic instance repair be enabled on this Virtual Machine Scale Set?

  • gracePeriod (pulumi.Input[str]) - Amount of time (in minutes, between 30 and 90, defaults to 30 minutes) 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.

The automatic_os_upgrade_policy object supports the following:

  • disableAutomaticRollback (pulumi.Input[bool]) - Should automatic rollbacks be disabled? Changing this forces a new resource to be created.

  • enableAutomaticOsUpgrade (pulumi.Input[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? Changing this forces a new resource to be created.

The boot_diagnostics object supports the following:

  • storageAccountUri (pulumi.Input[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.

The data_disks object supports the following:

  • caching (pulumi.Input[str]) - The type of Caching which should be used for this Data Disk. Possible values are None, ReadOnly and ReadWrite.

  • create_option (pulumi.Input[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 (pulumi.Input[str]) - The ID of the Disk Encryption Set which should be used to encrypt this Data Disk.

  • disk_size_gb (pulumi.Input[float]) - The size of the Data Disk which should be created.

  • lun (pulumi.Input[float]) - The Logical Unit Number of the Data Disk, which must be unique within the Virtual Machine.

  • storage_account_type (pulumi.Input[str]) - The Type of Storage Account which should back this Data Disk. Possible values include Standard_LRS, StandardSSD_LRS, Premium_LRS and UltraSSD_LRS.

  • write_accelerator_enabled (pulumi.Input[bool]) - Should Write Accelerator be enabled for this Data Disk? Defaults to false.

The identity object supports the following:

  • identityIds (pulumi.Input[list]) - A list of User Managed Identity ID’s which should be assigned to the Windows Virtual Machine Scale Set.

  • principal_id (pulumi.Input[str]) - The ID of the System Managed Service Principal.

  • type (pulumi.Input[str]) - The type of Managed Identity which should be assigned to the Windows Virtual Machine Scale Set. Possible values are SystemAssigned, UserAssigned and SystemAssigned, UserAssigned.

The network_interfaces object supports the following:

  • dns_servers (pulumi.Input[list]) - A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.

  • enable_accelerated_networking (pulumi.Input[bool]) - Does this Network Interface support Accelerated Networking? Defaults to false.

  • enable_ip_forwarding (pulumi.Input[bool]) - Does this Network Interface support IP Forwarding? Defaults to false.

  • ip_configurations (pulumi.Input[list]) - One or more ip_configuration blocks as defined above.

    • applicationGatewayBackendAddressPoolIds (pulumi.Input[list]) - A list of Backend Address Pools ID’s from a Application Gateway which this Virtual Machine Scale Set should be connected to.

    • applicationSecurityGroupIds (pulumi.Input[list]) - A list of Application Security Group ID’s which this Virtual Machine Scale Set should be connected to.

    • loadBalancerBackendAddressPoolIds (pulumi.Input[list]) - A list of Backend Address Pools ID’s from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    • loadBalancerInboundNatRulesIds (pulumi.Input[list]) - A list of NAT Rule ID’s from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    • name (pulumi.Input[str]) - The Name which should be used for this IP Configuration.

    • primary (pulumi.Input[bool]) - Is this the Primary IP Configuration for this Network Interface? Defaults to false.

    • public_ip_addresses (pulumi.Input[list]) - A public_ip_address block as defined below.

      • domain_name_label (pulumi.Input[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 (pulumi.Input[float]) - The Idle Timeout in Minutes for the Public IP Address. Possible values are in the range 4 to 32.

      • ipTags (pulumi.Input[list]) - One or more ip_tag blocks as defined above.

        • tag (pulumi.Input[str]) - The IP Tag associated with the Public IP, such as SQL or Storage.

        • type (pulumi.Input[str]) - The Type of IP Tag, such as FirstPartyUsage.

      • name (pulumi.Input[str]) - The Name of the Public IP Address Configuration.

      • public_ip_prefix_id (pulumi.Input[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.

    • subnet_id (pulumi.Input[str]) - The ID of the Subnet which this IP Configuration should be connected to.

    • version (pulumi.Input[str]) - The Internet Protocol Version which should be used for this IP Configuration. Possible values are IPv4 and IPv6. Defaults to IPv4.

  • name (pulumi.Input[str]) - The Name which should be used for this Network Interface. Changing this forces a new resource to be created.

  • network_security_group_id (pulumi.Input[str]) - The ID of a Network Security Group which should be assigned to this Network Interface.

  • primary (pulumi.Input[bool]) - Is this the Primary IP Configuration?

The os_disk object supports the following:

  • caching (pulumi.Input[str]) - The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.

  • diffDiskSettings (pulumi.Input[dict]) - A diff_disk_settings block as defined above. Changing this forces a new resource to be created.

    • option (pulumi.Input[str])

  • disk_encryption_set_id (pulumi.Input[str]) - The ID of the Disk Encryption Set which should be used to encrypt this OS Disk.

  • disk_size_gb (pulumi.Input[float]) - 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.

  • storage_account_type (pulumi.Input[str]) - The Type of Storage Account which should back this the Internal OS Disk. Possible values include Standard_LRS, StandardSSD_LRS and Premium_LRS.

  • write_accelerator_enabled (pulumi.Input[bool]) - Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

The plan object supports the following:

  • name (pulumi.Input[str]) - The name of the Windows Virtual Machine Scale Set. Changing this forces a new resource to be created.

  • product (pulumi.Input[str])

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image used to create the virtual machines.

The rolling_upgrade_policy object supports the following:

  • maxBatchInstancePercent (pulumi.Input[float]) - 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. Changing this forces a new resource to be created.

  • maxUnhealthyInstancePercent (pulumi.Input[float]) - 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. Changing this forces a new resource to be created.

  • maxUnhealthyUpgradedInstancePercent (pulumi.Input[float]) - 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. Changing this forces a new resource to be created.

  • pauseTimeBetweenBatches (pulumi.Input[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. Changing this forces a new resource to be created.

The secrets object supports the following:

  • certificates (pulumi.Input[list]) - One or more certificate blocks as defined above.

    • store (pulumi.Input[str]) - The certificate store on the Virtual Machine where the certificate should be added.

    • url (pulumi.Input[str]) - The Secret URL of a Key Vault Certificate.

  • key_vault_id (pulumi.Input[str]) - The ID of the Key Vault from which all Secrets should be sourced.

The source_image_reference object supports the following:

  • offer (pulumi.Input[str]) - Specifies the offer of the image used to create the virtual machines.

  • publisher (pulumi.Input[str]) - Specifies the publisher of the image used to create the virtual machines.

  • sku (pulumi.Input[str]) - Specifies the SKU of the image used to create the virtual machines.

  • version (pulumi.Input[str]) - Specifies the version of the image used to create the virtual machines.

The terminate_notification object supports the following:

  • enabled (pulumi.Input[bool]) - Should the terminate notification be enabled on this Virtual Machine Scale Set? Defaults to false.

  • timeout (pulumi.Input[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.

The winrm_listeners object supports the following:

  • certificateUrl (pulumi.Input[str]) - The Secret URL of a Key Vault Certificate, which must be specified when protocol is set to Https.

  • protocol (pulumi.Input[str]) - The Protocol of the WinRM Listener. Possible values are Http and Https.

additional_capabilities: pulumi.Output[dict] = None

A additional_capabilities block as defined below.

  • ultraSsdEnabled (bool) - Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine Scale Set? Defaults to false. Changing this forces a new resource to be created.

additional_unattend_contents: pulumi.Output[list] = None

One or more additional_unattend_content blocks as defined below.

  • content (str) - The XML formatted content that is added to the unattend.xml file for the specified path and component. Changing this forces a new resource to be created.

  • setting (str) - The name of the setting to which the content applies. Possible values are AutoLogon and FirstLogonCommands. Changing this forces a new resource to be created.

admin_password: pulumi.Output[str] = None

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

admin_username: pulumi.Output[str] = None

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: pulumi.Output[dict] = None

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

  • enabled (bool) - Should the automatic instance repair be enabled on this Virtual Machine Scale Set?

  • gracePeriod (str) - Amount of time (in minutes, between 30 and 90, defaults to 30 minutes) 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.

automatic_os_upgrade_policy: pulumi.Output[dict] = None

A automatic_os_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic.

  • disableAutomaticRollback (bool) - Should automatic rollbacks be disabled? Changing this forces a new resource to be created.

  • 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? Changing this forces a new resource to be created.

boot_diagnostics: pulumi.Output[dict] = None

A boot_diagnostics block as defined below.

  • storageAccountUri (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.

computer_name_prefix: pulumi.Output[str] = None

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.

custom_data: pulumi.Output[str] = None

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

data_disks: pulumi.Output[list] = None

One or more data_disk blocks as defined below.

  • caching (str) - The type of Caching which should be used for this Data Disk. Possible values are None, ReadOnly and ReadWrite.

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

  • disk_size_gb (float) - The size of the Data Disk which should be created.

  • lun (float) - 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, Premium_LRS and UltraSSD_LRS.

  • write_accelerator_enabled (bool) - Should Write Accelerator be enabled for this Data Disk? Defaults to false.

do_not_run_extensions_on_overprovisioned_machines: pulumi.Output[bool] = None

Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.

enable_automatic_updates: pulumi.Output[bool] = None

Are automatic updates enabled for this Virtual Machine? Defaults to true.

eviction_policy: pulumi.Output[str] = None

The Policy which should be used Virtual Machines are Evicted from the Scale Set. Changing this forces a new resource to be created.

health_probe_id: pulumi.Output[str] = None

The ID of a Load Balancer Probe which should be used to determine the health of an instance. Changing this forces a new resource to be created. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.

identity: pulumi.Output[dict] = None

A identity block as defined below.

  • identityIds (list) - A list of User Managed Identity ID’s which should be assigned to the Windows Virtual Machine Scale Set.

  • principal_id (str) - The ID of the System Managed Service Principal.

  • type (str) - The type of Managed Identity which should be assigned to the Windows Virtual Machine Scale Set. Possible values are SystemAssigned, UserAssigned and SystemAssigned, UserAssigned.

instances: pulumi.Output[float] = None

The number of Virtual Machines in the Scale Set.

license_type: pulumi.Output[str] = None

Specifies the type of on-premise license (also known as Azure Hybrid Use Benefit) which should be used for this Virtual Machine Scale Set. Possible values are None, Windows_Client and Windows_Server. Changing this forces a new resource to be created.

location: pulumi.Output[str] = None

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

max_bid_price: pulumi.Output[float] = None

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 the Scale Set should not be evicted for price reasons.

name: pulumi.Output[str] = None

The name of the Windows Virtual Machine Scale Set. Changing this forces a new resource to be created.

network_interfaces: pulumi.Output[list] = None

One or more network_interface blocks as defined below.

  • dns_servers (list) - 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.

  • ip_configurations (list) - One or more ip_configuration blocks as defined above.

    • applicationGatewayBackendAddressPoolIds (list) - A list of Backend Address Pools ID’s from a Application Gateway which this Virtual Machine Scale Set should be connected to.

    • applicationSecurityGroupIds (list) - A list of Application Security Group ID’s which this Virtual Machine Scale Set should be connected to.

    • loadBalancerBackendAddressPoolIds (list) - A list of Backend Address Pools ID’s from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    • loadBalancerInboundNatRulesIds (list) - A list of NAT Rule ID’s from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    • name (str) - The Name which should be used for this IP Configuration.

    • primary (bool) - Is this the Primary IP Configuration for this Network Interface? Defaults to false.

    • public_ip_addresses (list) - A public_ip_address block as defined below.

      • 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 (float) - The Idle Timeout in Minutes for the Public IP Address. Possible values are in the range 4 to 32.

      • ipTags (list) - One or more ip_tag blocks as defined above.

        • tag (str) - The IP Tag associated with the Public IP, such as SQL or Storage.