/// <summary>
 /// Initializes a new instance of the VirtualMachineScaleSetVMProfile
 /// class.
 /// </summary>
 /// <param name="osProfile">Specifies the operating system settings for
 /// the virtual machines in the scale set.</param>
 /// <param name="storageProfile">Specifies the storage settings for the
 /// virtual machine disks.</param>
 /// <param name="networkProfile">Specifies properties of the network
 /// interfaces of the virtual machines in the scale set.</param>
 /// <param name="diagnosticsProfile">Specifies the boot diagnostic
 /// settings state. &lt;br&gt;&lt;br&gt;Minimum api-version:
 /// 2015-06-15.</param>
 /// <param name="extensionProfile">Specifies a collection of settings
 /// for extensions installed on virtual machines in the scale
 /// set.</param>
 /// <param name="licenseType">Specifies that the image or disk that is
 /// being used was licensed on-premises. This element is only used for
 /// images that contain the Windows Server operating system.
 /// &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt;
 /// Windows_Client &lt;br&gt;&lt;br&gt; Windows_Server
 /// &lt;br&gt;&lt;br&gt; If this element is included in a request for
 /// an update, the value must match the initial value. This value
 /// cannot be updated. &lt;br&gt;&lt;br&gt; For more information, see
 /// [Azure Hybrid Use Benefit for Windows
 /// Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)
 /// &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15</param>
 public VirtualMachineScaleSetVMProfile(VirtualMachineScaleSetOSProfile osProfile = default(VirtualMachineScaleSetOSProfile), VirtualMachineScaleSetStorageProfile storageProfile = default(VirtualMachineScaleSetStorageProfile), VirtualMachineScaleSetNetworkProfile networkProfile = default(VirtualMachineScaleSetNetworkProfile), DiagnosticsProfile diagnosticsProfile = default(DiagnosticsProfile), VirtualMachineScaleSetExtensionProfile extensionProfile = default(VirtualMachineScaleSetExtensionProfile), string licenseType = default(string))
 {
     OsProfile          = osProfile;
     StorageProfile     = storageProfile;
     NetworkProfile     = networkProfile;
     DiagnosticsProfile = diagnosticsProfile;
     ExtensionProfile   = extensionProfile;
     LicenseType        = licenseType;
     CustomInit();
 }
 /// <summary>
 /// Initializes a new instance of the VirtualMachineScaleSetVMProfile
 /// class.
 /// </summary>
 /// <param name="osProfile">Specifies the operating system settings for
 /// the virtual machines in the scale set.</param>
 /// <param name="storageProfile">Specifies the storage settings for the
 /// virtual machine disks.</param>
 /// <param name="networkProfile">Specifies properties of the network
 /// interfaces of the virtual machines in the scale set.</param>
 /// <param name="diagnosticsProfile">Specifies the boot diagnostic
 /// settings state. &lt;br&gt;&lt;br&gt;Minimum api-version:
 /// 2015-06-15.</param>
 /// <param name="extensionProfile">Specifies a collection of settings
 /// for extensions installed on virtual machines in the scale
 /// set.</param>
 /// <param name="licenseType">Specifies that the image or disk that is
 /// being used was licensed on-premises. This element is only used for
 /// images that contain the Windows Server operating system.
 /// &lt;br&gt;&lt;br&gt; Possible values are: &lt;br&gt;&lt;br&gt;
 /// Windows_Client &lt;br&gt;&lt;br&gt; Windows_Server
 /// &lt;br&gt;&lt;br&gt; If this element is included in a request for
 /// an update, the value must match the initial value. This value
 /// cannot be updated. &lt;br&gt;&lt;br&gt; For more information, see
 /// [Azure Hybrid Use Benefit for Windows
 /// Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)
 /// &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15</param>
 /// <param name="priority">Specifies the priority for the virtual
 /// machines in the scale set. &lt;br&gt;&lt;br&gt;Minimum api-version:
 /// 2017-10-30-preview. Possible values include: 'Regular',
 /// 'Low'</param>
 /// <param name="evictionPolicy">Specifies the eviction policy for
 /// virtual machines in a low priority scale set.
 /// &lt;br&gt;&lt;br&gt;Minimum api-version: 2017-10-30-preview.
 /// Possible values include: 'Deallocate', 'Delete'</param>
 public VirtualMachineScaleSetVMProfile(VirtualMachineScaleSetOSProfile osProfile = default(VirtualMachineScaleSetOSProfile), VirtualMachineScaleSetStorageProfile storageProfile = default(VirtualMachineScaleSetStorageProfile), VirtualMachineScaleSetNetworkProfile networkProfile = default(VirtualMachineScaleSetNetworkProfile), DiagnosticsProfile diagnosticsProfile = default(DiagnosticsProfile), VirtualMachineScaleSetExtensionProfile extensionProfile = default(VirtualMachineScaleSetExtensionProfile), string licenseType = default(string), VirtualMachinePriorityTypes priority = default(VirtualMachinePriorityTypes), VirtualMachineEvictionPolicyTypes evictionPolicy = default(VirtualMachineEvictionPolicyTypes))
 {
     OsProfile          = osProfile;
     StorageProfile     = storageProfile;
     NetworkProfile     = networkProfile;
     DiagnosticsProfile = diagnosticsProfile;
     ExtensionProfile   = extensionProfile;
     LicenseType        = licenseType;
     Priority           = priority;
     EvictionPolicy     = evictionPolicy;
     CustomInit();
 }