diff --git a/sdk/compute/azure-mgmt-compute/HISTORY.rst b/sdk/compute/azure-mgmt-compute/HISTORY.rst index 0aeee142b5ab..54d9523e537f 100644 --- a/sdk/compute/azure-mgmt-compute/HISTORY.rst +++ b/sdk/compute/azure-mgmt-compute/HISTORY.rst @@ -3,6 +3,29 @@ Release History =============== +7.0.0 (2019-08-27) +++++++++++++++++++ + +**Features** + +- Model VirtualMachineScaleSetUpdateVMProfile has a new parameter scheduled_events_profile +- Model VirtualMachineScaleSetUpdateVMProfile has a new parameter billing_profile +- Model VirtualMachine has a new parameter virtual_machine_scale_set +- Model VirtualMachine has a new parameter priority +- Model VirtualMachine has a new parameter billing_profile +- Model VirtualMachine has a new parameter eviction_policy +- Model VirtualMachineScaleSetVMProfile has a new parameter scheduled_events_profile +- Model VirtualMachineScaleSetVMProfile has a new parameter billing_profile +- Model VirtualMachineImage has a new parameter hyper_vgeneration +- Model VirtualMachineUpdate has a new parameter virtual_machine_scale_set +- Model VirtualMachineUpdate has a new parameter priority +- Model VirtualMachineUpdate has a new parameter billing_profile +- Model VirtualMachineUpdate has a new parameter eviction_policy + +**Breaking changes** + +- Operation VirtualMachineScaleSetVMsOperations.get has a new signature + 6.0.0 (2019-07-20) ++++++++++++++++++ diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2016_03_30/operations/_availability_sets_operations.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2016_03_30/operations/_availability_sets_operations.py index f2830059244a..38388879df10 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2016_03_30/operations/_availability_sets_operations.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2016_03_30/operations/_availability_sets_operations.py @@ -231,9 +231,11 @@ def get( get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}'} def list_by_subscription( - self, custom_headers=None, raw=False, **operation_config): + self, expand=None, custom_headers=None, raw=False, **operation_config): """Lists all availability sets in a subscription. + :param expand: The expand expression to apply to the operation. + :type expand: str :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response @@ -256,6 +258,8 @@ def prepare_request(next_link=None): # Construct parameters query_parameters = {} query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'str') else: url = next_link diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_03_30/operations/_availability_sets_operations.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_03_30/operations/_availability_sets_operations.py index 52780dc3f78d..c754cd9ded2a 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_03_30/operations/_availability_sets_operations.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_03_30/operations/_availability_sets_operations.py @@ -231,9 +231,11 @@ def get( get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}'} def list_by_subscription( - self, custom_headers=None, raw=False, **operation_config): + self, expand=None, custom_headers=None, raw=False, **operation_config): """Lists all availability sets in a subscription. + :param expand: The expand expression to apply to the operation. + :type expand: str :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response @@ -256,6 +258,8 @@ def prepare_request(next_link=None): # Construct parameters query_parameters = {} query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'str') else: url = next_link diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_12_01/operations/_availability_sets_operations.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_12_01/operations/_availability_sets_operations.py index b62f0424454f..15749aa0cebf 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_12_01/operations/_availability_sets_operations.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_12_01/operations/_availability_sets_operations.py @@ -300,9 +300,11 @@ def get( get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}'} def list_by_subscription( - self, custom_headers=None, raw=False, **operation_config): + self, expand=None, custom_headers=None, raw=False, **operation_config): """Lists all availability sets in a subscription. + :param expand: The expand expression to apply to the operation. + :type expand: str :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response @@ -325,6 +327,8 @@ def prepare_request(next_link=None): # Construct parameters query_parameters = {} query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'str') else: url = next_link diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_04_01/operations/_availability_sets_operations.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_04_01/operations/_availability_sets_operations.py index c582106f427e..17f2eeec20ac 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_04_01/operations/_availability_sets_operations.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_04_01/operations/_availability_sets_operations.py @@ -292,9 +292,11 @@ def get( get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}'} def list_by_subscription( - self, custom_headers=None, raw=False, **operation_config): + self, expand=None, custom_headers=None, raw=False, **operation_config): """Lists all availability sets in a subscription. + :param expand: The expand expression to apply to the operation. + :type expand: str :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response @@ -317,6 +319,8 @@ def prepare_request(next_link=None): # Construct parameters query_parameters = {} query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'str') else: url = next_link diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/_availability_sets_operations.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/_availability_sets_operations.py index 1adfe675daf5..2b491d61108f 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/_availability_sets_operations.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/_availability_sets_operations.py @@ -292,9 +292,11 @@ def get( get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}'} def list_by_subscription( - self, custom_headers=None, raw=False, **operation_config): + self, expand=None, custom_headers=None, raw=False, **operation_config): """Lists all availability sets in a subscription. + :param expand: The expand expression to apply to the operation. + :type expand: str :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response @@ -317,6 +319,8 @@ def prepare_request(next_link=None): # Construct parameters query_parameters = {} query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'str') else: url = next_link diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/_availability_sets_operations.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/_availability_sets_operations.py index 7ac69c1838e5..222a48570f54 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/_availability_sets_operations.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/_availability_sets_operations.py @@ -292,9 +292,11 @@ def get( get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}'} def list_by_subscription( - self, custom_headers=None, raw=False, **operation_config): + self, expand=None, custom_headers=None, raw=False, **operation_config): """Lists all availability sets in a subscription. + :param expand: The expand expression to apply to the operation. + :type expand: str :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response @@ -317,6 +319,8 @@ def prepare_request(next_link=None): # Construct parameters query_parameters = {} query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'str') else: url = next_link diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/__init__.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/__init__.py index f12266d5ba5e..0d46a1c70908 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/__init__.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/__init__.py @@ -19,6 +19,7 @@ from ._models_py3 import AutomaticOSUpgradeProperties from ._models_py3 import AvailabilitySet from ._models_py3 import AvailabilitySetUpdate + from ._models_py3 import BillingProfile from ._models_py3 import BootDiagnostics from ._models_py3 import BootDiagnosticsInstanceView from ._models_py3 import ComputeOperationValue @@ -97,6 +98,8 @@ from ._models_py3 import RunCommandInputParameter from ._models_py3 import RunCommandParameterDefinition from ._models_py3 import RunCommandResult + from ._models_py3 import ScaleInPolicy + from ._models_py3 import ScheduledEventsProfile from ._models_py3 import Sku from ._models_py3 import SshConfiguration from ._models_py3 import SshPublicKey @@ -104,6 +107,7 @@ from ._models_py3 import SubResource from ._models_py3 import SubResourceReadOnly from ._models_py3 import TargetRegion + from ._models_py3 import TerminateNotificationProfile from ._models_py3 import ThrottledRequestsInput from ._models_py3 import UpdateResource from ._models_py3 import UpgradeOperationHistoricalStatusInfo @@ -190,6 +194,7 @@ from ._models import AutomaticOSUpgradeProperties from ._models import AvailabilitySet from ._models import AvailabilitySetUpdate + from ._models import BillingProfile from ._models import BootDiagnostics from ._models import BootDiagnosticsInstanceView from ._models import ComputeOperationValue @@ -268,6 +273,8 @@ from ._models import RunCommandInputParameter from ._models import RunCommandParameterDefinition from ._models import RunCommandResult + from ._models import ScaleInPolicy + from ._models import ScheduledEventsProfile from ._models import Sku from ._models import SshConfiguration from ._models import SshPublicKey @@ -275,6 +282,7 @@ from ._models import SubResource from ._models import SubResourceReadOnly from ._models import TargetRegion + from ._models import TerminateNotificationProfile from ._models import ThrottledRequestsInput from ._models import UpdateResource from ._models import UpgradeOperationHistoricalStatusInfo @@ -390,11 +398,12 @@ ResourceIdentityType, MaintenanceOperationResultCodeTypes, HyperVGenerationType, + VirtualMachinePriorityTypes, + VirtualMachineEvictionPolicyTypes, UpgradeMode, + VirtualMachineScaleSetScaleInRules, OperatingSystemStateTypes, IPVersion, - VirtualMachinePriorityTypes, - VirtualMachineEvictionPolicyTypes, VirtualMachineScaleSetSkuScaleType, UpgradeState, UpgradeOperationInvoker, @@ -419,6 +428,7 @@ 'AutomaticOSUpgradeProperties', 'AvailabilitySet', 'AvailabilitySetUpdate', + 'BillingProfile', 'BootDiagnostics', 'BootDiagnosticsInstanceView', 'ComputeOperationValue', @@ -497,6 +507,8 @@ 'RunCommandInputParameter', 'RunCommandParameterDefinition', 'RunCommandResult', + 'ScaleInPolicy', + 'ScheduledEventsProfile', 'Sku', 'SshConfiguration', 'SshPublicKey', @@ -504,6 +516,7 @@ 'SubResource', 'SubResourceReadOnly', 'TargetRegion', + 'TerminateNotificationProfile', 'ThrottledRequestsInput', 'UpdateResource', 'UpgradeOperationHistoricalStatusInfo', @@ -618,11 +631,12 @@ 'ResourceIdentityType', 'MaintenanceOperationResultCodeTypes', 'HyperVGenerationType', + 'VirtualMachinePriorityTypes', + 'VirtualMachineEvictionPolicyTypes', 'UpgradeMode', + 'VirtualMachineScaleSetScaleInRules', 'OperatingSystemStateTypes', 'IPVersion', - 'VirtualMachinePriorityTypes', - 'VirtualMachineEvictionPolicyTypes', 'VirtualMachineScaleSetSkuScaleType', 'UpgradeState', 'UpgradeOperationInvoker', diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/_compute_management_client_enums.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/_compute_management_client_enums.py index 37b80e93be0f..5f6a9fdf47df 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/_compute_management_client_enums.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/_compute_management_client_enums.py @@ -291,6 +291,18 @@ class HyperVGenerationType(str, Enum): v2 = "V2" +class VirtualMachinePriorityTypes(str, Enum): + + regular = "Regular" + low = "Low" + + +class VirtualMachineEvictionPolicyTypes(str, Enum): + + deallocate = "Deallocate" + delete = "Delete" + + class UpgradeMode(str, Enum): automatic = "Automatic" @@ -298,6 +310,13 @@ class UpgradeMode(str, Enum): rolling = "Rolling" +class VirtualMachineScaleSetScaleInRules(str, Enum): + + default = "Default" + oldest_vm = "OldestVM" + newest_vm = "NewestVM" + + class OperatingSystemStateTypes(str, Enum): generalized = "Generalized" @@ -310,18 +329,6 @@ class IPVersion(str, Enum): ipv6 = "IPv6" -class VirtualMachinePriorityTypes(str, Enum): - - regular = "Regular" - low = "Low" - - -class VirtualMachineEvictionPolicyTypes(str, Enum): - - deallocate = "Deallocate" - delete = "Delete" - - class VirtualMachineScaleSetSkuScaleType(str, Enum): automatic = "Automatic" diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/_models.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/_models.py index 96dc4655ae34..9e38d116309c 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/_models.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/_models.py @@ -392,6 +392,36 @@ def __init__(self, **kwargs): self.sku = kwargs.get('sku', None) +class BillingProfile(Model): + """Specifies the billing related details of a low priority VM or VMSS. +

Minimum api-version: 2019-03-01. + + :param max_price: Specifies the maximum price you are willing to pay for a + low priority VM/VMSS. This price is in US Dollars.

This price + will be compared with the current low priority price for the VM size. + Also, the prices are compared at the time of create/update of low priority + VM/VMSS and the operation will only succeed if the maxPrice is greater + than the current low priority price.

The maxPrice will also be + used for evicting a low priority VM/VMSS if the current low priority price + goes beyond the maxPrice after creation of VM/VMSS.

Possible + values are:

- Any decimal value greater than zero. Example: + $0.01538

-1 – indicates default price to be up-to on-demand. +

You can set the maxPrice to -1 to indicate that the low priority + VM/VMSS should not be evicted for price reasons. Also, the default max + price is -1 if it is not provided by you.

Minimum api-version: + 2019-03-01. + :type max_price: float + """ + + _attribute_map = { + 'max_price': {'key': 'maxPrice', 'type': 'float'}, + } + + def __init__(self, **kwargs): + super(BillingProfile, self).__init__(**kwargs) + self.max_price = kwargs.get('max_price', None) + + class BootDiagnostics(Model): """Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

You can easily view @@ -801,7 +831,7 @@ class DedicatedHostGroup(Resource): host group. :vartype hosts: list[~azure.mgmt.compute.v2019_03_01.models.SubResourceReadOnly] - :param zones: Availability Zone to use for this host group � only single + :param zones: Availability Zone to use for this host group. Only single zone is supported. The zone can be assigned only during creation. If not provided, the group supports all zones in the region. If provided, enforces each host in the group to be in the same zone. @@ -853,7 +883,7 @@ class DedicatedHostGroupUpdate(UpdateResource): host group. :vartype hosts: list[~azure.mgmt.compute.v2019_03_01.models.SubResourceReadOnly] - :param zones: Availability Zone to use for this host group � only single + :param zones: Availability Zone to use for this host group. Only single zone is supported. The zone can be assigned only during creation. If not provided, the group supports all zones in the region. If provided, enforces each host in the group to be in the same zone. @@ -1561,8 +1591,9 @@ class GalleryImage(Resource): **Linux**. Possible values include: 'Windows', 'Linux' :type os_type: str or ~azure.mgmt.compute.v2019_03_01.models.OperatingSystemTypes - :param os_state: Required. The allowed values for OS State are - 'Generalized'. Possible values include: 'Generalized', 'Specialized' + :param os_state: Required. This property allows the user to specify + whether the virtual machines created under this image are 'Generalized' or + 'Specialized'. Possible values include: 'Generalized', 'Specialized' :type os_state: str or ~azure.mgmt.compute.v2019_03_01.models.OperatingSystemStateTypes :param end_of_life_date: The end of life date of the gallery Image @@ -1791,7 +1822,7 @@ def __init__(self, **kwargs): class GalleryImageVersionStorageProfile(Model): - """This is the storage profile of a gallery Image Version. + """This is the storage profile of a Gallery Image Version. Variables are only populated by the server, and will be ignored when sending a request. @@ -3633,6 +3664,57 @@ def __init__(self, **kwargs): self.value = kwargs.get('value', None) +class ScaleInPolicy(Model): + """Describes a scale-in policy for a virtual machine scale set. + + :param rules: The rules to be followed when scaling-in a virtual machine + scale set.

Possible values are:

**Default** When a + virtual machine scale set is scaled in, the scale set will first be + balanced across zones if it is a zonal scale set. Then, it will be + balanced across Fault Domains as far as possible. Within each Fault + Domain, the virtual machines chosen for removal will be the newest ones + that are not protected from scale-in.

**OldestVM** When a virtual + machine scale set is being scaled-in, the oldest virtual machines that are + not protected from scale-in will be chosen for removal. For zonal virtual + machine scale sets, the scale set will first be balanced across zones. + Within each zone, the oldest virtual machines that are not protected will + be chosen for removal.

**NewestVM** When a virtual machine scale + set is being scaled-in, the newest virtual machines that are not protected + from scale-in will be chosen for removal. For zonal virtual machine scale + sets, the scale set will first be balanced across zones. Within each zone, + the newest virtual machines that are not protected will be chosen for + removal.

+ :type rules: list[str or + ~azure.mgmt.compute.v2019_03_01.models.VirtualMachineScaleSetScaleInRules] + """ + + _attribute_map = { + 'rules': {'key': 'rules', 'type': '[str]'}, + } + + def __init__(self, **kwargs): + super(ScaleInPolicy, self).__init__(**kwargs) + self.rules = kwargs.get('rules', None) + + +class ScheduledEventsProfile(Model): + """ScheduledEventsProfile. + + :param terminate_notification_profile: Specifies Terminate Scheduled Event + related configurations. + :type terminate_notification_profile: + ~azure.mgmt.compute.v2019_03_01.models.TerminateNotificationProfile + """ + + _attribute_map = { + 'terminate_notification_profile': {'key': 'terminateNotificationProfile', 'type': 'TerminateNotificationProfile'}, + } + + def __init__(self, **kwargs): + super(ScheduledEventsProfile, self).__init__(**kwargs) + self.terminate_notification_profile = kwargs.get('terminate_notification_profile', None) + + class Sku(Model): """Describes a virtual machine scale set sku. @@ -3796,6 +3878,31 @@ def __init__(self, **kwargs): self.storage_account_type = kwargs.get('storage_account_type', None) +class TerminateNotificationProfile(Model): + """TerminateNotificationProfile. + + :param not_before_timeout: Configurable length of time a Virtual Machine + being deleted will have to potentially approve the Terminate Scheduled + Event before the event is auto approved (timed out). The configuration + must be specified in ISO 8601 format, the default value is 5 minutes + (PT5M) + :type not_before_timeout: str + :param enable: Specifies whether the Terminate Scheduled event is enabled + or disabled. + :type enable: bool + """ + + _attribute_map = { + 'not_before_timeout': {'key': 'notBeforeTimeout', 'type': 'str'}, + 'enable': {'key': 'enable', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(TerminateNotificationProfile, self).__init__(**kwargs) + self.not_before_timeout = kwargs.get('not_before_timeout', None) + self.enable = kwargs.get('enable', None) + + class ThrottledRequestsInput(LogAnalyticsInputBase): """Api request input for LogAnalytics getThrottledRequests Api. @@ -4216,13 +4323,39 @@ class VirtualMachine(Resource): maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)

Currently, a VM can only be added to availability set at creation - time. An existing VM cannot be added to an availability set. + time. An existing VM cannot be added to an availability set.

This + property cannot exist along with a non-null + properties.virtualMachineScaleSet reference. :type availability_set: ~azure.mgmt.compute.v2019_03_01.models.SubResource + :param virtual_machine_scale_set: Specifies information about the virtual + machine scale set that the virtual machine should be assigned to. Virtual + machines specified in the same virtual machine scale set are allocated to + different nodes to maximize availability. Currently, a VM can only be + added to virtual machine scale set at creation time. An existing VM cannot + be added to a virtual machine scale set.

This property cannot + exist along with a non-null properties.availabilitySet reference. +

Minimum api‐version: 2019‐03‐01 + :type virtual_machine_scale_set: + ~azure.mgmt.compute.v2019_03_01.models.SubResource :param proximity_placement_group: Specifies information about the proximity placement group that the virtual machine should be assigned to.

Minimum api-version: 2018-04-01. :type proximity_placement_group: ~azure.mgmt.compute.v2019_03_01.models.SubResource + :param priority: Specifies the priority for the virtual machine. +

Minimum api-version: 2019-03-01. Possible values include: + 'Regular', 'Low' + :type priority: str or + ~azure.mgmt.compute.v2019_03_01.models.VirtualMachinePriorityTypes + :param eviction_policy: Specifies the eviction policy for the low priority + virtual machine. Only supported value is 'Deallocate'.

Minimum + api-version: 2019-03-01. Possible values include: 'Deallocate', 'Delete' + :type eviction_policy: str or + ~azure.mgmt.compute.v2019_03_01.models.VirtualMachineEvictionPolicyTypes + :param billing_profile: Specifies the billing related details of a low + priority virtual machine.

Minimum api-version: 2019-03-01. + :type billing_profile: + ~azure.mgmt.compute.v2019_03_01.models.BillingProfile :param host: Specifies information about the dedicated host that the virtual machine resides in.

Minimum api-version: 2018-10-01. :type host: ~azure.mgmt.compute.v2019_03_01.models.SubResource @@ -4281,7 +4414,11 @@ class VirtualMachine(Resource): 'network_profile': {'key': 'properties.networkProfile', 'type': 'NetworkProfile'}, 'diagnostics_profile': {'key': 'properties.diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 'availability_set': {'key': 'properties.availabilitySet', 'type': 'SubResource'}, + 'virtual_machine_scale_set': {'key': 'properties.virtualMachineScaleSet', 'type': 'SubResource'}, 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, + 'priority': {'key': 'properties.priority', 'type': 'str'}, + 'eviction_policy': {'key': 'properties.evictionPolicy', 'type': 'str'}, + 'billing_profile': {'key': 'properties.billingProfile', 'type': 'BillingProfile'}, 'host': {'key': 'properties.host', 'type': 'SubResource'}, 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 'instance_view': {'key': 'properties.instanceView', 'type': 'VirtualMachineInstanceView'}, @@ -4302,7 +4439,11 @@ def __init__(self, **kwargs): self.network_profile = kwargs.get('network_profile', None) self.diagnostics_profile = kwargs.get('diagnostics_profile', None) self.availability_set = kwargs.get('availability_set', None) + self.virtual_machine_scale_set = kwargs.get('virtual_machine_scale_set', None) self.proximity_placement_group = kwargs.get('proximity_placement_group', None) + self.priority = kwargs.get('priority', None) + self.eviction_policy = kwargs.get('eviction_policy', None) + self.billing_profile = kwargs.get('billing_profile', None) self.host = kwargs.get('host', None) self.provisioning_state = None self.instance_view = None @@ -4857,6 +4998,9 @@ class VirtualMachineImage(VirtualMachineImageResource): :param automatic_os_upgrade_properties: :type automatic_os_upgrade_properties: ~azure.mgmt.compute.v2019_03_01.models.AutomaticOSUpgradeProperties + :param hyper_vgeneration: Possible values include: 'V1', 'V2' + :type hyper_vgeneration: str or + ~azure.mgmt.compute.v2019_03_01.models.HyperVGenerationTypes """ _validation = { @@ -4873,6 +5017,7 @@ class VirtualMachineImage(VirtualMachineImageResource): 'os_disk_image': {'key': 'properties.osDiskImage', 'type': 'OSDiskImage'}, 'data_disk_images': {'key': 'properties.dataDiskImages', 'type': '[DataDiskImage]'}, 'automatic_os_upgrade_properties': {'key': 'properties.automaticOSUpgradeProperties', 'type': 'AutomaticOSUpgradeProperties'}, + 'hyper_vgeneration': {'key': 'properties.hyperVGeneration', 'type': 'str'}, } def __init__(self, **kwargs): @@ -4881,6 +5026,7 @@ def __init__(self, **kwargs): self.os_disk_image = kwargs.get('os_disk_image', None) self.data_disk_images = kwargs.get('data_disk_images', None) self.automatic_os_upgrade_properties = kwargs.get('automatic_os_upgrade_properties', None) + self.hyper_vgeneration = kwargs.get('hyper_vgeneration', None) class VirtualMachineInstanceView(Model): @@ -5047,6 +5193,11 @@ class VirtualMachineScaleSet(Resource): attaching managed data disks with UltraSSD_LRS storage account type. :type additional_capabilities: ~azure.mgmt.compute.v2019_03_01.models.AdditionalCapabilities + :param scale_in_policy: Specifies the scale-in policy that decides which + virtual machines are chosen for removal when a Virtual Machine Scale Set + is scaled-in. + :type scale_in_policy: + ~azure.mgmt.compute.v2019_03_01.models.ScaleInPolicy :param identity: The identity of the virtual machine scale set, if configured. :type identity: @@ -5083,6 +5234,7 @@ class VirtualMachineScaleSet(Resource): 'platform_fault_domain_count': {'key': 'properties.platformFaultDomainCount', 'type': 'int'}, 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, 'additional_capabilities': {'key': 'properties.additionalCapabilities', 'type': 'AdditionalCapabilities'}, + 'scale_in_policy': {'key': 'properties.scaleInPolicy', 'type': 'ScaleInPolicy'}, 'identity': {'key': 'identity', 'type': 'VirtualMachineScaleSetIdentity'}, 'zones': {'key': 'zones', 'type': '[str]'}, } @@ -5102,6 +5254,7 @@ def __init__(self, **kwargs): self.platform_fault_domain_count = kwargs.get('platform_fault_domain_count', None) self.proximity_placement_group = kwargs.get('proximity_placement_group', None) self.additional_capabilities = kwargs.get('additional_capabilities', None) + self.scale_in_policy = kwargs.get('scale_in_policy', None) self.identity = kwargs.get('identity', None) self.zones = kwargs.get('zones', None) @@ -6023,6 +6176,11 @@ class VirtualMachineScaleSetUpdate(UpdateResource): attaching managed data disks with UltraSSD_LRS storage account type. :type additional_capabilities: ~azure.mgmt.compute.v2019_03_01.models.AdditionalCapabilities + :param scale_in_policy: Specifies the scale-in policy that decides which + virtual machines are chosen for removal when a Virtual Machine Scale Set + is scaled-in. + :type scale_in_policy: + ~azure.mgmt.compute.v2019_03_01.models.ScaleInPolicy :param identity: The identity of the virtual machine scale set, if configured. :type identity: @@ -6038,6 +6196,7 @@ class VirtualMachineScaleSetUpdate(UpdateResource): 'overprovision': {'key': 'properties.overprovision', 'type': 'bool'}, 'single_placement_group': {'key': 'properties.singlePlacementGroup', 'type': 'bool'}, 'additional_capabilities': {'key': 'properties.additionalCapabilities', 'type': 'AdditionalCapabilities'}, + 'scale_in_policy': {'key': 'properties.scaleInPolicy', 'type': 'ScaleInPolicy'}, 'identity': {'key': 'identity', 'type': 'VirtualMachineScaleSetIdentity'}, } @@ -6050,6 +6209,7 @@ def __init__(self, **kwargs): self.overprovision = kwargs.get('overprovision', None) self.single_placement_group = kwargs.get('single_placement_group', None) self.additional_capabilities = kwargs.get('additional_capabilities', None) + self.scale_in_policy = kwargs.get('scale_in_policy', None) self.identity = kwargs.get('identity', None) @@ -6336,6 +6496,14 @@ class VirtualMachineScaleSetUpdateVMProfile(Model): :param license_type: The license type, which is for bring your own license scenario. :type license_type: str + :param billing_profile: Specifies the billing related details of a low + priority VMSS.

Minimum api-version: 2019-03-01. + :type billing_profile: + ~azure.mgmt.compute.v2019_03_01.models.BillingProfile + :param scheduled_events_profile: Specifies Scheduled Event related + configurations. + :type scheduled_events_profile: + ~azure.mgmt.compute.v2019_03_01.models.ScheduledEventsProfile """ _attribute_map = { @@ -6345,6 +6513,8 @@ class VirtualMachineScaleSetUpdateVMProfile(Model): 'diagnostics_profile': {'key': 'diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 'extension_profile': {'key': 'extensionProfile', 'type': 'VirtualMachineScaleSetExtensionProfile'}, 'license_type': {'key': 'licenseType', 'type': 'str'}, + 'billing_profile': {'key': 'billingProfile', 'type': 'BillingProfile'}, + 'scheduled_events_profile': {'key': 'scheduledEventsProfile', 'type': 'ScheduledEventsProfile'}, } def __init__(self, **kwargs): @@ -6355,6 +6525,8 @@ def __init__(self, **kwargs): self.diagnostics_profile = kwargs.get('diagnostics_profile', None) self.extension_profile = kwargs.get('extension_profile', None) self.license_type = kwargs.get('license_type', None) + self.billing_profile = kwargs.get('billing_profile', None) + self.scheduled_events_profile = kwargs.get('scheduled_events_profile', None) class VirtualMachineScaleSetVM(Resource): @@ -6736,6 +6908,14 @@ class VirtualMachineScaleSetVMProfile(Model): 2017-10-30-preview. Possible values include: 'Deallocate', 'Delete' :type eviction_policy: str or ~azure.mgmt.compute.v2019_03_01.models.VirtualMachineEvictionPolicyTypes + :param billing_profile: Specifies the billing related details of a low + priority VMSS.

Minimum api-version: 2019-03-01. + :type billing_profile: + ~azure.mgmt.compute.v2019_03_01.models.BillingProfile + :param scheduled_events_profile: Specifies Scheduled Event related + configurations. + :type scheduled_events_profile: + ~azure.mgmt.compute.v2019_03_01.models.ScheduledEventsProfile """ _attribute_map = { @@ -6747,6 +6927,8 @@ class VirtualMachineScaleSetVMProfile(Model): 'license_type': {'key': 'licenseType', 'type': 'str'}, 'priority': {'key': 'priority', 'type': 'str'}, 'eviction_policy': {'key': 'evictionPolicy', 'type': 'str'}, + 'billing_profile': {'key': 'billingProfile', 'type': 'BillingProfile'}, + 'scheduled_events_profile': {'key': 'scheduledEventsProfile', 'type': 'ScheduledEventsProfile'}, } def __init__(self, **kwargs): @@ -6759,6 +6941,8 @@ def __init__(self, **kwargs): self.license_type = kwargs.get('license_type', None) self.priority = kwargs.get('priority', None) self.eviction_policy = kwargs.get('eviction_policy', None) + self.billing_profile = kwargs.get('billing_profile', None) + self.scheduled_events_profile = kwargs.get('scheduled_events_profile', None) class VirtualMachineScaleSetVMProtectionPolicy(Model): @@ -6903,13 +7087,39 @@ class VirtualMachineUpdate(UpdateResource): maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)

Currently, a VM can only be added to availability set at creation - time. An existing VM cannot be added to an availability set. + time. An existing VM cannot be added to an availability set.

This + property cannot exist along with a non-null + properties.virtualMachineScaleSet reference. :type availability_set: ~azure.mgmt.compute.v2019_03_01.models.SubResource + :param virtual_machine_scale_set: Specifies information about the virtual + machine scale set that the virtual machine should be assigned to. Virtual + machines specified in the same virtual machine scale set are allocated to + different nodes to maximize availability. Currently, a VM can only be + added to virtual machine scale set at creation time. An existing VM cannot + be added to a virtual machine scale set.

This property cannot + exist along with a non-null properties.availabilitySet reference. +

Minimum api‐version: 2019‐03‐01 + :type virtual_machine_scale_set: + ~azure.mgmt.compute.v2019_03_01.models.SubResource :param proximity_placement_group: Specifies information about the proximity placement group that the virtual machine should be assigned to.

Minimum api-version: 2018-04-01. :type proximity_placement_group: ~azure.mgmt.compute.v2019_03_01.models.SubResource + :param priority: Specifies the priority for the virtual machine. +

Minimum api-version: 2019-03-01. Possible values include: + 'Regular', 'Low' + :type priority: str or + ~azure.mgmt.compute.v2019_03_01.models.VirtualMachinePriorityTypes + :param eviction_policy: Specifies the eviction policy for the low priority + virtual machine. Only supported value is 'Deallocate'.

Minimum + api-version: 2019-03-01. Possible values include: 'Deallocate', 'Delete' + :type eviction_policy: str or + ~azure.mgmt.compute.v2019_03_01.models.VirtualMachineEvictionPolicyTypes + :param billing_profile: Specifies the billing related details of a low + priority virtual machine.

Minimum api-version: 2019-03-01. + :type billing_profile: + ~azure.mgmt.compute.v2019_03_01.models.BillingProfile :param host: Specifies information about the dedicated host that the virtual machine resides in.

Minimum api-version: 2018-10-01. :type host: ~azure.mgmt.compute.v2019_03_01.models.SubResource @@ -6956,7 +7166,11 @@ class VirtualMachineUpdate(UpdateResource): 'network_profile': {'key': 'properties.networkProfile', 'type': 'NetworkProfile'}, 'diagnostics_profile': {'key': 'properties.diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 'availability_set': {'key': 'properties.availabilitySet', 'type': 'SubResource'}, + 'virtual_machine_scale_set': {'key': 'properties.virtualMachineScaleSet', 'type': 'SubResource'}, 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, + 'priority': {'key': 'properties.priority', 'type': 'str'}, + 'eviction_policy': {'key': 'properties.evictionPolicy', 'type': 'str'}, + 'billing_profile': {'key': 'properties.billingProfile', 'type': 'BillingProfile'}, 'host': {'key': 'properties.host', 'type': 'SubResource'}, 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 'instance_view': {'key': 'properties.instanceView', 'type': 'VirtualMachineInstanceView'}, @@ -6976,7 +7190,11 @@ def __init__(self, **kwargs): self.network_profile = kwargs.get('network_profile', None) self.diagnostics_profile = kwargs.get('diagnostics_profile', None) self.availability_set = kwargs.get('availability_set', None) + self.virtual_machine_scale_set = kwargs.get('virtual_machine_scale_set', None) self.proximity_placement_group = kwargs.get('proximity_placement_group', None) + self.priority = kwargs.get('priority', None) + self.eviction_policy = kwargs.get('eviction_policy', None) + self.billing_profile = kwargs.get('billing_profile', None) self.host = kwargs.get('host', None) self.provisioning_state = None self.instance_view = None diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/_models_py3.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/_models_py3.py index 8a6625117983..1ecd9cf229d6 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/_models_py3.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/models/_models_py3.py @@ -392,6 +392,36 @@ def __init__(self, *, tags=None, platform_update_domain_count: int=None, platfor self.sku = sku +class BillingProfile(Model): + """Specifies the billing related details of a low priority VM or VMSS. +

Minimum api-version: 2019-03-01. + + :param max_price: Specifies the maximum price you are willing to pay for a + low priority VM/VMSS. This price is in US Dollars.

This price + will be compared with the current low priority price for the VM size. + Also, the prices are compared at the time of create/update of low priority + VM/VMSS and the operation will only succeed if the maxPrice is greater + than the current low priority price.

The maxPrice will also be + used for evicting a low priority VM/VMSS if the current low priority price + goes beyond the maxPrice after creation of VM/VMSS.

Possible + values are:

- Any decimal value greater than zero. Example: + $0.01538

-1 – indicates default price to be up-to on-demand. +

You can set the maxPrice to -1 to indicate that the low priority + VM/VMSS should not be evicted for price reasons. Also, the default max + price is -1 if it is not provided by you.

Minimum api-version: + 2019-03-01. + :type max_price: float + """ + + _attribute_map = { + 'max_price': {'key': 'maxPrice', 'type': 'float'}, + } + + def __init__(self, *, max_price: float=None, **kwargs) -> None: + super(BillingProfile, self).__init__(**kwargs) + self.max_price = max_price + + class BootDiagnostics(Model): """Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

You can easily view @@ -801,7 +831,7 @@ class DedicatedHostGroup(Resource): host group. :vartype hosts: list[~azure.mgmt.compute.v2019_03_01.models.SubResourceReadOnly] - :param zones: Availability Zone to use for this host group � only single + :param zones: Availability Zone to use for this host group. Only single zone is supported. The zone can be assigned only during creation. If not provided, the group supports all zones in the region. If provided, enforces each host in the group to be in the same zone. @@ -853,7 +883,7 @@ class DedicatedHostGroupUpdate(UpdateResource): host group. :vartype hosts: list[~azure.mgmt.compute.v2019_03_01.models.SubResourceReadOnly] - :param zones: Availability Zone to use for this host group � only single + :param zones: Availability Zone to use for this host group. Only single zone is supported. The zone can be assigned only during creation. If not provided, the group supports all zones in the region. If provided, enforces each host in the group to be in the same zone. @@ -1561,8 +1591,9 @@ class GalleryImage(Resource): **Linux**. Possible values include: 'Windows', 'Linux' :type os_type: str or ~azure.mgmt.compute.v2019_03_01.models.OperatingSystemTypes - :param os_state: Required. The allowed values for OS State are - 'Generalized'. Possible values include: 'Generalized', 'Specialized' + :param os_state: Required. This property allows the user to specify + whether the virtual machines created under this image are 'Generalized' or + 'Specialized'. Possible values include: 'Generalized', 'Specialized' :type os_state: str or ~azure.mgmt.compute.v2019_03_01.models.OperatingSystemStateTypes :param end_of_life_date: The end of life date of the gallery Image @@ -1791,7 +1822,7 @@ def __init__(self, *, source, target_regions=None, replica_count: int=None, excl class GalleryImageVersionStorageProfile(Model): - """This is the storage profile of a gallery Image Version. + """This is the storage profile of a Gallery Image Version. Variables are only populated by the server, and will be ignored when sending a request. @@ -3633,6 +3664,57 @@ def __init__(self, *, value=None, **kwargs) -> None: self.value = value +class ScaleInPolicy(Model): + """Describes a scale-in policy for a virtual machine scale set. + + :param rules: The rules to be followed when scaling-in a virtual machine + scale set.

Possible values are:

**Default** When a + virtual machine scale set is scaled in, the scale set will first be + balanced across zones if it is a zonal scale set. Then, it will be + balanced across Fault Domains as far as possible. Within each Fault + Domain, the virtual machines chosen for removal will be the newest ones + that are not protected from scale-in.

**OldestVM** When a virtual + machine scale set is being scaled-in, the oldest virtual machines that are + not protected from scale-in will be chosen for removal. For zonal virtual + machine scale sets, the scale set will first be balanced across zones. + Within each zone, the oldest virtual machines that are not protected will + be chosen for removal.

**NewestVM** When a virtual machine scale + set is being scaled-in, the newest virtual machines that are not protected + from scale-in will be chosen for removal. For zonal virtual machine scale + sets, the scale set will first be balanced across zones. Within each zone, + the newest virtual machines that are not protected will be chosen for + removal.

+ :type rules: list[str or + ~azure.mgmt.compute.v2019_03_01.models.VirtualMachineScaleSetScaleInRules] + """ + + _attribute_map = { + 'rules': {'key': 'rules', 'type': '[str]'}, + } + + def __init__(self, *, rules=None, **kwargs) -> None: + super(ScaleInPolicy, self).__init__(**kwargs) + self.rules = rules + + +class ScheduledEventsProfile(Model): + """ScheduledEventsProfile. + + :param terminate_notification_profile: Specifies Terminate Scheduled Event + related configurations. + :type terminate_notification_profile: + ~azure.mgmt.compute.v2019_03_01.models.TerminateNotificationProfile + """ + + _attribute_map = { + 'terminate_notification_profile': {'key': 'terminateNotificationProfile', 'type': 'TerminateNotificationProfile'}, + } + + def __init__(self, *, terminate_notification_profile=None, **kwargs) -> None: + super(ScheduledEventsProfile, self).__init__(**kwargs) + self.terminate_notification_profile = terminate_notification_profile + + class Sku(Model): """Describes a virtual machine scale set sku. @@ -3796,6 +3878,31 @@ def __init__(self, *, name: str, regional_replica_count: int=None, storage_accou self.storage_account_type = storage_account_type +class TerminateNotificationProfile(Model): + """TerminateNotificationProfile. + + :param not_before_timeout: Configurable length of time a Virtual Machine + being deleted will have to potentially approve the Terminate Scheduled + Event before the event is auto approved (timed out). The configuration + must be specified in ISO 8601 format, the default value is 5 minutes + (PT5M) + :type not_before_timeout: str + :param enable: Specifies whether the Terminate Scheduled event is enabled + or disabled. + :type enable: bool + """ + + _attribute_map = { + 'not_before_timeout': {'key': 'notBeforeTimeout', 'type': 'str'}, + 'enable': {'key': 'enable', 'type': 'bool'}, + } + + def __init__(self, *, not_before_timeout: str=None, enable: bool=None, **kwargs) -> None: + super(TerminateNotificationProfile, self).__init__(**kwargs) + self.not_before_timeout = not_before_timeout + self.enable = enable + + class ThrottledRequestsInput(LogAnalyticsInputBase): """Api request input for LogAnalytics getThrottledRequests Api. @@ -4216,13 +4323,39 @@ class VirtualMachine(Resource): maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)

Currently, a VM can only be added to availability set at creation - time. An existing VM cannot be added to an availability set. + time. An existing VM cannot be added to an availability set.

This + property cannot exist along with a non-null + properties.virtualMachineScaleSet reference. :type availability_set: ~azure.mgmt.compute.v2019_03_01.models.SubResource + :param virtual_machine_scale_set: Specifies information about the virtual + machine scale set that the virtual machine should be assigned to. Virtual + machines specified in the same virtual machine scale set are allocated to + different nodes to maximize availability. Currently, a VM can only be + added to virtual machine scale set at creation time. An existing VM cannot + be added to a virtual machine scale set.

This property cannot + exist along with a non-null properties.availabilitySet reference. +

Minimum api‐version: 2019‐03‐01 + :type virtual_machine_scale_set: + ~azure.mgmt.compute.v2019_03_01.models.SubResource :param proximity_placement_group: Specifies information about the proximity placement group that the virtual machine should be assigned to.

Minimum api-version: 2018-04-01. :type proximity_placement_group: ~azure.mgmt.compute.v2019_03_01.models.SubResource + :param priority: Specifies the priority for the virtual machine. +

Minimum api-version: 2019-03-01. Possible values include: + 'Regular', 'Low' + :type priority: str or + ~azure.mgmt.compute.v2019_03_01.models.VirtualMachinePriorityTypes + :param eviction_policy: Specifies the eviction policy for the low priority + virtual machine. Only supported value is 'Deallocate'.

Minimum + api-version: 2019-03-01. Possible values include: 'Deallocate', 'Delete' + :type eviction_policy: str or + ~azure.mgmt.compute.v2019_03_01.models.VirtualMachineEvictionPolicyTypes + :param billing_profile: Specifies the billing related details of a low + priority virtual machine.

Minimum api-version: 2019-03-01. + :type billing_profile: + ~azure.mgmt.compute.v2019_03_01.models.BillingProfile :param host: Specifies information about the dedicated host that the virtual machine resides in.

Minimum api-version: 2018-10-01. :type host: ~azure.mgmt.compute.v2019_03_01.models.SubResource @@ -4281,7 +4414,11 @@ class VirtualMachine(Resource): 'network_profile': {'key': 'properties.networkProfile', 'type': 'NetworkProfile'}, 'diagnostics_profile': {'key': 'properties.diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 'availability_set': {'key': 'properties.availabilitySet', 'type': 'SubResource'}, + 'virtual_machine_scale_set': {'key': 'properties.virtualMachineScaleSet', 'type': 'SubResource'}, 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, + 'priority': {'key': 'properties.priority', 'type': 'str'}, + 'eviction_policy': {'key': 'properties.evictionPolicy', 'type': 'str'}, + 'billing_profile': {'key': 'properties.billingProfile', 'type': 'BillingProfile'}, 'host': {'key': 'properties.host', 'type': 'SubResource'}, 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 'instance_view': {'key': 'properties.instanceView', 'type': 'VirtualMachineInstanceView'}, @@ -4292,7 +4429,7 @@ class VirtualMachine(Resource): 'zones': {'key': 'zones', 'type': '[str]'}, } - def __init__(self, *, location: str, tags=None, plan=None, hardware_profile=None, storage_profile=None, additional_capabilities=None, os_profile=None, network_profile=None, diagnostics_profile=None, availability_set=None, proximity_placement_group=None, host=None, license_type: str=None, identity=None, zones=None, **kwargs) -> None: + def __init__(self, *, location: str, tags=None, plan=None, hardware_profile=None, storage_profile=None, additional_capabilities=None, os_profile=None, network_profile=None, diagnostics_profile=None, availability_set=None, virtual_machine_scale_set=None, proximity_placement_group=None, priority=None, eviction_policy=None, billing_profile=None, host=None, license_type: str=None, identity=None, zones=None, **kwargs) -> None: super(VirtualMachine, self).__init__(location=location, tags=tags, **kwargs) self.plan = plan self.hardware_profile = hardware_profile @@ -4302,7 +4439,11 @@ def __init__(self, *, location: str, tags=None, plan=None, hardware_profile=None self.network_profile = network_profile self.diagnostics_profile = diagnostics_profile self.availability_set = availability_set + self.virtual_machine_scale_set = virtual_machine_scale_set self.proximity_placement_group = proximity_placement_group + self.priority = priority + self.eviction_policy = eviction_policy + self.billing_profile = billing_profile self.host = host self.provisioning_state = None self.instance_view = None @@ -4857,6 +4998,9 @@ class VirtualMachineImage(VirtualMachineImageResource): :param automatic_os_upgrade_properties: :type automatic_os_upgrade_properties: ~azure.mgmt.compute.v2019_03_01.models.AutomaticOSUpgradeProperties + :param hyper_vgeneration: Possible values include: 'V1', 'V2' + :type hyper_vgeneration: str or + ~azure.mgmt.compute.v2019_03_01.models.HyperVGenerationTypes """ _validation = { @@ -4873,14 +5017,16 @@ class VirtualMachineImage(VirtualMachineImageResource): 'os_disk_image': {'key': 'properties.osDiskImage', 'type': 'OSDiskImage'}, 'data_disk_images': {'key': 'properties.dataDiskImages', 'type': '[DataDiskImage]'}, 'automatic_os_upgrade_properties': {'key': 'properties.automaticOSUpgradeProperties', 'type': 'AutomaticOSUpgradeProperties'}, + 'hyper_vgeneration': {'key': 'properties.hyperVGeneration', 'type': 'str'}, } - def __init__(self, *, name: str, location: str, id: str=None, tags=None, plan=None, os_disk_image=None, data_disk_images=None, automatic_os_upgrade_properties=None, **kwargs) -> None: + def __init__(self, *, name: str, location: str, id: str=None, tags=None, plan=None, os_disk_image=None, data_disk_images=None, automatic_os_upgrade_properties=None, hyper_vgeneration=None, **kwargs) -> None: super(VirtualMachineImage, self).__init__(id=id, name=name, location=location, tags=tags, **kwargs) self.plan = plan self.os_disk_image = os_disk_image self.data_disk_images = data_disk_images self.automatic_os_upgrade_properties = automatic_os_upgrade_properties + self.hyper_vgeneration = hyper_vgeneration class VirtualMachineInstanceView(Model): @@ -5047,6 +5193,11 @@ class VirtualMachineScaleSet(Resource): attaching managed data disks with UltraSSD_LRS storage account type. :type additional_capabilities: ~azure.mgmt.compute.v2019_03_01.models.AdditionalCapabilities + :param scale_in_policy: Specifies the scale-in policy that decides which + virtual machines are chosen for removal when a Virtual Machine Scale Set + is scaled-in. + :type scale_in_policy: + ~azure.mgmt.compute.v2019_03_01.models.ScaleInPolicy :param identity: The identity of the virtual machine scale set, if configured. :type identity: @@ -5083,11 +5234,12 @@ class VirtualMachineScaleSet(Resource): 'platform_fault_domain_count': {'key': 'properties.platformFaultDomainCount', 'type': 'int'}, 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, 'additional_capabilities': {'key': 'properties.additionalCapabilities', 'type': 'AdditionalCapabilities'}, + 'scale_in_policy': {'key': 'properties.scaleInPolicy', 'type': 'ScaleInPolicy'}, 'identity': {'key': 'identity', 'type': 'VirtualMachineScaleSetIdentity'}, 'zones': {'key': 'zones', 'type': '[str]'}, } - def __init__(self, *, location: str, tags=None, sku=None, plan=None, upgrade_policy=None, virtual_machine_profile=None, overprovision: bool=None, do_not_run_extensions_on_overprovisioned_vms: bool=None, single_placement_group: bool=None, zone_balance: bool=None, platform_fault_domain_count: int=None, proximity_placement_group=None, additional_capabilities=None, identity=None, zones=None, **kwargs) -> None: + def __init__(self, *, location: str, tags=None, sku=None, plan=None, upgrade_policy=None, virtual_machine_profile=None, overprovision: bool=None, do_not_run_extensions_on_overprovisioned_vms: bool=None, single_placement_group: bool=None, zone_balance: bool=None, platform_fault_domain_count: int=None, proximity_placement_group=None, additional_capabilities=None, scale_in_policy=None, identity=None, zones=None, **kwargs) -> None: super(VirtualMachineScaleSet, self).__init__(location=location, tags=tags, **kwargs) self.sku = sku self.plan = plan @@ -5102,6 +5254,7 @@ def __init__(self, *, location: str, tags=None, sku=None, plan=None, upgrade_pol self.platform_fault_domain_count = platform_fault_domain_count self.proximity_placement_group = proximity_placement_group self.additional_capabilities = additional_capabilities + self.scale_in_policy = scale_in_policy self.identity = identity self.zones = zones @@ -6023,6 +6176,11 @@ class VirtualMachineScaleSetUpdate(UpdateResource): attaching managed data disks with UltraSSD_LRS storage account type. :type additional_capabilities: ~azure.mgmt.compute.v2019_03_01.models.AdditionalCapabilities + :param scale_in_policy: Specifies the scale-in policy that decides which + virtual machines are chosen for removal when a Virtual Machine Scale Set + is scaled-in. + :type scale_in_policy: + ~azure.mgmt.compute.v2019_03_01.models.ScaleInPolicy :param identity: The identity of the virtual machine scale set, if configured. :type identity: @@ -6038,10 +6196,11 @@ class VirtualMachineScaleSetUpdate(UpdateResource): 'overprovision': {'key': 'properties.overprovision', 'type': 'bool'}, 'single_placement_group': {'key': 'properties.singlePlacementGroup', 'type': 'bool'}, 'additional_capabilities': {'key': 'properties.additionalCapabilities', 'type': 'AdditionalCapabilities'}, + 'scale_in_policy': {'key': 'properties.scaleInPolicy', 'type': 'ScaleInPolicy'}, 'identity': {'key': 'identity', 'type': 'VirtualMachineScaleSetIdentity'}, } - def __init__(self, *, tags=None, sku=None, plan=None, upgrade_policy=None, virtual_machine_profile=None, overprovision: bool=None, single_placement_group: bool=None, additional_capabilities=None, identity=None, **kwargs) -> None: + def __init__(self, *, tags=None, sku=None, plan=None, upgrade_policy=None, virtual_machine_profile=None, overprovision: bool=None, single_placement_group: bool=None, additional_capabilities=None, scale_in_policy=None, identity=None, **kwargs) -> None: super(VirtualMachineScaleSetUpdate, self).__init__(tags=tags, **kwargs) self.sku = sku self.plan = plan @@ -6050,6 +6209,7 @@ def __init__(self, *, tags=None, sku=None, plan=None, upgrade_policy=None, virtu self.overprovision = overprovision self.single_placement_group = single_placement_group self.additional_capabilities = additional_capabilities + self.scale_in_policy = scale_in_policy self.identity = identity @@ -6336,6 +6496,14 @@ class VirtualMachineScaleSetUpdateVMProfile(Model): :param license_type: The license type, which is for bring your own license scenario. :type license_type: str + :param billing_profile: Specifies the billing related details of a low + priority VMSS.

Minimum api-version: 2019-03-01. + :type billing_profile: + ~azure.mgmt.compute.v2019_03_01.models.BillingProfile + :param scheduled_events_profile: Specifies Scheduled Event related + configurations. + :type scheduled_events_profile: + ~azure.mgmt.compute.v2019_03_01.models.ScheduledEventsProfile """ _attribute_map = { @@ -6345,9 +6513,11 @@ class VirtualMachineScaleSetUpdateVMProfile(Model): 'diagnostics_profile': {'key': 'diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 'extension_profile': {'key': 'extensionProfile', 'type': 'VirtualMachineScaleSetExtensionProfile'}, 'license_type': {'key': 'licenseType', 'type': 'str'}, + 'billing_profile': {'key': 'billingProfile', 'type': 'BillingProfile'}, + 'scheduled_events_profile': {'key': 'scheduledEventsProfile', 'type': 'ScheduledEventsProfile'}, } - def __init__(self, *, os_profile=None, storage_profile=None, network_profile=None, diagnostics_profile=None, extension_profile=None, license_type: str=None, **kwargs) -> None: + def __init__(self, *, os_profile=None, storage_profile=None, network_profile=None, diagnostics_profile=None, extension_profile=None, license_type: str=None, billing_profile=None, scheduled_events_profile=None, **kwargs) -> None: super(VirtualMachineScaleSetUpdateVMProfile, self).__init__(**kwargs) self.os_profile = os_profile self.storage_profile = storage_profile @@ -6355,6 +6525,8 @@ def __init__(self, *, os_profile=None, storage_profile=None, network_profile=Non self.diagnostics_profile = diagnostics_profile self.extension_profile = extension_profile self.license_type = license_type + self.billing_profile = billing_profile + self.scheduled_events_profile = scheduled_events_profile class VirtualMachineScaleSetVM(Resource): @@ -6736,6 +6908,14 @@ class VirtualMachineScaleSetVMProfile(Model): 2017-10-30-preview. Possible values include: 'Deallocate', 'Delete' :type eviction_policy: str or ~azure.mgmt.compute.v2019_03_01.models.VirtualMachineEvictionPolicyTypes + :param billing_profile: Specifies the billing related details of a low + priority VMSS.

Minimum api-version: 2019-03-01. + :type billing_profile: + ~azure.mgmt.compute.v2019_03_01.models.BillingProfile + :param scheduled_events_profile: Specifies Scheduled Event related + configurations. + :type scheduled_events_profile: + ~azure.mgmt.compute.v2019_03_01.models.ScheduledEventsProfile """ _attribute_map = { @@ -6747,9 +6927,11 @@ class VirtualMachineScaleSetVMProfile(Model): 'license_type': {'key': 'licenseType', 'type': 'str'}, 'priority': {'key': 'priority', 'type': 'str'}, 'eviction_policy': {'key': 'evictionPolicy', 'type': 'str'}, + 'billing_profile': {'key': 'billingProfile', 'type': 'BillingProfile'}, + 'scheduled_events_profile': {'key': 'scheduledEventsProfile', 'type': 'ScheduledEventsProfile'}, } - def __init__(self, *, os_profile=None, storage_profile=None, network_profile=None, diagnostics_profile=None, extension_profile=None, license_type: str=None, priority=None, eviction_policy=None, **kwargs) -> None: + def __init__(self, *, os_profile=None, storage_profile=None, network_profile=None, diagnostics_profile=None, extension_profile=None, license_type: str=None, priority=None, eviction_policy=None, billing_profile=None, scheduled_events_profile=None, **kwargs) -> None: super(VirtualMachineScaleSetVMProfile, self).__init__(**kwargs) self.os_profile = os_profile self.storage_profile = storage_profile @@ -6759,6 +6941,8 @@ def __init__(self, *, os_profile=None, storage_profile=None, network_profile=Non self.license_type = license_type self.priority = priority self.eviction_policy = eviction_policy + self.billing_profile = billing_profile + self.scheduled_events_profile = scheduled_events_profile class VirtualMachineScaleSetVMProtectionPolicy(Model): @@ -6903,13 +7087,39 @@ class VirtualMachineUpdate(UpdateResource): maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)

Currently, a VM can only be added to availability set at creation - time. An existing VM cannot be added to an availability set. + time. An existing VM cannot be added to an availability set.

This + property cannot exist along with a non-null + properties.virtualMachineScaleSet reference. :type availability_set: ~azure.mgmt.compute.v2019_03_01.models.SubResource + :param virtual_machine_scale_set: Specifies information about the virtual + machine scale set that the virtual machine should be assigned to. Virtual + machines specified in the same virtual machine scale set are allocated to + different nodes to maximize availability. Currently, a VM can only be + added to virtual machine scale set at creation time. An existing VM cannot + be added to a virtual machine scale set.

This property cannot + exist along with a non-null properties.availabilitySet reference. +

Minimum api‐version: 2019‐03‐01 + :type virtual_machine_scale_set: + ~azure.mgmt.compute.v2019_03_01.models.SubResource :param proximity_placement_group: Specifies information about the proximity placement group that the virtual machine should be assigned to.

Minimum api-version: 2018-04-01. :type proximity_placement_group: ~azure.mgmt.compute.v2019_03_01.models.SubResource + :param priority: Specifies the priority for the virtual machine. +

Minimum api-version: 2019-03-01. Possible values include: + 'Regular', 'Low' + :type priority: str or + ~azure.mgmt.compute.v2019_03_01.models.VirtualMachinePriorityTypes + :param eviction_policy: Specifies the eviction policy for the low priority + virtual machine. Only supported value is 'Deallocate'.

Minimum + api-version: 2019-03-01. Possible values include: 'Deallocate', 'Delete' + :type eviction_policy: str or + ~azure.mgmt.compute.v2019_03_01.models.VirtualMachineEvictionPolicyTypes + :param billing_profile: Specifies the billing related details of a low + priority virtual machine.

Minimum api-version: 2019-03-01. + :type billing_profile: + ~azure.mgmt.compute.v2019_03_01.models.BillingProfile :param host: Specifies information about the dedicated host that the virtual machine resides in.

Minimum api-version: 2018-10-01. :type host: ~azure.mgmt.compute.v2019_03_01.models.SubResource @@ -6956,7 +7166,11 @@ class VirtualMachineUpdate(UpdateResource): 'network_profile': {'key': 'properties.networkProfile', 'type': 'NetworkProfile'}, 'diagnostics_profile': {'key': 'properties.diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 'availability_set': {'key': 'properties.availabilitySet', 'type': 'SubResource'}, + 'virtual_machine_scale_set': {'key': 'properties.virtualMachineScaleSet', 'type': 'SubResource'}, 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, + 'priority': {'key': 'properties.priority', 'type': 'str'}, + 'eviction_policy': {'key': 'properties.evictionPolicy', 'type': 'str'}, + 'billing_profile': {'key': 'properties.billingProfile', 'type': 'BillingProfile'}, 'host': {'key': 'properties.host', 'type': 'SubResource'}, 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 'instance_view': {'key': 'properties.instanceView', 'type': 'VirtualMachineInstanceView'}, @@ -6966,7 +7180,7 @@ class VirtualMachineUpdate(UpdateResource): 'zones': {'key': 'zones', 'type': '[str]'}, } - def __init__(self, *, tags=None, plan=None, hardware_profile=None, storage_profile=None, additional_capabilities=None, os_profile=None, network_profile=None, diagnostics_profile=None, availability_set=None, proximity_placement_group=None, host=None, license_type: str=None, identity=None, zones=None, **kwargs) -> None: + def __init__(self, *, tags=None, plan=None, hardware_profile=None, storage_profile=None, additional_capabilities=None, os_profile=None, network_profile=None, diagnostics_profile=None, availability_set=None, virtual_machine_scale_set=None, proximity_placement_group=None, priority=None, eviction_policy=None, billing_profile=None, host=None, license_type: str=None, identity=None, zones=None, **kwargs) -> None: super(VirtualMachineUpdate, self).__init__(tags=tags, **kwargs) self.plan = plan self.hardware_profile = hardware_profile @@ -6976,7 +7190,11 @@ def __init__(self, *, tags=None, plan=None, hardware_profile=None, storage_profi self.network_profile = network_profile self.diagnostics_profile = diagnostics_profile self.availability_set = availability_set + self.virtual_machine_scale_set = virtual_machine_scale_set self.proximity_placement_group = proximity_placement_group + self.priority = priority + self.eviction_policy = eviction_policy + self.billing_profile = billing_profile self.host = host self.provisioning_state = None self.instance_view = None diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/operations/_availability_sets_operations.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/operations/_availability_sets_operations.py index 51da1bb90dbf..36643e1181fe 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/operations/_availability_sets_operations.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/operations/_availability_sets_operations.py @@ -292,9 +292,11 @@ def get( get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}'} def list_by_subscription( - self, custom_headers=None, raw=False, **operation_config): + self, expand=None, custom_headers=None, raw=False, **operation_config): """Lists all availability sets in a subscription. + :param expand: The expand expression to apply to the operation. + :type expand: str :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response @@ -317,6 +319,8 @@ def prepare_request(next_link=None): # Construct parameters query_parameters = {} query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'str') else: url = next_link diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/operations/_virtual_machine_scale_set_vms_operations.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/operations/_virtual_machine_scale_set_vms_operations.py index f995fbbb042e..51c834d9c10f 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/operations/_virtual_machine_scale_set_vms_operations.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/operations/_virtual_machine_scale_set_vms_operations.py @@ -506,7 +506,7 @@ def get_long_running_output(response): delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}'} def get( - self, resource_group_name, vm_scale_set_name, instance_id, custom_headers=None, raw=False, **operation_config): + self, resource_group_name, vm_scale_set_name, instance_id, expand=None, custom_headers=None, raw=False, **operation_config): """Gets a virtual machine from a VM scale set. :param resource_group_name: The name of the resource group. @@ -515,6 +515,10 @@ def get( :type vm_scale_set_name: str :param instance_id: The instance ID of the virtual machine. :type instance_id: str + :param expand: The expand expression to apply on the operation. + Possible values include: 'instanceView' + :type expand: str or + ~azure.mgmt.compute.v2019_03_01.models.InstanceViewTypes :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response @@ -538,6 +542,8 @@ def get( # Construct parameters query_parameters = {} + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'InstanceViewTypes') query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') # Construct headers diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/version.py index d15d41e4399e..99fc271627d8 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/version.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/version.py @@ -5,4 +5,4 @@ # license information. # -------------------------------------------------------------------------- -VERSION = "6.0.0" +VERSION = "7.0.0"