diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_07_01/models/_models.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_07_01/models/_models.py index 5ac6a42a34c8..9ac0e4f6061e 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_07_01/models/_models.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_07_01/models/_models.py @@ -4054,7 +4054,7 @@ class OSProfile(Model): customData property**

This property cannot be updated after the VM is created.

customData is passed to the VM to be saved as a file, for more information see [Custom Data on Azure - VMs](https://azure.microsoft.com/en-us/blog/custom-data-and-cloud-init-on-windows-azure/) + VMs](https://docs.microsoft.com/azure/virtual-machines/custom-data)

For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json) diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_07_01/models/_models_py3.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_07_01/models/_models_py3.py index f85b895c57a3..b2e87a17b358 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_07_01/models/_models_py3.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_07_01/models/_models_py3.py @@ -4054,7 +4054,7 @@ class OSProfile(Model): customData property**

This property cannot be updated after the VM is created.

customData is passed to the VM to be saved as a file, for more information see [Custom Data on Azure - VMs](https://azure.microsoft.com/en-us/blog/custom-data-and-cloud-init-on-windows-azure/) + VMs](https://docs.microsoft.com/azure/virtual-machines/custom-data)

For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json) diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/__init__.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/__init__.py index 1ae624b1ac57..c2ad29b3c283 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/__init__.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/__init__.py @@ -434,6 +434,7 @@ DiskCreateOptionTypes, StorageAccountTypes, DiffDiskOptions, + DiffDiskPlacement, PassNames, ComponentNames, SettingNames, @@ -693,6 +694,7 @@ 'DiskCreateOptionTypes', 'StorageAccountTypes', 'DiffDiskOptions', + 'DiffDiskPlacement', 'PassNames', 'ComponentNames', 'SettingNames', diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/_compute_management_client_enums.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/_compute_management_client_enums.py index 085de025e548..863434f6e55e 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/_compute_management_client_enums.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/_compute_management_client_enums.py @@ -247,6 +247,12 @@ class DiffDiskOptions(str, Enum): local = "Local" +class DiffDiskPlacement(str, Enum): + + cache_disk = "CacheDisk" + resource_disk = "ResourceDisk" + + class PassNames(str, Enum): oobe_system = "OobeSystem" @@ -333,6 +339,7 @@ class IPVersion(str, Enum): class OrchestrationServiceNames(str, Enum): automatic_repairs = "AutomaticRepairs" + class OrchestrationServiceState(str, Enum): diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/_models.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/_models.py index fa9f6d34f8ad..7d2368d68552 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/_models.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/_models.py @@ -1138,15 +1138,29 @@ class DiffDiskSettings(Model): disk. Possible values include: 'Local' :type option: str or ~azure.mgmt.compute.v2019_12_01.models.DiffDiskOptions + :param placement: Specifies the ephemeral disk placement for operating + system disk.

Possible values are:

**CacheDisk**

+ **ResourceDisk**

Default: **CacheDisk** if one is configured for + the VM size otherwise **ResourceDisk** is used.

Refer to VM size + documentation for Windows VM at + https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes and + Linux VM at + https://docs.microsoft.com/en-us/azure/virtual-machines/linux/sizes to + check which VM sizes exposes a cache disk. Possible values include: + 'CacheDisk', 'ResourceDisk' + :type placement: str or + ~azure.mgmt.compute.v2019_12_01.models.DiffDiskPlacement """ _attribute_map = { 'option': {'key': 'option', 'type': 'str'}, + 'placement': {'key': 'placement', 'type': 'str'}, } def __init__(self, **kwargs): super(DiffDiskSettings, self).__init__(**kwargs) self.option = kwargs.get('option', None) + self.placement = kwargs.get('placement', None) class Disallowed(Model): @@ -3294,14 +3308,12 @@ def __init__(self, **kwargs): class OrchestrationServiceStateInput(Model): """The input for OrchestrationServiceState. - Variables are only populated by the server, and will be ignored when - sending a request. - All required parameters must be populated in order to send to Azure. - :ivar service_name: Required. The name of the service. Default value: - "AutomaticRepairs" . - :vartype service_name: str + :param service_name: Required. The name of the service. Possible values + include: 'AutomaticRepairs' + :type service_name: str or + ~azure.mgmt.compute.v2019_12_01.models.OrchestrationServiceNames :param action: Required. The action to be performed. Possible values include: 'Resume', 'Suspend' :type action: str or @@ -3309,7 +3321,7 @@ class OrchestrationServiceStateInput(Model): """ _validation = { - 'service_name': {'required': True, 'constant': True}, + 'service_name': {'required': True}, 'action': {'required': True}, } @@ -3318,10 +3330,9 @@ class OrchestrationServiceStateInput(Model): 'action': {'key': 'action', 'type': 'str'}, } - service_name = "AutomaticRepairs" - def __init__(self, **kwargs): super(OrchestrationServiceStateInput, self).__init__(**kwargs) + self.service_name = kwargs.get('service_name', None) self.action = kwargs.get('action', None) @@ -3386,8 +3397,8 @@ class OSDisk(Model): :type image: ~azure.mgmt.compute.v2019_12_01.models.VirtualHardDisk :param caching: Specifies the caching requirements.

Possible values are:

**None**

**ReadOnly**

**ReadWrite** -

Default: **None for Standard storage. ReadOnly for Premium - storage**. Possible values include: 'None', 'ReadOnly', 'ReadWrite' +

Default: **None** for Standard storage. **ReadOnly** for Premium + storage. Possible values include: 'None', 'ReadOnly', 'ReadWrite' :type caching: str or ~azure.mgmt.compute.v2019_12_01.models.CachingTypes :param write_accelerator_enabled: Specifies whether writeAccelerator should be enabled or disabled on the disk. diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/_models_py3.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/_models_py3.py index 4450606e7a87..6bfa1543c0c2 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/_models_py3.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/models/_models_py3.py @@ -1138,15 +1138,29 @@ class DiffDiskSettings(Model): disk. Possible values include: 'Local' :type option: str or ~azure.mgmt.compute.v2019_12_01.models.DiffDiskOptions + :param placement: Specifies the ephemeral disk placement for operating + system disk.

Possible values are:

**CacheDisk**

+ **ResourceDisk**

Default: **CacheDisk** if one is configured for + the VM size otherwise **ResourceDisk** is used.

Refer to VM size + documentation for Windows VM at + https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes and + Linux VM at + https://docs.microsoft.com/en-us/azure/virtual-machines/linux/sizes to + check which VM sizes exposes a cache disk. Possible values include: + 'CacheDisk', 'ResourceDisk' + :type placement: str or + ~azure.mgmt.compute.v2019_12_01.models.DiffDiskPlacement """ _attribute_map = { 'option': {'key': 'option', 'type': 'str'}, + 'placement': {'key': 'placement', 'type': 'str'}, } - def __init__(self, *, option=None, **kwargs) -> None: + def __init__(self, *, option=None, placement=None, **kwargs) -> None: super(DiffDiskSettings, self).__init__(**kwargs) self.option = option + self.placement = placement class Disallowed(Model): @@ -3294,14 +3308,12 @@ def __init__(self, *, network_interfaces=None, **kwargs) -> None: class OrchestrationServiceStateInput(Model): """The input for OrchestrationServiceState. - Variables are only populated by the server, and will be ignored when - sending a request. - All required parameters must be populated in order to send to Azure. - :ivar service_name: Required. The name of the service. Default value: - "AutomaticRepairs" . - :vartype service_name: str + :param service_name: Required. The name of the service. Possible values + include: 'AutomaticRepairs' + :type service_name: str or + ~azure.mgmt.compute.v2019_12_01.models.OrchestrationServiceNames :param action: Required. The action to be performed. Possible values include: 'Resume', 'Suspend' :type action: str or @@ -3309,7 +3321,7 @@ class OrchestrationServiceStateInput(Model): """ _validation = { - 'service_name': {'required': True, 'constant': True}, + 'service_name': {'required': True}, 'action': {'required': True}, } @@ -3318,10 +3330,9 @@ class OrchestrationServiceStateInput(Model): 'action': {'key': 'action', 'type': 'str'}, } - service_name = "AutomaticRepairs" - - def __init__(self, *, action, **kwargs) -> None: + def __init__(self, *, service_name, action, **kwargs) -> None: super(OrchestrationServiceStateInput, self).__init__(**kwargs) + self.service_name = service_name self.action = action @@ -3386,8 +3397,8 @@ class OSDisk(Model): :type image: ~azure.mgmt.compute.v2019_12_01.models.VirtualHardDisk :param caching: Specifies the caching requirements.

Possible values are:

**None**

**ReadOnly**

**ReadWrite** -

Default: **None for Standard storage. ReadOnly for Premium - storage**. Possible values include: 'None', 'ReadOnly', 'ReadWrite' +

Default: **None** for Standard storage. **ReadOnly** for Premium + storage. Possible values include: 'None', 'ReadOnly', 'ReadWrite' :type caching: str or ~azure.mgmt.compute.v2019_12_01.models.CachingTypes :param write_accelerator_enabled: Specifies whether writeAccelerator should be enabled or disabled on the disk. diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/operations/_virtual_machine_scale_sets_operations.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/operations/_virtual_machine_scale_sets_operations.py index bd166bc7a8a4..6ba4bdd814a8 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/operations/_virtual_machine_scale_sets_operations.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/operations/_virtual_machine_scale_sets_operations.py @@ -1840,8 +1840,8 @@ def convert_to_single_placement_group( def _set_orchestration_service_state_initial( - self, resource_group_name, vm_scale_set_name, action, custom_headers=None, raw=False, **operation_config): - parameters = models.OrchestrationServiceStateInput(action=action) + self, resource_group_name, vm_scale_set_name, service_name, action, custom_headers=None, raw=False, **operation_config): + parameters = models.OrchestrationServiceStateInput(service_name=service_name, action=action) # Construct URL url = self.set_orchestration_service_state.metadata['url'] @@ -1883,7 +1883,7 @@ def _set_orchestration_service_state_initial( return client_raw_response def set_orchestration_service_state( - self, resource_group_name, vm_scale_set_name, action, custom_headers=None, raw=False, polling=True, **operation_config): + self, resource_group_name, vm_scale_set_name, service_name, action, custom_headers=None, raw=False, polling=True, **operation_config): """Changes ServiceState property for a given service. :param resource_group_name: The name of the resource group. @@ -1891,6 +1891,10 @@ def set_orchestration_service_state( :param vm_scale_set_name: The name of the virtual machine scale set to create or update. :type vm_scale_set_name: str + :param service_name: The name of the service. Possible values include: + 'AutomaticRepairs' + :type service_name: str or + ~azure.mgmt.compute.v2019_12_01.models.OrchestrationServiceNames :param action: The action to be performed. Possible values include: 'Resume', 'Suspend' :type action: str or @@ -1909,6 +1913,7 @@ def set_orchestration_service_state( raw_result = self._set_orchestration_service_state_initial( resource_group_name=resource_group_name, vm_scale_set_name=vm_scale_set_name, + service_name=service_name, action=action, custom_headers=custom_headers, raw=True, diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/operations/_virtual_machines_operations.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/operations/_virtual_machines_operations.py index 0e9624711a6b..3a20dc3e0a88 100644 --- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/operations/_virtual_machines_operations.py +++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/operations/_virtual_machines_operations.py @@ -1654,6 +1654,85 @@ def get_long_running_output(response): perform_maintenance.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/performMaintenance'} + def _simulate_eviction_initial( + self, resource_group_name, vm_name, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.simulate_eviction.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'vmName': self._serialize.url("vm_name", vm_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [204]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + def simulate_eviction( + self, resource_group_name, vm_name, custom_headers=None, raw=False, polling=True, **operation_config): + """The operation to simulate the eviction of spot virtual machine. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param vm_name: The name of the virtual machine. + :type vm_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: :class:`CloudError` + """ + raw_result = self._simulate_eviction_initial( + resource_group_name=resource_group_name, + vm_name=vm_name, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + simulate_eviction.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/SimulateEviction'} + + def _run_command_initial( self, resource_group_name, vm_name, parameters, custom_headers=None, raw=False, **operation_config): # Construct URL