UNPKG

@pulumi/azure-native

Version:

[![Slack](http://www.pulumi.com/images/docs/badges/slack.svg)](https://slack.pulumi.com) [![NPM version](https://badge.fury.io/js/%40pulumi%2Fazure-native.svg)](https://npmjs.com/package/@pulumi/azure-native) [![Python version](https://badge.fury.io/py/pu

301 lines (300 loc) • 14.6 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; import * as enums from "../types/enums"; /** * Describes a Virtual Machine Scale Set. * * Uses Azure REST API version 2024-11-01. In version 2.x of the Azure Native provider, it used API version 2023-03-01. * * Other available API versions: 2022-08-01, 2022-11-01, 2023-03-01, 2023-07-01, 2023-09-01, 2024-03-01, 2024-07-01. These can be accessed by generating a local SDK package using the CLI command `pulumi package add azure-native compute [ApiVersion]`. See the [version guide](../../../version-guide/#accessing-any-api-version-via-local-packages) for details. */ export declare class VirtualMachineScaleSet extends pulumi.CustomResource { /** * Get an existing VirtualMachineScaleSet resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): VirtualMachineScaleSet; /** * Returns true if the given object is an instance of VirtualMachineScaleSet. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is VirtualMachineScaleSet; /** * Specifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines have the capability to support attaching managed data disks with UltraSSD_LRS storage account type. */ readonly additionalCapabilities: pulumi.Output<outputs.compute.AdditionalCapabilitiesResponse | undefined>; /** * Policy for automatic repairs. */ readonly automaticRepairsPolicy: pulumi.Output<outputs.compute.AutomaticRepairsPolicyResponse | undefined>; /** * The Azure API version of the resource. */ readonly azureApiVersion: pulumi.Output<string>; /** * Optional property which must either be set to True or omitted. */ readonly constrainedMaximumCapacity: pulumi.Output<boolean | undefined>; /** * When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs. */ readonly doNotRunExtensionsOnOverprovisionedVMs: pulumi.Output<boolean | undefined>; /** * Etag is property returned in Create/Update/Get response of the VMSS, so that customer can supply it in the header to ensure optimistic updates */ readonly etag: pulumi.Output<string>; /** * The extended location of the Virtual Machine Scale Set. */ readonly extendedLocation: pulumi.Output<outputs.compute.ExtendedLocationResponse | undefined>; /** * Specifies information about the dedicated host group that the virtual machine scale set resides in. Minimum api-version: 2020-06-01. */ readonly hostGroup: pulumi.Output<outputs.compute.SubResourceResponse | undefined>; /** * The identity of the virtual machine scale set, if configured. */ readonly identity: pulumi.Output<outputs.compute.VirtualMachineScaleSetIdentityResponse | undefined>; /** * The geo-location where the resource lives */ readonly location: pulumi.Output<string>; /** * The name of the resource */ readonly name: pulumi.Output<string>; /** * Specifies the orchestration mode for the virtual machine scale set. */ readonly orchestrationMode: pulumi.Output<string | undefined>; /** * Specifies whether the Virtual Machine Scale Set should be overprovisioned. */ readonly overprovision: pulumi.Output<boolean | undefined>; /** * Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**. */ readonly plan: pulumi.Output<outputs.compute.PlanResponse | undefined>; /** * Fault Domain count for each placement group. */ readonly platformFaultDomainCount: pulumi.Output<number | undefined>; /** * Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance. */ readonly priorityMixPolicy: pulumi.Output<outputs.compute.PriorityMixPolicyResponse | undefined>; /** * The provisioning state, which only appears in the response. */ readonly provisioningState: pulumi.Output<string>; /** * Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. Minimum api-version: 2018-04-01. */ readonly proximityPlacementGroup: pulumi.Output<outputs.compute.SubResourceResponse | undefined>; /** * Policy for Resiliency */ readonly resiliencyPolicy: pulumi.Output<outputs.compute.ResiliencyPolicyResponse | undefined>; /** * Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set. */ readonly scaleInPolicy: pulumi.Output<outputs.compute.ScaleInPolicyResponse | undefined>; /** * The ScheduledEventsPolicy. */ readonly scheduledEventsPolicy: pulumi.Output<outputs.compute.ScheduledEventsPolicyResponse | undefined>; /** * When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true. */ readonly singlePlacementGroup: pulumi.Output<boolean | undefined>; /** * The virtual machine scale set sku. */ readonly sku: pulumi.Output<outputs.compute.SkuResponse | undefined>; /** * Specifies the sku profile for the virtual machine scale set. */ readonly skuProfile: pulumi.Output<outputs.compute.SkuProfileResponse | undefined>; /** * Specifies the Spot Restore properties for the virtual machine scale set. */ readonly spotRestorePolicy: pulumi.Output<outputs.compute.SpotRestorePolicyResponse | undefined>; /** * Azure Resource Manager metadata containing createdBy and modifiedBy information. */ readonly systemData: pulumi.Output<outputs.compute.SystemDataResponse>; /** * Resource tags. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Specifies the time at which the Virtual Machine Scale Set resource was created. Minimum api-version: 2021-11-01. */ readonly timeCreated: pulumi.Output<string>; /** * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" */ readonly type: pulumi.Output<string>; /** * Specifies the ID which uniquely identifies a Virtual Machine Scale Set. */ readonly uniqueId: pulumi.Output<string>; /** * The upgrade policy. */ readonly upgradePolicy: pulumi.Output<outputs.compute.UpgradePolicyResponse | undefined>; /** * The virtual machine profile. */ readonly virtualMachineProfile: pulumi.Output<outputs.compute.VirtualMachineScaleSetVMProfileResponse | undefined>; /** * Specifies the align mode between Virtual Machine Scale Set compute and storage Fault Domain count. */ readonly zonalPlatformFaultDomainAlignMode: pulumi.Output<string | undefined>; /** * Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. zoneBalance property can only be set if the zones property of the scale set contains more than one zone. If there are no zones or only one zone specified, then zoneBalance property should not be set. */ readonly zoneBalance: pulumi.Output<boolean | undefined>; /** * The availability zones. */ readonly zones: pulumi.Output<string[] | undefined>; /** * Create a VirtualMachineScaleSet resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: VirtualMachineScaleSetArgs, opts?: pulumi.CustomResourceOptions); } /** * The set of arguments for constructing a VirtualMachineScaleSet resource. */ export interface VirtualMachineScaleSetArgs { /** * Specifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines have the capability to support attaching managed data disks with UltraSSD_LRS storage account type. */ additionalCapabilities?: pulumi.Input<inputs.compute.AdditionalCapabilitiesArgs>; /** * Policy for automatic repairs. */ automaticRepairsPolicy?: pulumi.Input<inputs.compute.AutomaticRepairsPolicyArgs>; /** * Optional property which must either be set to True or omitted. */ constrainedMaximumCapacity?: pulumi.Input<boolean>; /** * When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs. */ doNotRunExtensionsOnOverprovisionedVMs?: pulumi.Input<boolean>; /** * The extended location of the Virtual Machine Scale Set. */ extendedLocation?: pulumi.Input<inputs.compute.ExtendedLocationArgs>; /** * Specifies information about the dedicated host group that the virtual machine scale set resides in. Minimum api-version: 2020-06-01. */ hostGroup?: pulumi.Input<inputs.compute.SubResourceArgs>; /** * The identity of the virtual machine scale set, if configured. */ identity?: pulumi.Input<inputs.compute.VirtualMachineScaleSetIdentityArgs>; /** * The geo-location where the resource lives */ location?: pulumi.Input<string>; /** * Specifies the orchestration mode for the virtual machine scale set. */ orchestrationMode?: pulumi.Input<string | enums.compute.OrchestrationMode>; /** * Specifies whether the Virtual Machine Scale Set should be overprovisioned. */ overprovision?: pulumi.Input<boolean>; /** * Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**. */ plan?: pulumi.Input<inputs.compute.PlanArgs>; /** * Fault Domain count for each placement group. */ platformFaultDomainCount?: pulumi.Input<number>; /** * Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance. */ priorityMixPolicy?: pulumi.Input<inputs.compute.PriorityMixPolicyArgs>; /** * Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. Minimum api-version: 2018-04-01. */ proximityPlacementGroup?: pulumi.Input<inputs.compute.SubResourceArgs>; /** * Policy for Resiliency */ resiliencyPolicy?: pulumi.Input<inputs.compute.ResiliencyPolicyArgs>; /** * The name of the resource group. The name is case insensitive. */ resourceGroupName: pulumi.Input<string>; /** * Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set. */ scaleInPolicy?: pulumi.Input<inputs.compute.ScaleInPolicyArgs>; /** * The ScheduledEventsPolicy. */ scheduledEventsPolicy?: pulumi.Input<inputs.compute.ScheduledEventsPolicyArgs>; /** * When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true. */ singlePlacementGroup?: pulumi.Input<boolean>; /** * The virtual machine scale set sku. */ sku?: pulumi.Input<inputs.compute.SkuArgs>; /** * Specifies the sku profile for the virtual machine scale set. */ skuProfile?: pulumi.Input<inputs.compute.SkuProfileArgs>; /** * Specifies the Spot Restore properties for the virtual machine scale set. */ spotRestorePolicy?: pulumi.Input<inputs.compute.SpotRestorePolicyArgs>; /** * Resource tags. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * The upgrade policy. */ upgradePolicy?: pulumi.Input<inputs.compute.UpgradePolicyArgs>; /** * The virtual machine profile. */ virtualMachineProfile?: pulumi.Input<inputs.compute.VirtualMachineScaleSetVMProfileArgs>; /** * The name of the VM scale set. */ vmScaleSetName?: pulumi.Input<string>; /** * Specifies the align mode between Virtual Machine Scale Set compute and storage Fault Domain count. */ zonalPlatformFaultDomainAlignMode?: pulumi.Input<string | enums.compute.ZonalPlatformFaultDomainAlignMode>; /** * Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. zoneBalance property can only be set if the zones property of the scale set contains more than one zone. If there are no zones or only one zone specified, then zoneBalance property should not be set. */ zoneBalance?: pulumi.Input<boolean>; /** * The availability zones. */ zones?: pulumi.Input<pulumi.Input<string>[]>; }