All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azurenative.compute.kotlin.VirtualMachineScaleSetVMArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.compute.kotlin

import com.pulumi.azurenative.compute.VirtualMachineScaleSetVMArgs.builder
import com.pulumi.azurenative.compute.kotlin.inputs.AdditionalCapabilitiesArgs
import com.pulumi.azurenative.compute.kotlin.inputs.AdditionalCapabilitiesArgsBuilder
import com.pulumi.azurenative.compute.kotlin.inputs.DiagnosticsProfileArgs
import com.pulumi.azurenative.compute.kotlin.inputs.DiagnosticsProfileArgsBuilder
import com.pulumi.azurenative.compute.kotlin.inputs.HardwareProfileArgs
import com.pulumi.azurenative.compute.kotlin.inputs.HardwareProfileArgsBuilder
import com.pulumi.azurenative.compute.kotlin.inputs.NetworkProfileArgs
import com.pulumi.azurenative.compute.kotlin.inputs.NetworkProfileArgsBuilder
import com.pulumi.azurenative.compute.kotlin.inputs.OSProfileArgs
import com.pulumi.azurenative.compute.kotlin.inputs.OSProfileArgsBuilder
import com.pulumi.azurenative.compute.kotlin.inputs.PlanArgs
import com.pulumi.azurenative.compute.kotlin.inputs.PlanArgsBuilder
import com.pulumi.azurenative.compute.kotlin.inputs.SecurityProfileArgs
import com.pulumi.azurenative.compute.kotlin.inputs.SecurityProfileArgsBuilder
import com.pulumi.azurenative.compute.kotlin.inputs.StorageProfileArgs
import com.pulumi.azurenative.compute.kotlin.inputs.StorageProfileArgsBuilder
import com.pulumi.azurenative.compute.kotlin.inputs.SubResourceArgs
import com.pulumi.azurenative.compute.kotlin.inputs.SubResourceArgsBuilder
import com.pulumi.azurenative.compute.kotlin.inputs.VirtualMachineIdentityArgs
import com.pulumi.azurenative.compute.kotlin.inputs.VirtualMachineIdentityArgsBuilder
import com.pulumi.azurenative.compute.kotlin.inputs.VirtualMachineScaleSetVMNetworkProfileConfigurationArgs
import com.pulumi.azurenative.compute.kotlin.inputs.VirtualMachineScaleSetVMNetworkProfileConfigurationArgsBuilder
import com.pulumi.azurenative.compute.kotlin.inputs.VirtualMachineScaleSetVMProtectionPolicyArgs
import com.pulumi.azurenative.compute.kotlin.inputs.VirtualMachineScaleSetVMProtectionPolicyArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Describes a virtual machine scale set virtual machine.
 * Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-03-01.
 * Other available API versions: 2023-07-01, 2023-09-01, 2024-03-01, 2024-07-01.
 * ## Example Usage
 * ### VirtualMachineScaleSetVM_Update_MaximumSet_Gen
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var virtualMachineScaleSetVM = new AzureNative.Compute.VirtualMachineScaleSetVM("virtualMachineScaleSetVM", new()
 *     {
 *         AdditionalCapabilities = new AzureNative.Compute.Inputs.AdditionalCapabilitiesArgs
 *         {
 *             HibernationEnabled = true,
 *             UltraSSDEnabled = true,
 *         },
 *         AvailabilitySet = new AzureNative.Compute.Inputs.SubResourceArgs
 *         {
 *             Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *         },
 *         DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
 *         {
 *             BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
 *             {
 *                 Enabled = true,
 *                 StorageUri = "aaaaaaaaaaaaa",
 *             },
 *         },
 *         HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
 *         {
 *             VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Basic_A0,
 *             VmSizeProperties = new AzureNative.Compute.Inputs.VMSizePropertiesArgs
 *             {
 *                 VCPUsAvailable = 9,
 *                 VCPUsPerCore = 12,
 *             },
 *         },
 *         InstanceId = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
 *         LicenseType = "aaaaaaaaaa",
 *         Location = "westus",
 *         NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
 *         {
 *             NetworkApiVersion = AzureNative.Compute.NetworkApiVersion.NetworkApiVersion_2020_11_01,
 *             NetworkInterfaceConfigurations = new[]
 *             {
 *                 new AzureNative.Compute.Inputs.VirtualMachineNetworkInterfaceConfigurationArgs
 *                 {
 *                     DeleteOption = AzureNative.Compute.DeleteOptions.Delete,
 *                     DnsSettings = new AzureNative.Compute.Inputs.VirtualMachineNetworkInterfaceDnsSettingsConfigurationArgs
 *                     {
 *                         DnsServers = new[]
 *                         {
 *                             "aaaaaa",
 *                         },
 *                     },
 *                     DscpConfiguration = new AzureNative.Compute.Inputs.SubResourceArgs
 *                     {
 *                         Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *                     },
 *                     EnableAcceleratedNetworking = true,
 *                     EnableFpga = true,
 *                     EnableIPForwarding = true,
 *                     IpConfigurations = new[]
 *                     {
 *                         new AzureNative.Compute.Inputs.VirtualMachineNetworkInterfaceIPConfigurationArgs
 *                         {
 *                             ApplicationGatewayBackendAddressPools = new[]
 *                             {
 *                                 new AzureNative.Compute.Inputs.SubResourceArgs
 *                                 {
 *                                     Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *                                 },
 *                             },
 *                             ApplicationSecurityGroups = new[]
 *                             {
 *                                 new AzureNative.Compute.Inputs.SubResourceArgs
 *                                 {
 *                                     Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *                                 },
 *                             },
 *                             LoadBalancerBackendAddressPools = new[]
 *                             {
 *                                 new AzureNative.Compute.Inputs.SubResourceArgs
 *                                 {
 *                                     Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *                                 },
 *                             },
 *                             Name = "aa",
 *                             Primary = true,
 *                             PrivateIPAddressVersion = AzureNative.Compute.IPVersions.IPv4,
 *                             PublicIPAddressConfiguration = new AzureNative.Compute.Inputs.VirtualMachinePublicIPAddressConfigurationArgs
 *                             {
 *                                 DeleteOption = AzureNative.Compute.DeleteOptions.Delete,
 *                                 DnsSettings = new AzureNative.Compute.Inputs.VirtualMachinePublicIPAddressDnsSettingsConfigurationArgs
 *                                 {
 *                                     DomainNameLabel = "aaaaaaaaaaaaaaaaaaaaaaaaa",
 *                                 },
 *                                 IdleTimeoutInMinutes = 2,
 *                                 IpTags = new[]
 *                                 {
 *                                     new AzureNative.Compute.Inputs.VirtualMachineIpTagArgs
 *                                     {
 *                                         IpTagType = "aaaaaaaaaaaaaaaaaaaaaaaaa",
 *                                         Tag = "aaaaaaaaaaaaaaaaaaaa",
 *                                     },
 *                                 },
 *                                 Name = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
 *                                 PublicIPAddressVersion = AzureNative.Compute.IPVersions.IPv4,
 *                                 PublicIPAllocationMethod = AzureNative.Compute.PublicIPAllocationMethod.Dynamic,
 *                                 PublicIPPrefix = new AzureNative.Compute.Inputs.SubResourceArgs
 *                                 {
 *                                     Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *                                 },
 *                                 Sku = new AzureNative.Compute.Inputs.PublicIPAddressSkuArgs
 *                                 {
 *                                     Name = AzureNative.Compute.PublicIPAddressSkuName.Basic,
 *                                     Tier = AzureNative.Compute.PublicIPAddressSkuTier.Regional,
 *                                 },
 *                             },
 *                             Subnet = new AzureNative.Compute.Inputs.SubResourceArgs
 *                             {
 *                                 Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *                             },
 *                         },
 *                     },
 *                     Name = "aaaaaaaaaaa",
 *                     NetworkSecurityGroup = new AzureNative.Compute.Inputs.SubResourceArgs
 *                     {
 *                         Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *                     },
 *                     Primary = true,
 *                 },
 *             },
 *             NetworkInterfaces = new[]
 *             {
 *                 new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
 *                 {
 *                     DeleteOption = AzureNative.Compute.DeleteOptions.Delete,
 *                     Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}/virtualMachines/0/networkInterfaces/vmsstestnetconfig5415",
 *                     Primary = true,
 *                 },
 *             },
 *         },
 *         NetworkProfileConfiguration = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMNetworkProfileConfigurationArgs
 *         {
 *             NetworkInterfaceConfigurations = new[]
 *             {
 *                 new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
 *                 {
 *                     DeleteOption = AzureNative.Compute.DeleteOptions.Delete,
 *                     DnsSettings = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationDnsSettingsArgs
 *                     {
 *                         DnsServers = new() { },
 *                     },
 *                     EnableAcceleratedNetworking = true,
 *                     EnableFpga = true,
 *                     EnableIPForwarding = true,
 *                     IpConfigurations = new[]
 *                     {
 *                         new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
 *                         {
 *                             ApplicationGatewayBackendAddressPools = new[]
 *                             {
 *                                 new AzureNative.Compute.Inputs.SubResourceArgs
 *                                 {
 *                                     Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *                                 },
 *                             },
 *                             ApplicationSecurityGroups = new[]
 *                             {
 *                                 new AzureNative.Compute.Inputs.SubResourceArgs
 *                                 {
 *                                     Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *                                 },
 *                             },
 *                             LoadBalancerBackendAddressPools = new[]
 *                             {
 *                                 new AzureNative.Compute.Inputs.SubResourceArgs
 *                                 {
 *                                     Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *                                 },
 *                             },
 *                             LoadBalancerInboundNatPools = new[]
 *                             {
 *                                 new AzureNative.Compute.Inputs.SubResourceArgs
 *                                 {
 *                                     Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *                                 },
 *                             },
 *                             Name = "vmsstestnetconfig9693",
 *                             Primary = true,
 *                             PrivateIPAddressVersion = AzureNative.Compute.IPVersion.IPv4,
 *                             PublicIPAddressConfiguration = new AzureNative.Compute.Inputs.VirtualMachineScaleSetPublicIPAddressConfigurationArgs
 *                             {
 *                                 DeleteOption = AzureNative.Compute.DeleteOptions.Delete,
 *                                 DnsSettings = new AzureNative.Compute.Inputs.VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsArgs
 *                                 {
 *                                     DomainNameLabel = "aaaaaaaaaaaaaaaaaa",
 *                                 },
 *                                 IdleTimeoutInMinutes = 18,
 *                                 IpTags = new[]
 *                                 {
 *                                     new AzureNative.Compute.Inputs.VirtualMachineScaleSetIpTagArgs
 *                                     {
 *                                         IpTagType = "aaaaaaa",
 *                                         Tag = "aaaaaaaaaaaaaaaaaaaaaaaaaaa",
 *                                     },
 *                                 },
 *                                 Name = "aaaaaaaaaaaaaaaaaa",
 *                                 PublicIPAddressVersion = AzureNative.Compute.IPVersion.IPv4,
 *                                 PublicIPPrefix = new AzureNative.Compute.Inputs.SubResourceArgs
 *                                 {
 *                                     Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *                                 },
 *                                 Sku = new AzureNative.Compute.Inputs.PublicIPAddressSkuArgs
 *                                 {
 *                                     Name = AzureNative.Compute.PublicIPAddressSkuName.Basic,
 *                                     Tier = AzureNative.Compute.PublicIPAddressSkuTier.Regional,
 *                                 },
 *                             },
 *                             Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
 *                             {
 *                                 Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/vn4071/subnets/sn5503",
 *                             },
 *                         },
 *                     },
 *                     Name = "vmsstestnetconfig5415",
 *                     NetworkSecurityGroup = new AzureNative.Compute.Inputs.SubResourceArgs
 *                     {
 *                         Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *                     },
 *                     Primary = true,
 *                 },
 *             },
 *         },
 *         OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
 *         {
 *             AdminPassword = "aaaaaaaaaaaaaaaa",
 *             AdminUsername = "Foo12",
 *             AllowExtensionOperations = true,
 *             ComputerName = "test000000",
 *             CustomData = "aaaa",
 *             LinuxConfiguration = new AzureNative.Compute.Inputs.LinuxConfigurationArgs
 *             {
 *                 DisablePasswordAuthentication = true,
 *                 PatchSettings = new AzureNative.Compute.Inputs.LinuxPatchSettingsArgs
 *                 {
 *                     AssessmentMode = AzureNative.Compute.LinuxPatchAssessmentMode.ImageDefault,
 *                     PatchMode = AzureNative.Compute.LinuxVMGuestPatchMode.ImageDefault,
 *                 },
 *                 ProvisionVMAgent = true,
 *                 Ssh = new AzureNative.Compute.Inputs.SshConfigurationArgs
 *                 {
 *                     PublicKeys = new[]
 *                     {
 *                         new AzureNative.Compute.Inputs.SshPublicKeyArgs
 *                         {
 *                             KeyData = "aaaaaa",
 *                             Path = "aaa",
 *                         },
 *                     },
 *                 },
 *             },
 *             RequireGuestProvisionSignal = true,
 *             Secrets = new() { },
 *             WindowsConfiguration = new AzureNative.Compute.Inputs.WindowsConfigurationArgs
 *             {
 *                 AdditionalUnattendContent = new[]
 *                 {
 *                     new AzureNative.Compute.Inputs.AdditionalUnattendContentArgs
 *                     {
 *                         ComponentName = AzureNative.Compute.ComponentNames.Microsoft_Windows_Shell_Setup,
 *                         Content = "aaaaaaaaaaaaaaaaaaaa",
 *                         PassName = AzureNative.Compute.PassNames.OobeSystem,
 *                         SettingName = AzureNative.Compute.SettingNames.AutoLogon,
 *                     },
 *                 },
 *                 EnableAutomaticUpdates = true,
 *                 PatchSettings = new AzureNative.Compute.Inputs.PatchSettingsArgs
 *                 {
 *                     AssessmentMode = AzureNative.Compute.WindowsPatchAssessmentMode.ImageDefault,
 *                     EnableHotpatching = true,
 *                     PatchMode = AzureNative.Compute.WindowsVMGuestPatchMode.Manual,
 *                 },
 *                 ProvisionVMAgent = true,
 *                 TimeZone = "aaaaaaaaaaaaaaaaaaaaaaaaaaa",
 *                 WinRM = new AzureNative.Compute.Inputs.WinRMConfigurationArgs
 *                 {
 *                     Listeners = new[]
 *                     {
 *                         new AzureNative.Compute.Inputs.WinRMListenerArgs
 *                         {
 *                             CertificateUrl = "aaaaaaaaaaaaaaaaaaaaaa",
 *                             Protocol = AzureNative.Compute.ProtocolTypes.Http,
 *                         },
 *                     },
 *                 },
 *             },
 *         },
 *         Plan = new AzureNative.Compute.Inputs.PlanArgs
 *         {
 *             Name = "aaaaaaaaaa",
 *             Product = "aaaaaaaaaaaaaaaaaaaa",
 *             PromotionCode = "aaaaaaaaaaaaaaaaaaaa",
 *             Publisher = "aaaaaaaaaaaaaaaaaaaaaa",
 *         },
 *         ProtectionPolicy = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProtectionPolicyArgs
 *         {
 *             ProtectFromScaleIn = true,
 *             ProtectFromScaleSetActions = true,
 *         },
 *         ResourceGroupName = "rgcompute",
 *         SecurityProfile = new AzureNative.Compute.Inputs.SecurityProfileArgs
 *         {
 *             EncryptionAtHost = true,
 *             SecurityType = AzureNative.Compute.SecurityTypes.TrustedLaunch,
 *             UefiSettings = new AzureNative.Compute.Inputs.UefiSettingsArgs
 *             {
 *                 SecureBootEnabled = true,
 *                 VTpmEnabled = true,
 *             },
 *         },
 *         StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
 *         {
 *             DataDisks = new[]
 *             {
 *                 new AzureNative.Compute.Inputs.DataDiskArgs
 *                 {
 *                     Caching = AzureNative.Compute.CachingTypes.None,
 *                     CreateOption = AzureNative.Compute.DiskCreateOptionTypes.Empty,
 *                     DeleteOption = AzureNative.Compute.DiskDeleteOptionTypes.Delete,
 *                     DetachOption = AzureNative.Compute.DiskDetachOptionTypes.ForceDetach,
 *                     DiskSizeGB = 128,
 *                     Image = new AzureNative.Compute.Inputs.VirtualHardDiskArgs
 *                     {
 *                         Uri = "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd",
 *                     },
 *                     Lun = 1,
 *                     ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
 *                     {
 *                         DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
 *                         {
 *                             Id = "aaaaaaaaaaaa",
 *                         },
 *                         Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/vmss3176_vmss3176_0_disk2_6c4f554bdafa49baa780eb2d128ff39d",
 *                         StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
 *                     },
 *                     Name = "vmss3176_vmss3176_0_disk2_6c4f554bdafa49baa780eb2d128ff39d",
 *                     ToBeDetached = true,
 *                     Vhd = new AzureNative.Compute.Inputs.VirtualHardDiskArgs
 *                     {
 *                         Uri = "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd",
 *                     },
 *                     WriteAcceleratorEnabled = true,
 *                 },
 *             },
 *             ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
 *             {
 *                 Id = "a",
 *                 Offer = "WindowsServer",
 *                 Publisher = "MicrosoftWindowsServer",
 *                 SharedGalleryImageId = "aaaaaaaaaaaaaaaaaaaa",
 *                 Sku = "2012-R2-Datacenter",
 *                 Version = "4.127.20180315",
 *             },
 *             OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
 *             {
 *                 Caching = AzureNative.Compute.CachingTypes.None,
 *                 CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
 *                 DeleteOption = AzureNative.Compute.DiskDeleteOptionTypes.Delete,
 *                 DiffDiskSettings = new AzureNative.Compute.Inputs.DiffDiskSettingsArgs
 *                 {
 *                     Option = AzureNative.Compute.DiffDiskOptions.Local,
 *                     Placement = AzureNative.Compute.DiffDiskPlacement.CacheDisk,
 *                 },
 *                 DiskSizeGB = 127,
 *                 EncryptionSettings = new AzureNative.Compute.Inputs.DiskEncryptionSettingsArgs
 *                 {
 *                     DiskEncryptionKey = new AzureNative.Compute.Inputs.KeyVaultSecretReferenceArgs
 *                     {
 *                         SecretUrl = "aaaaaaaa",
 *                         SourceVault = new AzureNative.Compute.Inputs.SubResourceArgs
 *                         {
 *                             Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *                         },
 *                     },
 *                     Enabled = true,
 *                     KeyEncryptionKey = new AzureNative.Compute.Inputs.KeyVaultKeyReferenceArgs
 *                     {
 *                         KeyUrl = "aaaaaaaaaaaaaa",
 *                         SourceVault = new AzureNative.Compute.Inputs.SubResourceArgs
 *                         {
 *                             Id = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}",
 *                         },
 *                     },
 *                 },
 *                 Image = new AzureNative.Compute.Inputs.VirtualHardDiskArgs
 *                 {
 *                     Uri = "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd",
 *                 },
 *                 ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
 *                 {
 *                     DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
 *                     {
 *                         Id = "aaaaaaaaaaaa",
 *                     },
 *                     Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/vmss3176_vmss3176_0_OsDisk_1_6d72b805e50e4de6830303c5055077fc",
 *                     StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
 *                 },
 *                 Name = "vmss3176_vmss3176_0_OsDisk_1_6d72b805e50e4de6830303c5055077fc",
 *                 OsType = AzureNative.Compute.OperatingSystemTypes.Windows,
 *                 Vhd = new AzureNative.Compute.Inputs.VirtualHardDiskArgs
 *                 {
 *                     Uri = "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd",
 *                 },
 *                 WriteAcceleratorEnabled = true,
 *             },
 *         },
 *         Tags = null,
 *         UserData = "RXhhbXBsZSBVc2VyRGF0YQ==",
 *         VmScaleSetName = "aaaaaaaaaaaaaa",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := compute.NewVirtualMachineScaleSetVM(ctx, "virtualMachineScaleSetVM", &compute.VirtualMachineScaleSetVMArgs{
 * 			AdditionalCapabilities: &compute.AdditionalCapabilitiesArgs{
 * 				HibernationEnabled: pulumi.Bool(true),
 * 				UltraSSDEnabled:    pulumi.Bool(true),
 * 			},
 * 			AvailabilitySet: &compute.SubResourceArgs{
 * 				Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 			},
 * 			DiagnosticsProfile: &compute.DiagnosticsProfileArgs{
 * 				BootDiagnostics: &compute.BootDiagnosticsArgs{
 * 					Enabled:    pulumi.Bool(true),
 * 					StorageUri: pulumi.String("aaaaaaaaaaaaa"),
 * 				},
 * 			},
 * 			HardwareProfile: &compute.HardwareProfileArgs{
 * 				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Basic_A0),
 * 				VmSizeProperties: &compute.VMSizePropertiesArgs{
 * 					VCPUsAvailable: pulumi.Int(9),
 * 					VCPUsPerCore:   pulumi.Int(12),
 * 				},
 * 			},
 * 			InstanceId:  pulumi.String("aaaaaaaaaaaaaaaaaaaaaaaaaaaaa"),
 * 			LicenseType: pulumi.String("aaaaaaaaaa"),
 * 			Location:    pulumi.String("westus"),
 * 			NetworkProfile: &compute.NetworkProfileArgs{
 * 				NetworkApiVersion: pulumi.String(compute.NetworkApiVersion_2020_11_01),
 * 				NetworkInterfaceConfigurations: compute.VirtualMachineNetworkInterfaceConfigurationArray{
 * 					&compute.VirtualMachineNetworkInterfaceConfigurationArgs{
 * 						DeleteOption: pulumi.String(compute.DeleteOptionsDelete),
 * 						DnsSettings: &compute.VirtualMachineNetworkInterfaceDnsSettingsConfigurationArgs{
 * 							DnsServers: pulumi.StringArray{
 * 								pulumi.String("aaaaaa"),
 * 							},
 * 						},
 * 						DscpConfiguration: &compute.SubResourceArgs{
 * 							Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 						},
 * 						EnableAcceleratedNetworking: pulumi.Bool(true),
 * 						EnableFpga:                  pulumi.Bool(true),
 * 						EnableIPForwarding:          pulumi.Bool(true),
 * 						IpConfigurations: compute.VirtualMachineNetworkInterfaceIPConfigurationArray{
 * 							&compute.VirtualMachineNetworkInterfaceIPConfigurationArgs{
 * 								ApplicationGatewayBackendAddressPools: compute.SubResourceArray{
 * 									&compute.SubResourceArgs{
 * 										Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 									},
 * 								},
 * 								ApplicationSecurityGroups: compute.SubResourceArray{
 * 									&compute.SubResourceArgs{
 * 										Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 									},
 * 								},
 * 								LoadBalancerBackendAddressPools: compute.SubResourceArray{
 * 									&compute.SubResourceArgs{
 * 										Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 									},
 * 								},
 * 								Name:                    pulumi.String("aa"),
 * 								Primary:                 pulumi.Bool(true),
 * 								PrivateIPAddressVersion: pulumi.String(compute.IPVersionsIPv4),
 * 								PublicIPAddressConfiguration: &compute.VirtualMachinePublicIPAddressConfigurationArgs{
 * 									DeleteOption: pulumi.String(compute.DeleteOptionsDelete),
 * 									DnsSettings: &compute.VirtualMachinePublicIPAddressDnsSettingsConfigurationArgs{
 * 										DomainNameLabel: pulumi.String("aaaaaaaaaaaaaaaaaaaaaaaaa"),
 * 									},
 * 									IdleTimeoutInMinutes: pulumi.Int(2),
 * 									IpTags: compute.VirtualMachineIpTagArray{
 * 										&compute.VirtualMachineIpTagArgs{
 * 											IpTagType: pulumi.String("aaaaaaaaaaaaaaaaaaaaaaaaa"),
 * 											Tag:       pulumi.String("aaaaaaaaaaaaaaaaaaaa"),
 * 										},
 * 									},
 * 									Name:                     pulumi.String("aaaaaaaaaaaaaaaaaaaaaaaaaaaaa"),
 * 									PublicIPAddressVersion:   pulumi.String(compute.IPVersionsIPv4),
 * 									PublicIPAllocationMethod: pulumi.String(compute.PublicIPAllocationMethodDynamic),
 * 									PublicIPPrefix: &compute.SubResourceArgs{
 * 										Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 									},
 * 									Sku: &compute.PublicIPAddressSkuArgs{
 * 										Name: pulumi.String(compute.PublicIPAddressSkuNameBasic),
 * 										Tier: pulumi.String(compute.PublicIPAddressSkuTierRegional),
 * 									},
 * 								},
 * 								Subnet: &compute.SubResourceArgs{
 * 									Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 								},
 * 							},
 * 						},
 * 						Name: pulumi.String("aaaaaaaaaaa"),
 * 						NetworkSecurityGroup: &compute.SubResourceArgs{
 * 							Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 						},
 * 						Primary: pulumi.Bool(true),
 * 					},
 * 				},
 * 				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
 * 					&compute.NetworkInterfaceReferenceArgs{
 * 						DeleteOption: pulumi.String(compute.DeleteOptionsDelete),
 * 						Id:           pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}/virtualMachines/0/networkInterfaces/vmsstestnetconfig5415"),
 * 						Primary:      pulumi.Bool(true),
 * 					},
 * 				},
 * 			},
 * 			NetworkProfileConfiguration: &compute.VirtualMachineScaleSetVMNetworkProfileConfigurationArgs{
 * 				NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
 * 					&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
 * 						DeleteOption: pulumi.String(compute.DeleteOptionsDelete),
 * 						DnsSettings: &compute.VirtualMachineScaleSetNetworkConfigurationDnsSettingsArgs{
 * 							DnsServers: pulumi.StringArray{},
 * 						},
 * 						EnableAcceleratedNetworking: pulumi.Bool(true),
 * 						EnableFpga:                  pulumi.Bool(true),
 * 						EnableIPForwarding:          pulumi.Bool(true),
 * 						IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
 * 							&compute.VirtualMachineScaleSetIPConfigurationArgs{
 * 								ApplicationGatewayBackendAddressPools: compute.SubResourceArray{
 * 									&compute.SubResourceArgs{
 * 										Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 									},
 * 								},
 * 								ApplicationSecurityGroups: compute.SubResourceArray{
 * 									&compute.SubResourceArgs{
 * 										Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 									},
 * 								},
 * 								LoadBalancerBackendAddressPools: compute.SubResourceArray{
 * 									&compute.SubResourceArgs{
 * 										Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 									},
 * 								},
 * 								LoadBalancerInboundNatPools: compute.SubResourceArray{
 * 									&compute.SubResourceArgs{
 * 										Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 									},
 * 								},
 * 								Name:                    pulumi.String("vmsstestnetconfig9693"),
 * 								Primary:                 pulumi.Bool(true),
 * 								PrivateIPAddressVersion: pulumi.String(compute.IPVersionIPv4),
 * 								PublicIPAddressConfiguration: &compute.VirtualMachineScaleSetPublicIPAddressConfigurationArgs{
 * 									DeleteOption: pulumi.String(compute.DeleteOptionsDelete),
 * 									DnsSettings: &compute.VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsArgs{
 * 										DomainNameLabel: pulumi.String("aaaaaaaaaaaaaaaaaa"),
 * 									},
 * 									IdleTimeoutInMinutes: pulumi.Int(18),
 * 									IpTags: compute.VirtualMachineScaleSetIpTagArray{
 * 										&compute.VirtualMachineScaleSetIpTagArgs{
 * 											IpTagType: pulumi.String("aaaaaaa"),
 * 											Tag:       pulumi.String("aaaaaaaaaaaaaaaaaaaaaaaaaaa"),
 * 										},
 * 									},
 * 									Name:                   pulumi.String("aaaaaaaaaaaaaaaaaa"),
 * 									PublicIPAddressVersion: pulumi.String(compute.IPVersionIPv4),
 * 									PublicIPPrefix: &compute.SubResourceArgs{
 * 										Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 									},
 * 									Sku: &compute.PublicIPAddressSkuArgs{
 * 										Name: pulumi.String(compute.PublicIPAddressSkuNameBasic),
 * 										Tier: pulumi.String(compute.PublicIPAddressSkuTierRegional),
 * 									},
 * 								},
 * 								Subnet: &compute.ApiEntityReferenceArgs{
 * 									Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/vn4071/subnets/sn5503"),
 * 								},
 * 							},
 * 						},
 * 						Name: pulumi.String("vmsstestnetconfig5415"),
 * 						NetworkSecurityGroup: &compute.SubResourceArgs{
 * 							Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 						},
 * 						Primary: pulumi.Bool(true),
 * 					},
 * 				},
 * 			},
 * 			OsProfile: &compute.OSProfileArgs{
 * 				AdminPassword:            pulumi.String("aaaaaaaaaaaaaaaa"),
 * 				AdminUsername:            pulumi.String("Foo12"),
 * 				AllowExtensionOperations: pulumi.Bool(true),
 * 				ComputerName:             pulumi.String("test000000"),
 * 				CustomData:               pulumi.String("aaaa"),
 * 				LinuxConfiguration: &compute.LinuxConfigurationArgs{
 * 					DisablePasswordAuthentication: pulumi.Bool(true),
 * 					PatchSettings: &compute.LinuxPatchSettingsArgs{
 * 						AssessmentMode: pulumi.String(compute.LinuxPatchAssessmentModeImageDefault),
 * 						PatchMode:      pulumi.String(compute.LinuxVMGuestPatchModeImageDefault),
 * 					},
 * 					ProvisionVMAgent: pulumi.Bool(true),
 * 					Ssh: &compute.SshConfigurationArgs{
 * 						PublicKeys: compute.SshPublicKeyTypeArray{
 * 							&compute.SshPublicKeyTypeArgs{
 * 								KeyData: pulumi.String("aaaaaa"),
 * 								Path:    pulumi.String("aaa"),
 * 							},
 * 						},
 * 					},
 * 				},
 * 				RequireGuestProvisionSignal: pulumi.Bool(true),
 * 				Secrets:                     compute.VaultSecretGroupArray{},
 * 				WindowsConfiguration: &compute.WindowsConfigurationArgs{
 * 					AdditionalUnattendContent: compute.AdditionalUnattendContentArray{
 * 						&compute.AdditionalUnattendContentArgs{
 * 							ComponentName: compute.ComponentNames_Microsoft_Windows_Shell_Setup,
 * 							Content:       pulumi.String("aaaaaaaaaaaaaaaaaaaa"),
 * 							PassName:      compute.PassNamesOobeSystem,
 * 							SettingName:   compute.SettingNamesAutoLogon,
 * 						},
 * 					},
 * 					EnableAutomaticUpdates: pulumi.Bool(true),
 * 					PatchSettings: &compute.PatchSettingsArgs{
 * 						AssessmentMode:    pulumi.String(compute.WindowsPatchAssessmentModeImageDefault),
 * 						EnableHotpatching: pulumi.Bool(true),
 * 						PatchMode:         pulumi.String(compute.WindowsVMGuestPatchModeManual),
 * 					},
 * 					ProvisionVMAgent: pulumi.Bool(true),
 * 					TimeZone:         pulumi.String("aaaaaaaaaaaaaaaaaaaaaaaaaaa"),
 * 					WinRM: &compute.WinRMConfigurationArgs{
 * 						Listeners: compute.WinRMListenerArray{
 * 							&compute.WinRMListenerArgs{
 * 								CertificateUrl: pulumi.String("aaaaaaaaaaaaaaaaaaaaaa"),
 * 								Protocol:       compute.ProtocolTypesHttp,
 * 							},
 * 						},
 * 					},
 * 				},
 * 			},
 * 			Plan: &compute.PlanArgs{
 * 				Name:          pulumi.String("aaaaaaaaaa"),
 * 				Product:       pulumi.String("aaaaaaaaaaaaaaaaaaaa"),
 * 				PromotionCode: pulumi.String("aaaaaaaaaaaaaaaaaaaa"),
 * 				Publisher:     pulumi.String("aaaaaaaaaaaaaaaaaaaaaa"),
 * 			},
 * 			ProtectionPolicy: &compute.VirtualMachineScaleSetVMProtectionPolicyArgs{
 * 				ProtectFromScaleIn:         pulumi.Bool(true),
 * 				ProtectFromScaleSetActions: pulumi.Bool(true),
 * 			},
 * 			ResourceGroupName: pulumi.String("rgcompute"),
 * 			SecurityProfile: &compute.SecurityProfileArgs{
 * 				EncryptionAtHost: pulumi.Bool(true),
 * 				SecurityType:     pulumi.String(compute.SecurityTypesTrustedLaunch),
 * 				UefiSettings: &compute.UefiSettingsArgs{
 * 					SecureBootEnabled: pulumi.Bool(true),
 * 					VTpmEnabled:       pulumi.Bool(true),
 * 				},
 * 			},
 * 			StorageProfile: &compute.StorageProfileArgs{
 * 				DataDisks: compute.DataDiskArray{
 * 					&compute.DataDiskArgs{
 * 						Caching:      compute.CachingTypesNone,
 * 						CreateOption: pulumi.String(compute.DiskCreateOptionTypesEmpty),
 * 						DeleteOption: pulumi.String(compute.DiskDeleteOptionTypesDelete),
 * 						DetachOption: pulumi.String(compute.DiskDetachOptionTypesForceDetach),
 * 						DiskSizeGB:   pulumi.Int(128),
 * 						Image: &compute.VirtualHardDiskArgs{
 * 							Uri: pulumi.String("https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"),
 * 						},
 * 						Lun: pulumi.Int(1),
 * 						ManagedDisk: &compute.ManagedDiskParametersArgs{
 * 							DiskEncryptionSet: &compute.DiskEncryptionSetParametersArgs{
 * 								Id: pulumi.String("aaaaaaaaaaaa"),
 * 							},
 * 							Id:                 pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/vmss3176_vmss3176_0_disk2_6c4f554bdafa49baa780eb2d128ff39d"),
 * 							StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
 * 						},
 * 						Name:         pulumi.String("vmss3176_vmss3176_0_disk2_6c4f554bdafa49baa780eb2d128ff39d"),
 * 						ToBeDetached: pulumi.Bool(true),
 * 						Vhd: &compute.VirtualHardDiskArgs{
 * 							Uri: pulumi.String("https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"),
 * 						},
 * 						WriteAcceleratorEnabled: pulumi.Bool(true),
 * 					},
 * 				},
 * 				ImageReference: &compute.ImageReferenceArgs{
 * 					Id:                   pulumi.String("a"),
 * 					Offer:                pulumi.String("WindowsServer"),
 * 					Publisher:            pulumi.String("MicrosoftWindowsServer"),
 * 					SharedGalleryImageId: pulumi.String("aaaaaaaaaaaaaaaaaaaa"),
 * 					Sku:                  pulumi.String("2012-R2-Datacenter"),
 * 					Version:              pulumi.String("4.127.20180315"),
 * 				},
 * 				OsDisk: &compute.OSDiskArgs{
 * 					Caching:      compute.CachingTypesNone,
 * 					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
 * 					DeleteOption: pulumi.String(compute.DiskDeleteOptionTypesDelete),
 * 					DiffDiskSettings: &compute.DiffDiskSettingsArgs{
 * 						Option:    pulumi.String(compute.DiffDiskOptionsLocal),
 * 						Placement: pulumi.String(compute.DiffDiskPlacementCacheDisk),
 * 					},
 * 					DiskSizeGB: pulumi.Int(127),
 * 					EncryptionSettings: &compute.DiskEncryptionSettingsArgs{
 * 						DiskEncryptionKey: &compute.KeyVaultSecretReferenceArgs{
 * 							SecretUrl: pulumi.String("aaaaaaaa"),
 * 							SourceVault: &compute.SubResourceArgs{
 * 								Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 							},
 * 						},
 * 						Enabled: pulumi.Bool(true),
 * 						KeyEncryptionKey: &compute.KeyVaultKeyReferenceArgs{
 * 							KeyUrl: pulumi.String("aaaaaaaaaaaaaa"),
 * 							SourceVault: &compute.SubResourceArgs{
 * 								Id: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"),
 * 							},
 * 						},
 * 					},
 * 					Image: &compute.VirtualHardDiskArgs{
 * 						Uri: pulumi.String("https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"),
 * 					},
 * 					ManagedDisk: &compute.ManagedDiskParametersArgs{
 * 						DiskEncryptionSet: &compute.DiskEncryptionSetParametersArgs{
 * 							Id: pulumi.String("aaaaaaaaaaaa"),
 * 						},
 * 						Id:                 pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/vmss3176_vmss3176_0_OsDisk_1_6d72b805e50e4de6830303c5055077fc"),
 * 						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
 * 					},
 * 					Name:   pulumi.String("vmss3176_vmss3176_0_OsDisk_1_6d72b805e50e4de6830303c5055077fc"),
 * 					OsType: compute.OperatingSystemTypesWindows,
 * 					Vhd: &compute.VirtualHardDiskArgs{
 * 						Uri: pulumi.String("https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"),
 * 					},
 * 					WriteAcceleratorEnabled: pulumi.Bool(true),
 * 				},
 * 			},
 * 			Tags:           nil,
 * 			UserData:       pulumi.String("RXhhbXBsZSBVc2VyRGF0YQ=="),
 * 			VmScaleSetName: pulumi.String("aaaaaaaaaaaaaa"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.compute.VirtualMachineScaleSetVM;
 * import com.pulumi.azurenative.compute.VirtualMachineScaleSetVMArgs;
 * import com.pulumi.azurenative.compute.inputs.AdditionalCapabilitiesArgs;
 * import com.pulumi.azurenative.compute.inputs.SubResourceArgs;
 * import com.pulumi.azurenative.compute.inputs.DiagnosticsProfileArgs;
 * import com.pulumi.azurenative.compute.inputs.BootDiagnosticsArgs;
 * import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
 * import com.pulumi.azurenative.compute.inputs.VMSizePropertiesArgs;
 * import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
 * import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMNetworkProfileConfigurationArgs;
 * import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
 * import com.pulumi.azurenative.compute.inputs.LinuxConfigurationArgs;
 * import com.pulumi.azurenative.compute.inputs.LinuxPatchSettingsArgs;
 * import com.pulumi.azurenative.compute.inputs.SshConfigurationArgs;
 * import com.pulumi.azurenative.compute.inputs.WindowsConfigurationArgs;
 * import com.pulumi.azurenative.compute.inputs.PatchSettingsArgs;
 * import com.pulumi.azurenative.compute.inputs.WinRMConfigurationArgs;
 * import com.pulumi.azurenative.compute.inputs.PlanArgs;
 * import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProtectionPolicyArgs;
 * import com.pulumi.azurenative.compute.inputs.SecurityProfileArgs;
 * import com.pulumi.azurenative.compute.inputs.UefiSettingsArgs;
 * import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
 * import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
 * import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
 * import com.pulumi.azurenative.compute.inputs.DiffDiskSettingsArgs;
 * import com.pulumi.azurenative.compute.inputs.DiskEncryptionSettingsArgs;
 * import com.pulumi.azurenative.compute.inputs.KeyVaultSecretReferenceArgs;
 * import com.pulumi.azurenative.compute.inputs.KeyVaultKeyReferenceArgs;
 * import com.pulumi.azurenative.compute.inputs.VirtualHardDiskArgs;
 * import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
 * import com.pulumi.azurenative.compute.inputs.DiskEncryptionSetParametersArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var virtualMachineScaleSetVM = new VirtualMachineScaleSetVM("virtualMachineScaleSetVM", VirtualMachineScaleSetVMArgs.builder()
 *             .additionalCapabilities(AdditionalCapabilitiesArgs.builder()
 *                 .hibernationEnabled(true)
 *                 .ultraSSDEnabled(true)
 *                 .build())
 *             .availabilitySet(SubResourceArgs.builder()
 *                 .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                 .build())
 *             .diagnosticsProfile(DiagnosticsProfileArgs.builder()
 *                 .bootDiagnostics(BootDiagnosticsArgs.builder()
 *                     .enabled(true)
 *                     .storageUri("aaaaaaaaaaaaa")
 *                     .build())
 *                 .build())
 *             .hardwareProfile(HardwareProfileArgs.builder()
 *                 .vmSize("Basic_A0")
 *                 .vmSizeProperties(VMSizePropertiesArgs.builder()
 *                     .vCPUsAvailable(9)
 *                     .vCPUsPerCore(12)
 *                     .build())
 *                 .build())
 *             .instanceId("aaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
 *             .licenseType("aaaaaaaaaa")
 *             .location("westus")
 *             .networkProfile(NetworkProfileArgs.builder()
 *                 .networkApiVersion("2020-11-01")
 *                 .networkInterfaceConfigurations(VirtualMachineNetworkInterfaceConfigurationArgs.builder()
 *                     .deleteOption("Delete")
 *                     .dnsSettings(VirtualMachineNetworkInterfaceDnsSettingsConfigurationArgs.builder()
 *                         .dnsServers("aaaaaa")
 *                         .build())
 *                     .dscpConfiguration(SubResourceArgs.builder()
 *                         .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                         .build())
 *                     .enableAcceleratedNetworking(true)
 *                     .enableFpga(true)
 *                     .enableIPForwarding(true)
 *                     .ipConfigurations(VirtualMachineNetworkInterfaceIPConfigurationArgs.builder()
 *                         .applicationGatewayBackendAddressPools(SubResourceArgs.builder()
 *                             .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                             .build())
 *                         .applicationSecurityGroups(SubResourceArgs.builder()
 *                             .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                             .build())
 *                         .loadBalancerBackendAddressPools(SubResourceArgs.builder()
 *                             .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                             .build())
 *                         .name("aa")
 *                         .primary(true)
 *                         .privateIPAddressVersion("IPv4")
 *                         .publicIPAddressConfiguration(VirtualMachinePublicIPAddressConfigurationArgs.builder()
 *                             .deleteOption("Delete")
 *                             .dnsSettings(VirtualMachinePublicIPAddressDnsSettingsConfigurationArgs.builder()
 *                                 .domainNameLabel("aaaaaaaaaaaaaaaaaaaaaaaaa")
 *                                 .build())
 *                             .idleTimeoutInMinutes(2)
 *                             .ipTags(VirtualMachineIpTagArgs.builder()
 *                                 .ipTagType("aaaaaaaaaaaaaaaaaaaaaaaaa")
 *                                 .tag("aaaaaaaaaaaaaaaaaaaa")
 *                                 .build())
 *                             .name("aaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
 *                             .publicIPAddressVersion("IPv4")
 *                             .publicIPAllocationMethod("Dynamic")
 *                             .publicIPPrefix(SubResourceArgs.builder()
 *                                 .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                                 .build())
 *                             .sku(PublicIPAddressSkuArgs.builder()
 *                                 .name("Basic")
 *                                 .tier("Regional")
 *                                 .build())
 *                             .build())
 *                         .subnet(SubResourceArgs.builder()
 *                             .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                             .build())
 *                         .build())
 *                     .name("aaaaaaaaaaa")
 *                     .networkSecurityGroup(SubResourceArgs.builder()
 *                         .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                         .build())
 *                     .primary(true)
 *                     .build())
 *                 .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
 *                     .deleteOption("Delete")
 *                     .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}/virtualMachines/0/networkInterfaces/vmsstestnetconfig5415")
 *                     .primary(true)
 *                     .build())
 *                 .build())
 *             .networkProfileConfiguration(VirtualMachineScaleSetVMNetworkProfileConfigurationArgs.builder()
 *                 .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
 *                     .deleteOption("Delete")
 *                     .dnsSettings(VirtualMachineScaleSetNetworkConfigurationDnsSettingsArgs.builder()
 *                         .dnsServers()
 *                         .build())
 *                     .enableAcceleratedNetworking(true)
 *                     .enableFpga(true)
 *                     .enableIPForwarding(true)
 *                     .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
 *                         .applicationGatewayBackendAddressPools(SubResourceArgs.builder()
 *                             .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                             .build())
 *                         .applicationSecurityGroups(SubResourceArgs.builder()
 *                             .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                             .build())
 *                         .loadBalancerBackendAddressPools(SubResourceArgs.builder()
 *                             .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                             .build())
 *                         .loadBalancerInboundNatPools(SubResourceArgs.builder()
 *                             .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                             .build())
 *                         .name("vmsstestnetconfig9693")
 *                         .primary(true)
 *                         .privateIPAddressVersion("IPv4")
 *                         .publicIPAddressConfiguration(VirtualMachineScaleSetPublicIPAddressConfigurationArgs.builder()
 *                             .deleteOption("Delete")
 *                             .dnsSettings(VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsArgs.builder()
 *                                 .domainNameLabel("aaaaaaaaaaaaaaaaaa")
 *                                 .build())
 *                             .idleTimeoutInMinutes(18)
 *                             .ipTags(VirtualMachineScaleSetIpTagArgs.builder()
 *                                 .ipTagType("aaaaaaa")
 *                                 .tag("aaaaaaaaaaaaaaaaaaaaaaaaaaa")
 *                                 .build())
 *                             .name("aaaaaaaaaaaaaaaaaa")
 *                             .publicIPAddressVersion("IPv4")
 *                             .publicIPPrefix(SubResourceArgs.builder()
 *                                 .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                                 .build())
 *                             .sku(PublicIPAddressSkuArgs.builder()
 *                                 .name("Basic")
 *                                 .tier("Regional")
 *                                 .build())
 *                             .build())
 *                         .subnet(ApiEntityReferenceArgs.builder()
 *                             .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/vn4071/subnets/sn5503")
 *                             .build())
 *                         .build())
 *                     .name("vmsstestnetconfig5415")
 *                     .networkSecurityGroup(SubResourceArgs.builder()
 *                         .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                         .build())
 *                     .primary(true)
 *                     .build())
 *                 .build())
 *             .osProfile(OSProfileArgs.builder()
 *                 .adminPassword("aaaaaaaaaaaaaaaa")
 *                 .adminUsername("Foo12")
 *                 .allowExtensionOperations(true)
 *                 .computerName("test000000")
 *                 .customData("aaaa")
 *                 .linuxConfiguration(LinuxConfigurationArgs.builder()
 *                     .disablePasswordAuthentication(true)
 *                     .patchSettings(LinuxPatchSettingsArgs.builder()
 *                         .assessmentMode("ImageDefault")
 *                         .patchMode("ImageDefault")
 *                         .build())
 *                     .provisionVMAgent(true)
 *                     .ssh(SshConfigurationArgs.builder()
 *                         .publicKeys(SshPublicKeyArgs.builder()
 *                             .keyData("aaaaaa")
 *                             .path("aaa")
 *                             .build())
 *                         .build())
 *                     .build())
 *                 .requireGuestProvisionSignal(true)
 *                 .secrets()
 *                 .windowsConfiguration(WindowsConfigurationArgs.builder()
 *                     .additionalUnattendContent(AdditionalUnattendContentArgs.builder()
 *                         .componentName("Microsoft-Windows-Shell-Setup")
 *                         .content("aaaaaaaaaaaaaaaaaaaa")
 *                         .passName("OobeSystem")
 *                         .settingName("AutoLogon")
 *                         .build())
 *                     .enableAutomaticUpdates(true)
 *                     .patchSettings(PatchSettingsArgs.builder()
 *                         .assessmentMode("ImageDefault")
 *                         .enableHotpatching(true)
 *                         .patchMode("Manual")
 *                         .build())
 *                     .provisionVMAgent(true)
 *                     .timeZone("aaaaaaaaaaaaaaaaaaaaaaaaaaa")
 *                     .winRM(WinRMConfigurationArgs.builder()
 *                         .listeners(WinRMListenerArgs.builder()
 *                             .certificateUrl("aaaaaaaaaaaaaaaaaaaaaa")
 *                             .protocol("Http")
 *                             .build())
 *                         .build())
 *                     .build())
 *                 .build())
 *             .plan(PlanArgs.builder()
 *                 .name("aaaaaaaaaa")
 *                 .product("aaaaaaaaaaaaaaaaaaaa")
 *                 .promotionCode("aaaaaaaaaaaaaaaaaaaa")
 *                 .publisher("aaaaaaaaaaaaaaaaaaaaaa")
 *                 .build())
 *             .protectionPolicy(VirtualMachineScaleSetVMProtectionPolicyArgs.builder()
 *                 .protectFromScaleIn(true)
 *                 .protectFromScaleSetActions(true)
 *                 .build())
 *             .resourceGroupName("rgcompute")
 *             .securityProfile(SecurityProfileArgs.builder()
 *                 .encryptionAtHost(true)
 *                 .securityType("TrustedLaunch")
 *                 .uefiSettings(UefiSettingsArgs.builder()
 *                     .secureBootEnabled(true)
 *                     .vTpmEnabled(true)
 *                     .build())
 *                 .build())
 *             .storageProfile(StorageProfileArgs.builder()
 *                 .dataDisks(DataDiskArgs.builder()
 *                     .caching("None")
 *                     .createOption("Empty")
 *                     .deleteOption("Delete")
 *                     .detachOption("ForceDetach")
 *                     .diskSizeGB(128)
 *                     .image(VirtualHardDiskArgs.builder()
 *                         .uri("https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd")
 *                         .build())
 *                     .lun(1)
 *                     .managedDisk(ManagedDiskParametersArgs.builder()
 *                         .diskEncryptionSet(DiskEncryptionSetParametersArgs.builder()
 *                             .id("aaaaaaaaaaaa")
 *                             .build())
 *                         .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/vmss3176_vmss3176_0_disk2_6c4f554bdafa49baa780eb2d128ff39d")
 *                         .storageAccountType("Standard_LRS")
 *                         .build())
 *                     .name("vmss3176_vmss3176_0_disk2_6c4f554bdafa49baa780eb2d128ff39d")
 *                     .toBeDetached(true)
 *                     .vhd(VirtualHardDiskArgs.builder()
 *                         .uri("https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd")
 *                         .build())
 *                     .writeAcceleratorEnabled(true)
 *                     .build())
 *                 .imageReference(ImageReferenceArgs.builder()
 *                     .id("a")
 *                     .offer("WindowsServer")
 *                     .publisher("MicrosoftWindowsServer")
 *                     .sharedGalleryImageId("aaaaaaaaaaaaaaaaaaaa")
 *                     .sku("2012-R2-Datacenter")
 *                     .version("4.127.20180315")
 *                     .build())
 *                 .osDisk(OSDiskArgs.builder()
 *                     .caching("None")
 *                     .createOption("FromImage")
 *                     .deleteOption("Delete")
 *                     .diffDiskSettings(DiffDiskSettingsArgs.builder()
 *                         .option("Local")
 *                         .placement("CacheDisk")
 *                         .build())
 *                     .diskSizeGB(127)
 *                     .encryptionSettings(DiskEncryptionSettingsArgs.builder()
 *                         .diskEncryptionKey(KeyVaultSecretReferenceArgs.builder()
 *                             .secretUrl("aaaaaaaa")
 *                             .sourceVault(SubResourceArgs.builder()
 *                                 .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                                 .build())
 *                             .build())
 *                         .enabled(true)
 *                         .keyEncryptionKey(KeyVaultKeyReferenceArgs.builder()
 *                             .keyUrl("aaaaaaaaaaaaaa")
 *                             .sourceVault(SubResourceArgs.builder()
 *                                 .id("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}")
 *                                 .build())
 *                             .build())
 *                         .build())
 *                     .image(VirtualHardDiskArgs.builder()
 *                         .uri("https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd")
 *                         .build())
 *                     .managedDisk(ManagedDiskParametersArgs.builder()
 *                         .diskEncryptionSet(DiskEncryptionSetParametersArgs.builder()
 *                             .id("aaaaaaaaaaaa")
 *                             .build())
 *                         .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/vmss3176_vmss3176_0_OsDisk_1_6d72b805e50e4de6830303c5055077fc")
 *                         .storageAccountType("Standard_LRS")
 *                         .build())
 *                     .name("vmss3176_vmss3176_0_OsDisk_1_6d72b805e50e4de6830303c5055077fc")
 *                     .osType("Windows")
 *                     .vhd(VirtualHardDiskArgs.builder()
 *                         .uri("https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd")
 *                         .build())
 *                     .writeAcceleratorEnabled(true)
 *                     .build())
 *                 .build())
 *             .tags()
 *             .userData("RXhhbXBsZSBVc2VyRGF0YQ==")
 *             .vmScaleSetName("aaaaaaaaaaaaaa")
 *             .build());
 *     }
 * }
 * ```
 * ### VirtualMachineScaleSetVM_Update_MinimumSet_Gen
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var virtualMachineScaleSetVM = new AzureNative.Compute.VirtualMachineScaleSetVM("virtualMachineScaleSetVM", new()
 *     {
 *         InstanceId = "aaaaaaaaaaaaaaaaaaaa",
 *         Location = "westus",
 *         ResourceGroupName = "rgcompute",
 *         VmScaleSetName = "aaaaaaaaaaaaaaaaaa",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := compute.NewVirtualMachineScaleSetVM(ctx, "virtualMachineScaleSetVM", &compute.VirtualMachineScaleSetVMArgs{
 * 			InstanceId:        pulumi.String("aaaaaaaaaaaaaaaaaaaa"),
 * 			Location:          pulumi.String("westus"),
 * 			ResourceGroupName: pulumi.String("rgcompute"),
 * 			VmScaleSetName:    pulumi.String("aaaaaaaaaaaaaaaaaa"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.compute.VirtualMachineScaleSetVM;
 * import com.pulumi.azurenative.compute.VirtualMachineScaleSetVMArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var virtualMachineScaleSetVM = new VirtualMachineScaleSetVM("virtualMachineScaleSetVM", VirtualMachineScaleSetVMArgs.builder()
 *             .instanceId("aaaaaaaaaaaaaaaaaaaa")
 *             .location("westus")
 *             .resourceGroupName("rgcompute")
 *             .vmScaleSetName("aaaaaaaaaaaaaaaaaa")
 *             .build());
 *     }
 * }
 * ```
 * ## Import
 * An existing resource can be imported using its type token, name, and identifier, e.g.
 * ```sh
 * $ pulumi import azure-native:compute:VirtualMachineScaleSetVM {vmss-vm-name} /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualMachines/{instanceId}
 * ```
 * @property additionalCapabilities Specifies additional capabilities enabled or disabled on the virtual machine in the scale set. For instance: whether the virtual machine has the capability to support attaching managed data disks with UltraSSD_LRS storage account type.
 * @property availabilitySet Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set.
 * @property diagnosticsProfile Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
 * @property hardwareProfile Specifies the hardware settings for the virtual machine.
 * @property identity The identity of the virtual machine, if configured.
 * @property instanceId The instance ID of the virtual machine.
 * @property licenseType Specifies that the image or disk that is being used was licensed on-premises. 

Possible values for Windows Server operating system are:

Windows_Client

Windows_Server

Possible values for Linux Server operating system are:

RHEL_BYOS (for RHEL)

SLES_BYOS (for SUSE)

For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)

[Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)

Minimum api-version: 2015-06-15 * @property location Resource location * @property networkProfile Specifies the network interfaces of the virtual machine. * @property networkProfileConfiguration Specifies the network profile configuration of the virtual machine. * @property osProfile Specifies the operating system settings for the virtual machine. * @property plan Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**. * @property protectionPolicy Specifies the protection policy of the virtual machine. * @property resourceGroupName The name of the resource group. * @property securityProfile Specifies the Security related profile settings for the virtual machine. * @property storageProfile Specifies the storage settings for the virtual machine disks. * @property tags Resource tags * @property userData UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here.

Minimum api-version: 2021-03-01 * @property vmScaleSetName The name of the VM scale set where the extension should be create or updated. */ public data class VirtualMachineScaleSetVMArgs( public val additionalCapabilities: Output? = null, public val availabilitySet: Output? = null, public val diagnosticsProfile: Output? = null, public val hardwareProfile: Output? = null, public val identity: Output? = null, public val instanceId: Output? = null, public val licenseType: Output? = null, public val location: Output? = null, public val networkProfile: Output? = null, public val networkProfileConfiguration: Output? = null, public val osProfile: Output? = null, public val plan: Output? = null, public val protectionPolicy: Output? = null, public val resourceGroupName: Output? = null, public val securityProfile: Output? = null, public val storageProfile: Output? = null, public val tags: Output>? = null, public val userData: Output? = null, public val vmScaleSetName: Output? = null, ) : ConvertibleToJava { override fun toJava(): com.pulumi.azurenative.compute.VirtualMachineScaleSetVMArgs = com.pulumi.azurenative.compute.VirtualMachineScaleSetVMArgs.builder() .additionalCapabilities( additionalCapabilities?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }), ) .availabilitySet(availabilitySet?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })) .diagnosticsProfile( diagnosticsProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }), ) .hardwareProfile(hardwareProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })) .identity(identity?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })) .instanceId(instanceId?.applyValue({ args0 -> args0 })) .licenseType(licenseType?.applyValue({ args0 -> args0 })) .location(location?.applyValue({ args0 -> args0 })) .networkProfile(networkProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })) .networkProfileConfiguration( networkProfileConfiguration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }), ) .osProfile(osProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })) .plan(plan?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })) .protectionPolicy(protectionPolicy?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })) .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 })) .securityProfile(securityProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })) .storageProfile(storageProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })) .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() })) .userData(userData?.applyValue({ args0 -> args0 })) .vmScaleSetName(vmScaleSetName?.applyValue({ args0 -> args0 })).build() } /** * Builder for [VirtualMachineScaleSetVMArgs]. */ @PulumiTagMarker public class VirtualMachineScaleSetVMArgsBuilder internal constructor() { private var additionalCapabilities: Output? = null private var availabilitySet: Output? = null private var diagnosticsProfile: Output? = null private var hardwareProfile: Output? = null private var identity: Output? = null private var instanceId: Output? = null private var licenseType: Output? = null private var location: Output? = null private var networkProfile: Output? = null private var networkProfileConfiguration: Output? = null private var osProfile: Output? = null private var plan: Output? = null private var protectionPolicy: Output? = null private var resourceGroupName: Output? = null private var securityProfile: Output? = null private var storageProfile: Output? = null private var tags: Output>? = null private var userData: Output? = null private var vmScaleSetName: Output? = null /** * @param value Specifies additional capabilities enabled or disabled on the virtual machine in the scale set. For instance: whether the virtual machine has the capability to support attaching managed data disks with UltraSSD_LRS storage account type. */ @JvmName("gnnveabbedjrvaaq") public suspend fun additionalCapabilities(`value`: Output) { this.additionalCapabilities = value } /** * @param value Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. */ @JvmName("irsintyxnkywdcqt") public suspend fun availabilitySet(`value`: Output) { this.availabilitySet = value } /** * @param value Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. */ @JvmName("qiemobiqkciuqmrc") public suspend fun diagnosticsProfile(`value`: Output) { this.diagnosticsProfile = value } /** * @param value Specifies the hardware settings for the virtual machine. */ @JvmName("fgvnmgaoktuwehyf") public suspend fun hardwareProfile(`value`: Output) { this.hardwareProfile = value } /** * @param value The identity of the virtual machine, if configured. */ @JvmName("spoxshgydrpcoehj") public suspend fun identity(`value`: Output) { this.identity = value } /** * @param value The instance ID of the virtual machine. */ @JvmName("odolbetdolpptrdr") public suspend fun instanceId(`value`: Output) { this.instanceId = value } /** * @param value Specifies that the image or disk that is being used was licensed on-premises.

Possible values for Windows Server operating system are:

Windows_Client

Windows_Server

Possible values for Linux Server operating system are:

RHEL_BYOS (for RHEL)

SLES_BYOS (for SUSE)

For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)

[Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)

Minimum api-version: 2015-06-15 */ @JvmName("xxlwlxkoyftmonhp") public suspend fun licenseType(`value`: Output) { this.licenseType = value } /** * @param value Resource location */ @JvmName("crqiqoppwfiardhv") public suspend fun location(`value`: Output) { this.location = value } /** * @param value Specifies the network interfaces of the virtual machine. */ @JvmName("sdltexuxoxjreiti") public suspend fun networkProfile(`value`: Output) { this.networkProfile = value } /** * @param value Specifies the network profile configuration of the virtual machine. */ @JvmName("rvnpvsvwqddtfinl") public suspend fun networkProfileConfiguration(`value`: Output) { this.networkProfileConfiguration = value } /** * @param value Specifies the operating system settings for the virtual machine. */ @JvmName("bhpyiwtwdsewkasy") public suspend fun osProfile(`value`: Output) { this.osProfile = value } /** * @param value 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**. */ @JvmName("avxiqevrnrvdtqpa") public suspend fun plan(`value`: Output) { this.plan = value } /** * @param value Specifies the protection policy of the virtual machine. */ @JvmName("tekfcqmonjrgiwsh") public suspend fun protectionPolicy(`value`: Output) { this.protectionPolicy = value } /** * @param value The name of the resource group. */ @JvmName("sauphsvenhcfcpja") public suspend fun resourceGroupName(`value`: Output) { this.resourceGroupName = value } /** * @param value Specifies the Security related profile settings for the virtual machine. */ @JvmName("sgxiayjjoeyrggar") public suspend fun securityProfile(`value`: Output) { this.securityProfile = value } /** * @param value Specifies the storage settings for the virtual machine disks. */ @JvmName("fxccyykkapnvhbdw") public suspend fun storageProfile(`value`: Output) { this.storageProfile = value } /** * @param value Resource tags */ @JvmName("omgkbelvrxkddamt") public suspend fun tags(`value`: Output>) { this.tags = value } /** * @param value UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here.

Minimum api-version: 2021-03-01 */ @JvmName("ckfmaebwifeqlirp") public suspend fun userData(`value`: Output) { this.userData = value } /** * @param value The name of the VM scale set where the extension should be create or updated. */ @JvmName("snawqehduealeurt") public suspend fun vmScaleSetName(`value`: Output) { this.vmScaleSetName = value } /** * @param value Specifies additional capabilities enabled or disabled on the virtual machine in the scale set. For instance: whether the virtual machine has the capability to support attaching managed data disks with UltraSSD_LRS storage account type. */ @JvmName("ojyqjmnetoncxgny") public suspend fun additionalCapabilities(`value`: AdditionalCapabilitiesArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.additionalCapabilities = mapped } /** * @param argument Specifies additional capabilities enabled or disabled on the virtual machine in the scale set. For instance: whether the virtual machine has the capability to support attaching managed data disks with UltraSSD_LRS storage account type. */ @JvmName("apgqddnkvjrajamj") public suspend fun additionalCapabilities(argument: suspend AdditionalCapabilitiesArgsBuilder.() -> Unit) { val toBeMapped = AdditionalCapabilitiesArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.additionalCapabilities = mapped } /** * @param value Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. */ @JvmName("pbupkakdwhtedqja") public suspend fun availabilitySet(`value`: SubResourceArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.availabilitySet = mapped } /** * @param argument Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. */ @JvmName("lfkawjtgnidaksjh") public suspend fun availabilitySet(argument: suspend SubResourceArgsBuilder.() -> Unit) { val toBeMapped = SubResourceArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.availabilitySet = mapped } /** * @param value Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. */ @JvmName("iojeqoprmidkhqos") public suspend fun diagnosticsProfile(`value`: DiagnosticsProfileArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.diagnosticsProfile = mapped } /** * @param argument Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. */ @JvmName("gtskpspmglstbeca") public suspend fun diagnosticsProfile(argument: suspend DiagnosticsProfileArgsBuilder.() -> Unit) { val toBeMapped = DiagnosticsProfileArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.diagnosticsProfile = mapped } /** * @param value Specifies the hardware settings for the virtual machine. */ @JvmName("rhjcfshxfyioxnnl") public suspend fun hardwareProfile(`value`: HardwareProfileArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.hardwareProfile = mapped } /** * @param argument Specifies the hardware settings for the virtual machine. */ @JvmName("xcjkmscwgwaisntc") public suspend fun hardwareProfile(argument: suspend HardwareProfileArgsBuilder.() -> Unit) { val toBeMapped = HardwareProfileArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.hardwareProfile = mapped } /** * @param value The identity of the virtual machine, if configured. */ @JvmName("tknlftrcoxtdcgbi") public suspend fun identity(`value`: VirtualMachineIdentityArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.identity = mapped } /** * @param argument The identity of the virtual machine, if configured. */ @JvmName("igfxxavifbvkcfcj") public suspend fun identity(argument: suspend VirtualMachineIdentityArgsBuilder.() -> Unit) { val toBeMapped = VirtualMachineIdentityArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.identity = mapped } /** * @param value The instance ID of the virtual machine. */ @JvmName("pfrmuatbaiieeshy") public suspend fun instanceId(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.instanceId = mapped } /** * @param value Specifies that the image or disk that is being used was licensed on-premises.

Possible values for Windows Server operating system are:

Windows_Client

Windows_Server

Possible values for Linux Server operating system are:

RHEL_BYOS (for RHEL)

SLES_BYOS (for SUSE)

For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)

[Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)

Minimum api-version: 2015-06-15 */ @JvmName("lhscyydcvsdftbmo") public suspend fun licenseType(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.licenseType = mapped } /** * @param value Resource location */ @JvmName("vmpuyieytbxyvxxk") public suspend fun location(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.location = mapped } /** * @param value Specifies the network interfaces of the virtual machine. */ @JvmName("edxxgbhvtogfivda") public suspend fun networkProfile(`value`: NetworkProfileArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.networkProfile = mapped } /** * @param argument Specifies the network interfaces of the virtual machine. */ @JvmName("pntgievrwbtvnguw") public suspend fun networkProfile(argument: suspend NetworkProfileArgsBuilder.() -> Unit) { val toBeMapped = NetworkProfileArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.networkProfile = mapped } /** * @param value Specifies the network profile configuration of the virtual machine. */ @JvmName("lsbujdgqeguhvoqc") public suspend fun networkProfileConfiguration(`value`: VirtualMachineScaleSetVMNetworkProfileConfigurationArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.networkProfileConfiguration = mapped } /** * @param argument Specifies the network profile configuration of the virtual machine. */ @JvmName("ytsluklcxxtftcgn") public suspend fun networkProfileConfiguration(argument: suspend VirtualMachineScaleSetVMNetworkProfileConfigurationArgsBuilder.() -> Unit) { val toBeMapped = VirtualMachineScaleSetVMNetworkProfileConfigurationArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.networkProfileConfiguration = mapped } /** * @param value Specifies the operating system settings for the virtual machine. */ @JvmName("jldpdruqtcsxpqai") public suspend fun osProfile(`value`: OSProfileArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.osProfile = mapped } /** * @param argument Specifies the operating system settings for the virtual machine. */ @JvmName("lsmdojxydhxgkxax") public suspend fun osProfile(argument: suspend OSProfileArgsBuilder.() -> Unit) { val toBeMapped = OSProfileArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.osProfile = mapped } /** * @param value 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**. */ @JvmName("tvoghubtbqrqfhpw") public suspend fun plan(`value`: PlanArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.plan = mapped } /** * @param argument 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**. */ @JvmName("nutfvgfpgwgweaqj") public suspend fun plan(argument: suspend PlanArgsBuilder.() -> Unit) { val toBeMapped = PlanArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.plan = mapped } /** * @param value Specifies the protection policy of the virtual machine. */ @JvmName("sprpkcwlegerviod") public suspend fun protectionPolicy(`value`: VirtualMachineScaleSetVMProtectionPolicyArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.protectionPolicy = mapped } /** * @param argument Specifies the protection policy of the virtual machine. */ @JvmName("ydasfvmangmepiga") public suspend fun protectionPolicy(argument: suspend VirtualMachineScaleSetVMProtectionPolicyArgsBuilder.() -> Unit) { val toBeMapped = VirtualMachineScaleSetVMProtectionPolicyArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.protectionPolicy = mapped } /** * @param value The name of the resource group. */ @JvmName("xkjsrblnbmherxhd") public suspend fun resourceGroupName(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.resourceGroupName = mapped } /** * @param value Specifies the Security related profile settings for the virtual machine. */ @JvmName("llgfcwxhcuvgcfoa") public suspend fun securityProfile(`value`: SecurityProfileArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.securityProfile = mapped } /** * @param argument Specifies the Security related profile settings for the virtual machine. */ @JvmName("nfvaonvgywmkjfgc") public suspend fun securityProfile(argument: suspend SecurityProfileArgsBuilder.() -> Unit) { val toBeMapped = SecurityProfileArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.securityProfile = mapped } /** * @param value Specifies the storage settings for the virtual machine disks. */ @JvmName("xncbjdvgkvsbnyfl") public suspend fun storageProfile(`value`: StorageProfileArgs?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.storageProfile = mapped } /** * @param argument Specifies the storage settings for the virtual machine disks. */ @JvmName("lcgcjbglnvsgbsqw") public suspend fun storageProfile(argument: suspend StorageProfileArgsBuilder.() -> Unit) { val toBeMapped = StorageProfileArgsBuilder().applySuspend { argument() }.build() val mapped = of(toBeMapped) this.storageProfile = mapped } /** * @param value Resource tags */ @JvmName("oqhdickdqfxwgiaf") public suspend fun tags(`value`: Map?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.tags = mapped } /** * @param values Resource tags */ @JvmName("pmnakuuracdxalgp") public fun tags(vararg values: Pair) { val toBeMapped = values.toMap() val mapped = toBeMapped.let({ args0 -> of(args0) }) this.tags = mapped } /** * @param value UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here.

Minimum api-version: 2021-03-01 */ @JvmName("wkrmtouoveuuaabe") public suspend fun userData(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.userData = mapped } /** * @param value The name of the VM scale set where the extension should be create or updated. */ @JvmName("frbmmjmdfnldkqky") public suspend fun vmScaleSetName(`value`: String?) { val toBeMapped = value val mapped = toBeMapped?.let({ args0 -> of(args0) }) this.vmScaleSetName = mapped } internal fun build(): VirtualMachineScaleSetVMArgs = VirtualMachineScaleSetVMArgs( additionalCapabilities = additionalCapabilities, availabilitySet = availabilitySet, diagnosticsProfile = diagnosticsProfile, hardwareProfile = hardwareProfile, identity = identity, instanceId = instanceId, licenseType = licenseType, location = location, networkProfile = networkProfile, networkProfileConfiguration = networkProfileConfiguration, osProfile = osProfile, plan = plan, protectionPolicy = protectionPolicy, resourceGroupName = resourceGroupName, securityProfile = securityProfile, storageProfile = storageProfile, tags = tags, userData = userData, vmScaleSetName = vmScaleSetName, ) }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy