# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
#
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from msrest.serialization import Model
[docs]class VirtualMachineScaleSetVMProfile(Model):
"""Describes a virtual machine scale set virtual machine profile.
:param os_profile: Specifies the operating system settings for the virtual
machines in the scale set.
:type os_profile:
~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetOSProfile
:param storage_profile: Specifies the storage settings for the virtual
machine disks.
:type storage_profile:
~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetStorageProfile
:param additional_capabilities: 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.
:type additional_capabilities:
~azure.mgmt.compute.v2018_10_01.models.AdditionalCapabilities
:param network_profile: Specifies properties of the network interfaces of
the virtual machines in the scale set.
:type network_profile:
~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetNetworkProfile
:param diagnostics_profile: Specifies the boot diagnostic settings state.
<br><br>Minimum api-version: 2015-06-15.
:type diagnostics_profile:
~azure.mgmt.compute.v2018_10_01.models.DiagnosticsProfile
:param extension_profile: Specifies a collection of settings for
extensions installed on virtual machines in the scale set.
:type extension_profile:
~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetExtensionProfile
:param license_type: 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. <br><br> Possible values are:
<br><br> Windows_Client <br><br> Windows_Server <br><br> If this element
is included in a request for an update, the value must match the initial
value. This value cannot be updated. <br><br> 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)
<br><br> Minimum api-version: 2015-06-15
:type license_type: str
:param priority: Specifies the priority for the virtual machines in the
scale set. <br><br>Minimum api-version: 2017-10-30-preview. Possible
values include: 'Regular', 'Low'
:type priority: str or
~azure.mgmt.compute.v2018_10_01.models.VirtualMachinePriorityTypes
:param eviction_policy: Specifies the eviction policy for virtual machines
in a low priority scale set. <br><br>Minimum api-version:
2017-10-30-preview. Possible values include: 'Deallocate', 'Delete'
:type eviction_policy: str or
~azure.mgmt.compute.v2018_10_01.models.VirtualMachineEvictionPolicyTypes
"""
_attribute_map = {
'os_profile': {'key': 'osProfile', 'type': 'VirtualMachineScaleSetOSProfile'},
'storage_profile': {'key': 'storageProfile', 'type': 'VirtualMachineScaleSetStorageProfile'},
'additional_capabilities': {'key': 'additionalCapabilities', 'type': 'AdditionalCapabilities'},
'network_profile': {'key': 'networkProfile', 'type': 'VirtualMachineScaleSetNetworkProfile'},
'diagnostics_profile': {'key': 'diagnosticsProfile', 'type': 'DiagnosticsProfile'},
'extension_profile': {'key': 'extensionProfile', 'type': 'VirtualMachineScaleSetExtensionProfile'},
'license_type': {'key': 'licenseType', 'type': 'str'},
'priority': {'key': 'priority', 'type': 'str'},
'eviction_policy': {'key': 'evictionPolicy', 'type': 'str'},
}
def __init__(self, *, os_profile=None, storage_profile=None, additional_capabilities=None, network_profile=None, diagnostics_profile=None, extension_profile=None, license_type: str=None, priority=None, eviction_policy=None, **kwargs) -> None:
super(VirtualMachineScaleSetVMProfile, self).__init__(**kwargs)
self.os_profile = os_profile
self.storage_profile = storage_profile
self.additional_capabilities = additional_capabilities
self.network_profile = network_profile
self.diagnostics_profile = diagnostics_profile
self.extension_profile = extension_profile
self.license_type = license_type
self.priority = priority
self.eviction_policy = eviction_policy