diff --git a/sdk/compute/azure-mgmt-compute/_meta.json b/sdk/compute/azure-mgmt-compute/_meta.json
index 82a3ac28882f..8327239996fc 100644
--- a/sdk/compute/azure-mgmt-compute/_meta.json
+++ b/sdk/compute/azure-mgmt-compute/_meta.json
@@ -2,10 +2,10 @@
"autorest": "3.4.2",
"use": [
"@autorest/python@5.8.0",
- "@autorest/modelerfour@4.19.1"
+ "@autorest/modelerfour@4.19.2"
],
- "commit": "f69f2e8053ac8ae352b11c33655234dea4cf4cfd",
+ "commit": "8f5a744a3d87ded5c0a06df744d007e072477f44",
"repository_url": "https://github.com/Azure/azure-rest-api-specs",
- "autorest_command": "autorest specification/compute/resource-manager/readme.md --multiapi --python --python-mode=update --python-sdks-folder=/home/vsts/work/1/s/azure-sdk-for-python/sdk --track2 --use=@autorest/python@5.8.0 --use=@autorest/modelerfour@4.19.1 --version=3.4.2",
+ "autorest_command": "autorest specification/compute/resource-manager/readme.md --multiapi --python --python-mode=update --python-sdks-folder=/home/vsts/work/1/s/azure-sdk-for-python/sdk --track2 --use=@autorest/python@5.8.0 --use=@autorest/modelerfour@4.19.2 --version=3.4.2",
"readme": "specification/compute/resource-manager/readme.md"
}
\ No newline at end of file
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2015_06_15/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2015_06_15/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2015_06_15/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2015_06_15/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2016_03_30/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2016_03_30/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2016_03_30/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2016_03_30/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2016_04_30_preview/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2016_04_30_preview/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2016_04_30_preview/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2016_04_30_preview/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_03_30/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_03_30/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_03_30/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_03_30/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_09_01/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_09_01/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_09_01/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_09_01/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_12_01/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_12_01/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_12_01/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2017_12_01/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_04_01/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_04_01/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_04_01/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_04_01/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_09_30/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_09_30/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_09_30/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_09_30/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_03_01/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_04_01/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_04_01/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_04_01/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_04_01/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_07_01/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_07_01/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_07_01/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_07_01/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_11_01/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_11_01/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_11_01/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_11_01/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2019_12_01/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_05_01/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_05_01/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_05_01/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_05_01/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_06_01/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_06_01/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_06_01/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_06_01/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_06_30/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_06_30/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_06_30/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_06_30/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_09_30/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_09_30/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_09_30/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_09_30/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_10_01_preview/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_10_01_preview/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_10_01_preview/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_10_01_preview/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/aio/operations/_disk_restore_point_operations.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/aio/operations/_disk_restore_point_operations.py
index ce7eb0e1a7c2..0c4508028135 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/aio/operations/_disk_restore_point_operations.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/aio/operations/_disk_restore_point_operations.py
@@ -5,14 +5,16 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar
+from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union
import warnings
from azure.core.async_paging import AsyncItemPaged, AsyncList
from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error
from azure.core.pipeline import PipelineResponse
from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest
+from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
from azure.mgmt.core.exceptions import ARMErrorFormat
+from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
from ... import models as _models
@@ -193,3 +195,276 @@ async def get_next(next_link=None):
get_next, extract_data
)
list_by_restore_point.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{vmRestorePointName}/diskRestorePoints'} # type: ignore
+
+ async def _grant_access_initial(
+ self,
+ resource_group_name: str,
+ restore_point_collection_name: str,
+ vm_restore_point_name: str,
+ disk_restore_point_name: str,
+ grant_access_data: "_models.GrantAccessData",
+ **kwargs: Any
+ ) -> Optional["_models.AccessUri"]:
+ cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.AccessUri"]]
+ error_map = {
+ 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError
+ }
+ error_map.update(kwargs.pop('error_map', {}))
+ api_version = "2020-12-01"
+ content_type = kwargs.pop("content_type", "application/json")
+ accept = "application/json"
+
+ # Construct URL
+ url = self._grant_access_initial.metadata['url'] # type: ignore
+ path_format_arguments = {
+ 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'),
+ 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'),
+ 'restorePointCollectionName': self._serialize.url("restore_point_collection_name", restore_point_collection_name, 'str'),
+ 'vmRestorePointName': self._serialize.url("vm_restore_point_name", vm_restore_point_name, 'str'),
+ 'diskRestorePointName': self._serialize.url("disk_restore_point_name", disk_restore_point_name, 'str'),
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {} # type: Dict[str, Any]
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {} # type: Dict[str, Any]
+ header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str')
+ header_parameters['Accept'] = self._serialize.header("accept", accept, 'str')
+
+ body_content_kwargs = {} # type: Dict[str, Any]
+ body_content = self._serialize.body(grant_access_data, 'GrantAccessData')
+ body_content_kwargs['content'] = body_content
+ request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs)
+ pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs)
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ raise HttpResponseError(response=response, error_format=ARMErrorFormat)
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('AccessUri', pipeline_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {})
+
+ return deserialized
+ _grant_access_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{vmRestorePointName}/diskRestorePoints/{diskRestorePointName}/beginGetAccess'} # type: ignore
+
+ async def begin_grant_access(
+ self,
+ resource_group_name: str,
+ restore_point_collection_name: str,
+ vm_restore_point_name: str,
+ disk_restore_point_name: str,
+ grant_access_data: "_models.GrantAccessData",
+ **kwargs: Any
+ ) -> AsyncLROPoller["_models.AccessUri"]:
+ """Grants access to a diskRestorePoint.
+
+ :param resource_group_name: The name of the resource group.
+ :type resource_group_name: str
+ :param restore_point_collection_name: The name of the restore point collection that the disk
+ restore point belongs. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum
+ name length is 80 characters.
+ :type restore_point_collection_name: str
+ :param vm_restore_point_name: The name of the vm restore point that the disk disk restore point
+ belongs. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is
+ 80 characters.
+ :type vm_restore_point_name: str
+ :param disk_restore_point_name: The name of the disk restore point created. Supported
+ characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters.
+ :type disk_restore_point_name: str
+ :param grant_access_data: Access data object supplied in the body of the get disk access
+ operation.
+ :type grant_access_data: ~azure.mgmt.compute.v2020_12_01.models.GrantAccessData
+ :keyword callable cls: A custom type or function that will be passed the direct response
+ :keyword str continuation_token: A continuation token to restart a poller from a saved state.
+ :keyword polling: By default, your polling method will be AsyncARMPolling.
+ Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy.
+ :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod
+ :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.
+ :return: An instance of AsyncLROPoller that returns either AccessUri or the result of cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.compute.v2020_12_01.models.AccessUri]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod]
+ cls = kwargs.pop('cls', None) # type: ClsType["_models.AccessUri"]
+ lro_delay = kwargs.pop(
+ 'polling_interval',
+ self._config.polling_interval
+ )
+ cont_token = kwargs.pop('continuation_token', None) # type: Optional[str]
+ if cont_token is None:
+ raw_result = await self._grant_access_initial(
+ resource_group_name=resource_group_name,
+ restore_point_collection_name=restore_point_collection_name,
+ vm_restore_point_name=vm_restore_point_name,
+ disk_restore_point_name=disk_restore_point_name,
+ grant_access_data=grant_access_data,
+ cls=lambda x,y,z: x,
+ **kwargs
+ )
+
+ kwargs.pop('error_map', None)
+ kwargs.pop('content_type', None)
+
+ def get_long_running_output(pipeline_response):
+ deserialized = self._deserialize('AccessUri', pipeline_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {})
+ return deserialized
+
+ path_format_arguments = {
+ 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'),
+ 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'),
+ 'restorePointCollectionName': self._serialize.url("restore_point_collection_name", restore_point_collection_name, 'str'),
+ 'vmRestorePointName': self._serialize.url("vm_restore_point_name", vm_restore_point_name, 'str'),
+ 'diskRestorePointName': self._serialize.url("disk_restore_point_name", disk_restore_point_name, 'str'),
+ }
+
+ if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'location'}, path_format_arguments=path_format_arguments, **kwargs)
+ elif polling is False: polling_method = AsyncNoPolling()
+ else: polling_method = polling
+ if cont_token:
+ return AsyncLROPoller.from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output
+ )
+ else:
+ return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method)
+ begin_grant_access.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{vmRestorePointName}/diskRestorePoints/{diskRestorePointName}/beginGetAccess'} # type: ignore
+
+ async def _revoke_access_initial(
+ self,
+ resource_group_name: str,
+ restore_point_collection_name: str,
+ vm_restore_point_name: str,
+ disk_restore_point_name: str,
+ **kwargs: Any
+ ) -> None:
+ cls = kwargs.pop('cls', None) # type: ClsType[None]
+ error_map = {
+ 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError
+ }
+ error_map.update(kwargs.pop('error_map', {}))
+ api_version = "2020-12-01"
+ accept = "application/json"
+
+ # Construct URL
+ url = self._revoke_access_initial.metadata['url'] # type: ignore
+ path_format_arguments = {
+ 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'),
+ 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'),
+ 'restorePointCollectionName': self._serialize.url("restore_point_collection_name", restore_point_collection_name, 'str'),
+ 'vmRestorePointName': self._serialize.url("vm_restore_point_name", vm_restore_point_name, 'str'),
+ 'diskRestorePointName': self._serialize.url("disk_restore_point_name", disk_restore_point_name, 'str'),
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {} # type: Dict[str, Any]
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {} # type: Dict[str, Any]
+ header_parameters['Accept'] = self._serialize.header("accept", accept, 'str')
+
+ request = self._client.post(url, query_parameters, header_parameters)
+ pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs)
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ raise HttpResponseError(response=response, error_format=ARMErrorFormat)
+
+ if cls:
+ return cls(pipeline_response, None, {})
+
+ _revoke_access_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{vmRestorePointName}/diskRestorePoints/{diskRestorePointName}/endGetAccess'} # type: ignore
+
+ async def begin_revoke_access(
+ self,
+ resource_group_name: str,
+ restore_point_collection_name: str,
+ vm_restore_point_name: str,
+ disk_restore_point_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Revokes access to a diskRestorePoint.
+
+ :param resource_group_name: The name of the resource group.
+ :type resource_group_name: str
+ :param restore_point_collection_name: The name of the restore point collection that the disk
+ restore point belongs. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum
+ name length is 80 characters.
+ :type restore_point_collection_name: str
+ :param vm_restore_point_name: The name of the vm restore point that the disk disk restore point
+ belongs. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is
+ 80 characters.
+ :type vm_restore_point_name: str
+ :param disk_restore_point_name: The name of the disk restore point created. Supported
+ characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters.
+ :type disk_restore_point_name: str
+ :keyword callable cls: A custom type or function that will be passed the direct response
+ :keyword str continuation_token: A continuation token to restart a poller from a saved state.
+ :keyword polling: By default, your polling method will be AsyncARMPolling.
+ Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy.
+ :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod
+ :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.
+ :return: An instance of AsyncLROPoller that returns either None or the result of cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod]
+ cls = kwargs.pop('cls', None) # type: ClsType[None]
+ lro_delay = kwargs.pop(
+ 'polling_interval',
+ self._config.polling_interval
+ )
+ cont_token = kwargs.pop('continuation_token', None) # type: Optional[str]
+ if cont_token is None:
+ raw_result = await self._revoke_access_initial(
+ resource_group_name=resource_group_name,
+ restore_point_collection_name=restore_point_collection_name,
+ vm_restore_point_name=vm_restore_point_name,
+ disk_restore_point_name=disk_restore_point_name,
+ cls=lambda x,y,z: x,
+ **kwargs
+ )
+
+ kwargs.pop('error_map', None)
+ kwargs.pop('content_type', None)
+
+ def get_long_running_output(pipeline_response):
+ if cls:
+ return cls(pipeline_response, None, {})
+
+ path_format_arguments = {
+ 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'),
+ 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'),
+ 'restorePointCollectionName': self._serialize.url("restore_point_collection_name", restore_point_collection_name, 'str'),
+ 'vmRestorePointName': self._serialize.url("vm_restore_point_name", vm_restore_point_name, 'str'),
+ 'diskRestorePointName': self._serialize.url("disk_restore_point_name", disk_restore_point_name, 'str'),
+ }
+
+ if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'location'}, path_format_arguments=path_format_arguments, **kwargs)
+ elif polling is False: polling_method = AsyncNoPolling()
+ else: polling_method = polling
+ if cont_token:
+ return AsyncLROPoller.from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output
+ )
+ else:
+ return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method)
+ begin_revoke_access.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{vmRestorePointName}/diskRestorePoints/{diskRestorePointName}/endGetAccess'} # type: ignore
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/__init__.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/__init__.py
index f9c25d16e971..81d53cdbd2d1 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/__init__.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/__init__.py
@@ -541,6 +541,7 @@
ResourceIdentityType,
RollingUpgradeActionType,
RollingUpgradeStatusCode,
+ SecurityTypes,
SettingNames,
SnapshotStorageAccountTypes,
StatusLevelTypes,
@@ -849,6 +850,7 @@
'ResourceIdentityType',
'RollingUpgradeActionType',
'RollingUpgradeStatusCode',
+ 'SecurityTypes',
'SettingNames',
'SnapshotStorageAccountTypes',
'StatusLevelTypes',
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/_compute_management_client_enums.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/_compute_management_client_enums.py
index 9b54fe79da5c..6da515d9e2ec 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/_compute_management_client_enums.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/_compute_management_client_enums.py
@@ -436,6 +436,14 @@ class RollingUpgradeStatusCode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enu
COMPLETED = "Completed"
FAULTED = "Faulted"
+class SecurityTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
+ """Specifies the SecurityType of the virtual machine. It is set as TrustedLaunch to enable
+ UefiSettings. :code:`
`:code:`
` Default: UefiSettings will not be enabled unless this
+ property is set as TrustedLaunch.
+ """
+
+ TRUSTED_LAUNCH = "TrustedLaunch"
+
class SettingNames(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
"""Specifies the name of the setting to which the content applies. Possible values are:
FirstLogonCommands and AutoLogon.
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/_models.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/_models.py
index f2fe9a714022..6bf871fe5507 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/_models.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/_models.py
@@ -5184,8 +5184,6 @@ def __init__(
class SecurityProfile(msrest.serialization.Model):
"""Specifies the Security profile settings for the virtual machine or virtual machine scale set.
- Variables are only populated by the server, and will be ignored when sending a request.
-
:param uefi_settings: Specifies the security settings like secure boot and vTPM used while
creating the virtual machine. :code:`
`:code:`
`Minimum api-version: 2020-12-01.
:type uefi_settings: ~azure.mgmt.compute.v2020_12_01.models.UefiSettings
@@ -5195,24 +5193,19 @@ class SecurityProfile(msrest.serialization.Model):
:code:`
`:code:`
` Default: The Encryption at host will be disabled unless this property
is set to true for the resource.
:type encryption_at_host: bool
- :ivar security_type: Specifies the SecurityType of the virtual machine. It is set as
+ :param security_type: Specifies the SecurityType of the virtual machine. It is set as
TrustedLaunch to enable UefiSettings. :code:`
`:code:`
` Default: UefiSettings will not
- be enabled unless this property is set as TrustedLaunch. Default value: "TrustedLaunch".
- :vartype security_type: str
+ be enabled unless this property is set as TrustedLaunch. Possible values include:
+ "TrustedLaunch".
+ :type security_type: str or ~azure.mgmt.compute.v2020_12_01.models.SecurityTypes
"""
- _validation = {
- 'security_type': {'constant': True},
- }
-
_attribute_map = {
'uefi_settings': {'key': 'uefiSettings', 'type': 'UefiSettings'},
'encryption_at_host': {'key': 'encryptionAtHost', 'type': 'bool'},
'security_type': {'key': 'securityType', 'type': 'str'},
}
- security_type = "TrustedLaunch"
-
def __init__(
self,
**kwargs
@@ -5220,6 +5213,7 @@ def __init__(
super(SecurityProfile, self).__init__(**kwargs)
self.uefi_settings = kwargs.get('uefi_settings', None)
self.encryption_at_host = kwargs.get('encryption_at_host', None)
+ self.security_type = kwargs.get('security_type', None)
class ShareInfoElement(msrest.serialization.Model):
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/_models_py3.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/_models_py3.py
index 0d3c932420b8..d86ad5075fa1 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/_models_py3.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/models/_models_py3.py
@@ -5671,8 +5671,6 @@ def __init__(
class SecurityProfile(msrest.serialization.Model):
"""Specifies the Security profile settings for the virtual machine or virtual machine scale set.
- Variables are only populated by the server, and will be ignored when sending a request.
-
:param uefi_settings: Specifies the security settings like secure boot and vTPM used while
creating the virtual machine. :code:`
`:code:`
`Minimum api-version: 2020-12-01.
:type uefi_settings: ~azure.mgmt.compute.v2020_12_01.models.UefiSettings
@@ -5682,34 +5680,31 @@ class SecurityProfile(msrest.serialization.Model):
:code:`
`:code:`
` Default: The Encryption at host will be disabled unless this property
is set to true for the resource.
:type encryption_at_host: bool
- :ivar security_type: Specifies the SecurityType of the virtual machine. It is set as
+ :param security_type: Specifies the SecurityType of the virtual machine. It is set as
TrustedLaunch to enable UefiSettings. :code:`
`:code:`
` Default: UefiSettings will not
- be enabled unless this property is set as TrustedLaunch. Default value: "TrustedLaunch".
- :vartype security_type: str
+ be enabled unless this property is set as TrustedLaunch. Possible values include:
+ "TrustedLaunch".
+ :type security_type: str or ~azure.mgmt.compute.v2020_12_01.models.SecurityTypes
"""
- _validation = {
- 'security_type': {'constant': True},
- }
-
_attribute_map = {
'uefi_settings': {'key': 'uefiSettings', 'type': 'UefiSettings'},
'encryption_at_host': {'key': 'encryptionAtHost', 'type': 'bool'},
'security_type': {'key': 'securityType', 'type': 'str'},
}
- security_type = "TrustedLaunch"
-
def __init__(
self,
*,
uefi_settings: Optional["UefiSettings"] = None,
encryption_at_host: Optional[bool] = None,
+ security_type: Optional[Union[str, "SecurityTypes"]] = None,
**kwargs
):
super(SecurityProfile, self).__init__(**kwargs)
self.uefi_settings = uefi_settings
self.encryption_at_host = encryption_at_host
+ self.security_type = security_type
class ShareInfoElement(msrest.serialization.Model):
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/operations/_disk_restore_point_operations.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/operations/_disk_restore_point_operations.py
index 556574817b43..b6c33ebe2c12 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/operations/_disk_restore_point_operations.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_12_01/operations/_disk_restore_point_operations.py
@@ -12,13 +12,15 @@
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
from azure.core.pipeline.transport import HttpRequest, HttpResponse
+from azure.core.polling import LROPoller, NoPolling, PollingMethod
from azure.mgmt.core.exceptions import ARMErrorFormat
+from azure.mgmt.core.polling.arm_polling import ARMPolling
from .. import models as _models
if TYPE_CHECKING:
# pylint: disable=unused-import,ungrouped-imports
- from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar
+ from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union
T = TypeVar('T')
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -199,3 +201,280 @@ def get_next(next_link=None):
get_next, extract_data
)
list_by_restore_point.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{vmRestorePointName}/diskRestorePoints'} # type: ignore
+
+ def _grant_access_initial(
+ self,
+ resource_group_name, # type: str
+ restore_point_collection_name, # type: str
+ vm_restore_point_name, # type: str
+ disk_restore_point_name, # type: str
+ grant_access_data, # type: "_models.GrantAccessData"
+ **kwargs # type: Any
+ ):
+ # type: (...) -> Optional["_models.AccessUri"]
+ cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.AccessUri"]]
+ error_map = {
+ 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError
+ }
+ error_map.update(kwargs.pop('error_map', {}))
+ api_version = "2020-12-01"
+ content_type = kwargs.pop("content_type", "application/json")
+ accept = "application/json"
+
+ # Construct URL
+ url = self._grant_access_initial.metadata['url'] # type: ignore
+ path_format_arguments = {
+ 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'),
+ 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'),
+ 'restorePointCollectionName': self._serialize.url("restore_point_collection_name", restore_point_collection_name, 'str'),
+ 'vmRestorePointName': self._serialize.url("vm_restore_point_name", vm_restore_point_name, 'str'),
+ 'diskRestorePointName': self._serialize.url("disk_restore_point_name", disk_restore_point_name, 'str'),
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {} # type: Dict[str, Any]
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {} # type: Dict[str, Any]
+ header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str')
+ header_parameters['Accept'] = self._serialize.header("accept", accept, 'str')
+
+ body_content_kwargs = {} # type: Dict[str, Any]
+ body_content = self._serialize.body(grant_access_data, 'GrantAccessData')
+ body_content_kwargs['content'] = body_content
+ request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs)
+ pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs)
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ raise HttpResponseError(response=response, error_format=ARMErrorFormat)
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('AccessUri', pipeline_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {})
+
+ return deserialized
+ _grant_access_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{vmRestorePointName}/diskRestorePoints/{diskRestorePointName}/beginGetAccess'} # type: ignore
+
+ def begin_grant_access(
+ self,
+ resource_group_name, # type: str
+ restore_point_collection_name, # type: str
+ vm_restore_point_name, # type: str
+ disk_restore_point_name, # type: str
+ grant_access_data, # type: "_models.GrantAccessData"
+ **kwargs # type: Any
+ ):
+ # type: (...) -> LROPoller["_models.AccessUri"]
+ """Grants access to a diskRestorePoint.
+
+ :param resource_group_name: The name of the resource group.
+ :type resource_group_name: str
+ :param restore_point_collection_name: The name of the restore point collection that the disk
+ restore point belongs. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum
+ name length is 80 characters.
+ :type restore_point_collection_name: str
+ :param vm_restore_point_name: The name of the vm restore point that the disk disk restore point
+ belongs. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is
+ 80 characters.
+ :type vm_restore_point_name: str
+ :param disk_restore_point_name: The name of the disk restore point created. Supported
+ characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters.
+ :type disk_restore_point_name: str
+ :param grant_access_data: Access data object supplied in the body of the get disk access
+ operation.
+ :type grant_access_data: ~azure.mgmt.compute.v2020_12_01.models.GrantAccessData
+ :keyword callable cls: A custom type or function that will be passed the direct response
+ :keyword str continuation_token: A continuation token to restart a poller from a saved state.
+ :keyword polling: By default, your polling method will be ARMPolling.
+ Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy.
+ :paramtype polling: bool or ~azure.core.polling.PollingMethod
+ :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.
+ :return: An instance of LROPoller that returns either AccessUri or the result of cls(response)
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.compute.v2020_12_01.models.AccessUri]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod]
+ cls = kwargs.pop('cls', None) # type: ClsType["_models.AccessUri"]
+ lro_delay = kwargs.pop(
+ 'polling_interval',
+ self._config.polling_interval
+ )
+ cont_token = kwargs.pop('continuation_token', None) # type: Optional[str]
+ if cont_token is None:
+ raw_result = self._grant_access_initial(
+ resource_group_name=resource_group_name,
+ restore_point_collection_name=restore_point_collection_name,
+ vm_restore_point_name=vm_restore_point_name,
+ disk_restore_point_name=disk_restore_point_name,
+ grant_access_data=grant_access_data,
+ cls=lambda x,y,z: x,
+ **kwargs
+ )
+
+ kwargs.pop('error_map', None)
+ kwargs.pop('content_type', None)
+
+ def get_long_running_output(pipeline_response):
+ deserialized = self._deserialize('AccessUri', pipeline_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {})
+ return deserialized
+
+ path_format_arguments = {
+ 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'),
+ 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'),
+ 'restorePointCollectionName': self._serialize.url("restore_point_collection_name", restore_point_collection_name, 'str'),
+ 'vmRestorePointName': self._serialize.url("vm_restore_point_name", vm_restore_point_name, 'str'),
+ 'diskRestorePointName': self._serialize.url("disk_restore_point_name", disk_restore_point_name, 'str'),
+ }
+
+ if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'location'}, path_format_arguments=path_format_arguments, **kwargs)
+ elif polling is False: polling_method = NoPolling()
+ else: polling_method = polling
+ if cont_token:
+ return LROPoller.from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output
+ )
+ else:
+ return LROPoller(self._client, raw_result, get_long_running_output, polling_method)
+ begin_grant_access.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{vmRestorePointName}/diskRestorePoints/{diskRestorePointName}/beginGetAccess'} # type: ignore
+
+ def _revoke_access_initial(
+ self,
+ resource_group_name, # type: str
+ restore_point_collection_name, # type: str
+ vm_restore_point_name, # type: str
+ disk_restore_point_name, # type: str
+ **kwargs # type: Any
+ ):
+ # type: (...) -> None
+ cls = kwargs.pop('cls', None) # type: ClsType[None]
+ error_map = {
+ 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError
+ }
+ error_map.update(kwargs.pop('error_map', {}))
+ api_version = "2020-12-01"
+ accept = "application/json"
+
+ # Construct URL
+ url = self._revoke_access_initial.metadata['url'] # type: ignore
+ path_format_arguments = {
+ 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'),
+ 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'),
+ 'restorePointCollectionName': self._serialize.url("restore_point_collection_name", restore_point_collection_name, 'str'),
+ 'vmRestorePointName': self._serialize.url("vm_restore_point_name", vm_restore_point_name, 'str'),
+ 'diskRestorePointName': self._serialize.url("disk_restore_point_name", disk_restore_point_name, 'str'),
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {} # type: Dict[str, Any]
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {} # type: Dict[str, Any]
+ header_parameters['Accept'] = self._serialize.header("accept", accept, 'str')
+
+ request = self._client.post(url, query_parameters, header_parameters)
+ pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs)
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ raise HttpResponseError(response=response, error_format=ARMErrorFormat)
+
+ if cls:
+ return cls(pipeline_response, None, {})
+
+ _revoke_access_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{vmRestorePointName}/diskRestorePoints/{diskRestorePointName}/endGetAccess'} # type: ignore
+
+ def begin_revoke_access(
+ self,
+ resource_group_name, # type: str
+ restore_point_collection_name, # type: str
+ vm_restore_point_name, # type: str
+ disk_restore_point_name, # type: str
+ **kwargs # type: Any
+ ):
+ # type: (...) -> LROPoller[None]
+ """Revokes access to a diskRestorePoint.
+
+ :param resource_group_name: The name of the resource group.
+ :type resource_group_name: str
+ :param restore_point_collection_name: The name of the restore point collection that the disk
+ restore point belongs. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum
+ name length is 80 characters.
+ :type restore_point_collection_name: str
+ :param vm_restore_point_name: The name of the vm restore point that the disk disk restore point
+ belongs. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is
+ 80 characters.
+ :type vm_restore_point_name: str
+ :param disk_restore_point_name: The name of the disk restore point created. Supported
+ characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters.
+ :type disk_restore_point_name: str
+ :keyword callable cls: A custom type or function that will be passed the direct response
+ :keyword str continuation_token: A continuation token to restart a poller from a saved state.
+ :keyword polling: By default, your polling method will be ARMPolling.
+ Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy.
+ :paramtype polling: bool or ~azure.core.polling.PollingMethod
+ :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.
+ :return: An instance of LROPoller that returns either None or the result of cls(response)
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod]
+ cls = kwargs.pop('cls', None) # type: ClsType[None]
+ lro_delay = kwargs.pop(
+ 'polling_interval',
+ self._config.polling_interval
+ )
+ cont_token = kwargs.pop('continuation_token', None) # type: Optional[str]
+ if cont_token is None:
+ raw_result = self._revoke_access_initial(
+ resource_group_name=resource_group_name,
+ restore_point_collection_name=restore_point_collection_name,
+ vm_restore_point_name=vm_restore_point_name,
+ disk_restore_point_name=disk_restore_point_name,
+ cls=lambda x,y,z: x,
+ **kwargs
+ )
+
+ kwargs.pop('error_map', None)
+ kwargs.pop('content_type', None)
+
+ def get_long_running_output(pipeline_response):
+ if cls:
+ return cls(pipeline_response, None, {})
+
+ path_format_arguments = {
+ 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'),
+ 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'),
+ 'restorePointCollectionName': self._serialize.url("restore_point_collection_name", restore_point_collection_name, 'str'),
+ 'vmRestorePointName': self._serialize.url("vm_restore_point_name", vm_restore_point_name, 'str'),
+ 'diskRestorePointName': self._serialize.url("disk_restore_point_name", disk_restore_point_name, 'str'),
+ }
+
+ if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'location'}, path_format_arguments=path_format_arguments, **kwargs)
+ elif polling is False: polling_method = NoPolling()
+ else: polling_method = polling
+ if cont_token:
+ return LROPoller.from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output
+ )
+ else:
+ return LROPoller(self._client, raw_result, get_long_running_output, polling_method)
+ begin_revoke_access.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{vmRestorePointName}/diskRestorePoints/{diskRestorePointName}/endGetAccess'} # type: ignore
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/_version.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/_version.py
index bb46423cd61e..e5754a47ce68 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/_version.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "21.0.0"
+VERSION = "1.0.0b1"
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/__init__.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/__init__.py
index 04e6ef3e0d90..5f2c0f57de29 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/__init__.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/__init__.py
@@ -583,6 +583,7 @@
RestorePointCollectionExpandOptions,
RollingUpgradeActionType,
RollingUpgradeStatusCode,
+ SecurityTypes,
SettingNames,
StatusLevelTypes,
StorageAccountTypes,
@@ -913,6 +914,7 @@
'RestorePointCollectionExpandOptions',
'RollingUpgradeActionType',
'RollingUpgradeStatusCode',
+ 'SecurityTypes',
'SettingNames',
'StatusLevelTypes',
'StorageAccountTypes',
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/_compute_management_client_enums.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/_compute_management_client_enums.py
index 6fe7ba392a9e..082a68926610 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/_compute_management_client_enums.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/_compute_management_client_enums.py
@@ -402,6 +402,14 @@ class RollingUpgradeStatusCode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enu
COMPLETED = "Completed"
FAULTED = "Faulted"
+class SecurityTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
+ """Specifies the SecurityType of the virtual machine. It is set as TrustedLaunch to enable
+ UefiSettings. :code:`
`:code:`
` Default: UefiSettings will not be enabled unless this
+ property is set as TrustedLaunch.
+ """
+
+ TRUSTED_LAUNCH = "TrustedLaunch"
+
class SettingNames(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
"""Specifies the name of the setting to which the content applies. Possible values are:
FirstLogonCommands and AutoLogon.
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/_models.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/_models.py
index d3084c280f5c..b7c582d50fbe 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/_models.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/_models.py
@@ -5582,8 +5582,6 @@ def __init__(
class SecurityProfile(msrest.serialization.Model):
"""Specifies the Security profile settings for the virtual machine or virtual machine scale set.
- Variables are only populated by the server, and will be ignored when sending a request.
-
:param uefi_settings: Specifies the security settings like secure boot and vTPM used while
creating the virtual machine. :code:`
`:code:`
`Minimum api-version: 2020-12-01.
:type uefi_settings: ~azure.mgmt.compute.v2021_03_01.models.UefiSettings
@@ -5593,24 +5591,19 @@ class SecurityProfile(msrest.serialization.Model):
:code:`
`:code:`
` Default: The Encryption at host will be disabled unless this property
is set to true for the resource.
:type encryption_at_host: bool
- :ivar security_type: Specifies the SecurityType of the virtual machine. It is set as
+ :param security_type: Specifies the SecurityType of the virtual machine. It is set as
TrustedLaunch to enable UefiSettings. :code:`
`:code:`
` Default: UefiSettings will not
- be enabled unless this property is set as TrustedLaunch. Default value: "TrustedLaunch".
- :vartype security_type: str
+ be enabled unless this property is set as TrustedLaunch. Possible values include:
+ "TrustedLaunch".
+ :type security_type: str or ~azure.mgmt.compute.v2021_03_01.models.SecurityTypes
"""
- _validation = {
- 'security_type': {'constant': True},
- }
-
_attribute_map = {
'uefi_settings': {'key': 'uefiSettings', 'type': 'UefiSettings'},
'encryption_at_host': {'key': 'encryptionAtHost', 'type': 'bool'},
'security_type': {'key': 'securityType', 'type': 'str'},
}
- security_type = "TrustedLaunch"
-
def __init__(
self,
**kwargs
@@ -5618,6 +5611,7 @@ def __init__(
super(SecurityProfile, self).__init__(**kwargs)
self.uefi_settings = kwargs.get('uefi_settings', None)
self.encryption_at_host = kwargs.get('encryption_at_host', None)
+ self.security_type = kwargs.get('security_type', None)
class Sku(msrest.serialization.Model):
diff --git a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/_models_py3.py b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/_models_py3.py
index 8a1ef3f9f24d..9c49157ae3e8 100644
--- a/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/_models_py3.py
+++ b/sdk/compute/azure-mgmt-compute/azure/mgmt/compute/v2021_03_01/models/_models_py3.py
@@ -6086,8 +6086,6 @@ def __init__(
class SecurityProfile(msrest.serialization.Model):
"""Specifies the Security profile settings for the virtual machine or virtual machine scale set.
- Variables are only populated by the server, and will be ignored when sending a request.
-
:param uefi_settings: Specifies the security settings like secure boot and vTPM used while
creating the virtual machine. :code:`
`:code:`
`Minimum api-version: 2020-12-01.
:type uefi_settings: ~azure.mgmt.compute.v2021_03_01.models.UefiSettings
@@ -6097,34 +6095,31 @@ class SecurityProfile(msrest.serialization.Model):
:code:`
`:code:`
` Default: The Encryption at host will be disabled unless this property
is set to true for the resource.
:type encryption_at_host: bool
- :ivar security_type: Specifies the SecurityType of the virtual machine. It is set as
+ :param security_type: Specifies the SecurityType of the virtual machine. It is set as
TrustedLaunch to enable UefiSettings. :code:`
`:code:`
` Default: UefiSettings will not
- be enabled unless this property is set as TrustedLaunch. Default value: "TrustedLaunch".
- :vartype security_type: str
+ be enabled unless this property is set as TrustedLaunch. Possible values include:
+ "TrustedLaunch".
+ :type security_type: str or ~azure.mgmt.compute.v2021_03_01.models.SecurityTypes
"""
- _validation = {
- 'security_type': {'constant': True},
- }
-
_attribute_map = {
'uefi_settings': {'key': 'uefiSettings', 'type': 'UefiSettings'},
'encryption_at_host': {'key': 'encryptionAtHost', 'type': 'bool'},
'security_type': {'key': 'securityType', 'type': 'str'},
}
- security_type = "TrustedLaunch"
-
def __init__(
self,
*,
uefi_settings: Optional["UefiSettings"] = None,
encryption_at_host: Optional[bool] = None,
+ security_type: Optional[Union[str, "SecurityTypes"]] = None,
**kwargs
):
super(SecurityProfile, self).__init__(**kwargs)
self.uefi_settings = uefi_settings
self.encryption_at_host = encryption_at_host
+ self.security_type = security_type
class Sku(msrest.serialization.Model):