diff --git a/sdk/scvmm/azure-mgmt-scvmm/CHANGELOG.md b/sdk/scvmm/azure-mgmt-scvmm/CHANGELOG.md index ad3d51e4308..b9b30a51c1e 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/CHANGELOG.md +++ b/sdk/scvmm/azure-mgmt-scvmm/CHANGELOG.md @@ -1,5 +1,120 @@ # Release History +## 1.0.0 (2024-06-20) + +### Features Added + + - Added operation group GuestAgentsOperations + - Added operation group VirtualMachineInstancesOperations + - Added operation group VmInstanceHybridIdentityMetadatasOperations + - Model AvailabilitySet has a new parameter properties + - Model Cloud has a new parameter properties + - Model InventoryItem has a new parameter properties + - Model ProxyResource has a new parameter system_data + - Model Resource has a new parameter system_data + - Model VirtualDisk has a new parameter storage_qos_policy + - Model VirtualDiskUpdate has a new parameter storage_qos_policy + - Model VirtualMachineInventoryItem has a new parameter bios_guid + - Model VirtualMachineInventoryItem has a new parameter managed_machine_resource_id + - Model VirtualMachineInventoryItem has a new parameter os_version + - Model VirtualMachineTemplate has a new parameter properties + - Model VirtualNetwork has a new parameter properties + +### Breaking Changes + + - Client name is changed from `SCVMM` to `ScVmmMgmtClient` + - Model AvailabilitySet no longer has parameter availability_set_name + - Model AvailabilitySet no longer has parameter provisioning_state + - Model AvailabilitySet no longer has parameter vmm_server_id + - Model Cloud no longer has parameter cloud_capacity + - Model Cloud no longer has parameter cloud_name + - Model Cloud no longer has parameter inventory_item_id + - Model Cloud no longer has parameter provisioning_state + - Model Cloud no longer has parameter storage_qo_s_policies + - Model Cloud no longer has parameter uuid + - Model Cloud no longer has parameter vmm_server_id + - Model InventoryItem no longer has parameter inventory_item_name + - Model InventoryItem no longer has parameter inventory_type + - Model InventoryItem no longer has parameter managed_resource_id + - Model InventoryItem no longer has parameter provisioning_state + - Model InventoryItem no longer has parameter uuid + - Model VirtualDisk no longer has parameter storage_qo_s_policy + - Model VirtualDiskUpdate no longer has parameter storage_qo_s_policy + - Model VirtualMachineTemplate no longer has parameter computer_name + - Model VirtualMachineTemplate no longer has parameter cpu_count + - Model VirtualMachineTemplate no longer has parameter disks + - Model VirtualMachineTemplate no longer has parameter dynamic_memory_enabled + - Model VirtualMachineTemplate no longer has parameter dynamic_memory_max_mb + - Model VirtualMachineTemplate no longer has parameter dynamic_memory_min_mb + - Model VirtualMachineTemplate no longer has parameter generation + - Model VirtualMachineTemplate no longer has parameter inventory_item_id + - Model VirtualMachineTemplate no longer has parameter is_customizable + - Model VirtualMachineTemplate no longer has parameter is_highly_available + - Model VirtualMachineTemplate no longer has parameter limit_cpu_for_migration + - Model VirtualMachineTemplate no longer has parameter memory_mb + - Model VirtualMachineTemplate no longer has parameter network_interfaces + - Model VirtualMachineTemplate no longer has parameter os_name + - Model VirtualMachineTemplate no longer has parameter os_type + - Model VirtualMachineTemplate no longer has parameter provisioning_state + - Model VirtualMachineTemplate no longer has parameter uuid + - Model VirtualMachineTemplate no longer has parameter vmm_server_id + - Model VirtualNetwork no longer has parameter inventory_item_id + - Model VirtualNetwork no longer has parameter network_name + - Model VirtualNetwork no longer has parameter provisioning_state + - Model VirtualNetwork no longer has parameter uuid + - Model VirtualNetwork no longer has parameter vmm_server_id + - Operation AvailabilitySetsOperations.begin_create_or_update has a new required parameter availability_set_resource_name + - Operation AvailabilitySetsOperations.begin_create_or_update has a new required parameter resource + - Operation AvailabilitySetsOperations.begin_create_or_update no longer has parameter availability_set_name + - Operation AvailabilitySetsOperations.begin_create_or_update no longer has parameter body + - Operation AvailabilitySetsOperations.begin_delete has a new required parameter availability_set_resource_name + - Operation AvailabilitySetsOperations.begin_delete no longer has parameter availability_set_name + - Operation AvailabilitySetsOperations.begin_update has a new required parameter availability_set_resource_name + - Operation AvailabilitySetsOperations.begin_update has a new required parameter properties + - Operation AvailabilitySetsOperations.begin_update no longer has parameter availability_set_name + - Operation AvailabilitySetsOperations.begin_update no longer has parameter body + - Operation AvailabilitySetsOperations.get has a new required parameter availability_set_resource_name + - Operation AvailabilitySetsOperations.get no longer has parameter availability_set_name + - Operation CloudsOperations.begin_create_or_update has a new required parameter cloud_resource_name + - Operation CloudsOperations.begin_create_or_update has a new required parameter resource + - Operation CloudsOperations.begin_create_or_update no longer has parameter body + - Operation CloudsOperations.begin_create_or_update no longer has parameter cloud_name + - Operation CloudsOperations.begin_delete has a new required parameter cloud_resource_name + - Operation CloudsOperations.begin_delete no longer has parameter cloud_name + - Operation CloudsOperations.begin_update has a new required parameter cloud_resource_name + - Operation CloudsOperations.begin_update has a new required parameter properties + - Operation CloudsOperations.begin_update no longer has parameter body + - Operation CloudsOperations.begin_update no longer has parameter cloud_name + - Operation CloudsOperations.get has a new required parameter cloud_resource_name + - Operation CloudsOperations.get no longer has parameter cloud_name + - Operation InventoryItemsOperations.create has a new required parameter inventory_item_resource_name + - Operation InventoryItemsOperations.create has a new required parameter resource + - Operation InventoryItemsOperations.create no longer has parameter body + - Operation InventoryItemsOperations.create no longer has parameter inventory_item_name + - Operation InventoryItemsOperations.delete has a new required parameter inventory_item_resource_name + - Operation InventoryItemsOperations.delete no longer has parameter inventory_item_name + - Operation InventoryItemsOperations.get has a new required parameter inventory_item_resource_name + - Operation InventoryItemsOperations.get no longer has parameter inventory_item_name + - Operation VirtualMachineTemplatesOperations.begin_create_or_update has a new required parameter resource + - Operation VirtualMachineTemplatesOperations.begin_create_or_update no longer has parameter body + - Operation VirtualMachineTemplatesOperations.begin_update has a new required parameter properties + - Operation VirtualMachineTemplatesOperations.begin_update no longer has parameter body + - Operation VirtualNetworksOperations.begin_create_or_update has a new required parameter resource + - Operation VirtualNetworksOperations.begin_create_or_update no longer has parameter body + - Operation VirtualNetworksOperations.begin_update has a new required parameter properties + - Operation VirtualNetworksOperations.begin_update no longer has parameter body + - Operation VmmServersOperations.begin_create_or_update has a new required parameter resource + - Operation VmmServersOperations.begin_create_or_update no longer has parameter body + - Operation VmmServersOperations.begin_update has a new required parameter properties + - Operation VmmServersOperations.begin_update no longer has parameter body + - Parameter extended_location of model AvailabilitySet is now required + - Parameter location of model AvailabilitySet is now required + - Parameter value of model AvailabilitySetListResult is now required + - Parameter value of model CloudListResult is now required + - Parameter value of model VirtualMachineTemplateListResult is now required + - Parameter value of model VirtualNetworkListResult is now required + - Removed operation group VirtualMachinesOperations + ## 1.0.0b2 (2022-11-23) ### Other Changes diff --git a/sdk/scvmm/azure-mgmt-scvmm/README.md b/sdk/scvmm/azure-mgmt-scvmm/README.md index fa94a8c5132..2bf3587d17f 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/README.md +++ b/sdk/scvmm/azure-mgmt-scvmm/README.md @@ -1,28 +1,61 @@ # Microsoft Azure SDK for Python This is the Microsoft Azure Scvmm Management Client Library. -This package has been tested with Python 3.7+. +This package has been tested with Python 3.8+. For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). ## _Disclaimer_ _Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_ -# Usage +## Getting started + +### Prerequisites + +- Python 3.8+ is required to use this package. +- [Azure subscription](https://azure.microsoft.com/free/) + +### Install the package + +```bash +pip install azure-mgmt-scvmm +pip install azure-identity +``` + +### Authentication + +By default, [Azure Active Directory](https://aka.ms/awps/aad) token authentication depends on correct configure of following environment variables. + +- `AZURE_CLIENT_ID` for Azure client ID. +- `AZURE_TENANT_ID` for Azure tenant ID. +- `AZURE_CLIENT_SECRET` for Azure client secret. + +In addition, Azure subscription ID can be configured via environment variable `AZURE_SUBSCRIPTION_ID`. + +With above configuration, client can be authenticated by following code: + +```python +from azure.identity import DefaultAzureCredential +from azure.mgmt.scvmm import SCVMM +import os + +sub_id = os.getenv("AZURE_SUBSCRIPTION_ID") +client = SCVMM(credential=DefaultAzureCredential(), subscription_id=sub_id) +``` + +## Examples + +Code samples for this package can be found at: +- [Search Scvmm Management](https://docs.microsoft.com/samples/browse/?languages=python&term=Getting%20started%20-%20Managing&terms=Getting%20started%20-%20Managing) on docs.microsoft.com +- [Azure Python Mgmt SDK Samples Repo](https://aka.ms/azsdk/python/mgmt/samples) -To learn how to use this package, see the [quickstart guide](https://aka.ms/azsdk/python/mgmt) - -For docs and references, see [Python SDK References](https://docs.microsoft.com/python/api/overview/azure/) -Code samples for this package can be found at [Scvmm Management](https://docs.microsoft.com/samples/browse/?languages=python&term=Getting%20started%20-%20Managing&terms=Getting%20started%20-%20Managing) on docs.microsoft.com. -Additional code samples for different Azure services are available at [Samples Repo](https://aka.ms/azsdk/python/mgmt/samples) +## Troubleshooting +## Next steps -# Provide Feedback +## Provide Feedback If you encounter any bugs or have suggestions, please file an issue in the [Issues](https://github.com/Azure/azure-sdk-for-python/issues) section of the project. - - -![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-mgmt-scvmm%2FREADME.png) diff --git a/sdk/scvmm/azure-mgmt-scvmm/_meta.json b/sdk/scvmm/azure-mgmt-scvmm/_meta.json index e15dc37325e..15a49f7772e 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/_meta.json +++ b/sdk/scvmm/azure-mgmt-scvmm/_meta.json @@ -1,11 +1,11 @@ { - "commit": "7a54c1a83d14da431c0ae48c4315cba143084bce", + "commit": "061505b89d5d0bbcc9f980e2276f79ff354ce286", "repository_url": "https://github.com/Azure/azure-rest-api-specs", - "autorest": "3.9.2", + "autorest": "3.10.2", "use": [ - "@autorest/python@6.2.7", - "@autorest/modelerfour@4.24.3" + "@autorest/python@6.13.19", + "@autorest/modelerfour@4.27.0" ], - "autorest_command": "autorest specification/scvmm/resource-manager/readme.md --generate-sample=True --include-x-ms-examples-original-file=True --python --python-sdks-folder=/home/vsts/work/1/azure-sdk-for-python/sdk --use=@autorest/python@6.2.7 --use=@autorest/modelerfour@4.24.3 --version=3.9.2 --version-tolerant=False", + "autorest_command": "autorest specification/scvmm/resource-manager/readme.md --generate-sample=True --include-x-ms-examples-original-file=True --python --python-sdks-folder=/home/vsts/work/1/azure-sdk-for-python/sdk --use=@autorest/python@6.13.19 --use=@autorest/modelerfour@4.27.0 --version=3.10.2 --version-tolerant=False", "readme": "specification/scvmm/resource-manager/readme.md" } \ No newline at end of file diff --git a/sdk/scvmm/azure-mgmt-scvmm/assets.json b/sdk/scvmm/azure-mgmt-scvmm/assets.json new file mode 100644 index 00000000000..b2667380343 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/assets.json @@ -0,0 +1,6 @@ +{ + "AssetsRepo": "Azure/azure-sdk-assets", + "AssetsRepoPrefixPath": "python", + "TagPrefix": "python/scvmm/azure-mgmt-scvmm", + "Tag": "python/scvmm/azure-mgmt-scvmm_3e1282e8af" +} diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/__init__.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/__init__.py index 9a7d76ee052..278d7e20065 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/__init__.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/__init__.py @@ -6,7 +6,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from ._scvmm import SCVMM +from ._sc_vmm_mgmt_client import ScVmmMgmtClient from ._version import VERSION __version__ = VERSION @@ -19,7 +19,7 @@ except ImportError: from ._patch import patch_sdk as _patch_sdk __all__ = [ - "SCVMM", + "ScVmmMgmtClient", ] __all__.extend([p for p in _patch_all if p not in __all__]) diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_configuration.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_configuration.py index 687786dd317..879e0c59f21 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_configuration.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_configuration.py @@ -6,44 +6,35 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -import sys from typing import Any, TYPE_CHECKING -from azure.core.configuration import Configuration from azure.core.pipeline import policies from azure.mgmt.core.policies import ARMChallengeAuthenticationPolicy, ARMHttpLoggingPolicy from ._version import VERSION -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports -else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports - if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports from azure.core.credentials import TokenCredential -class SCVMMConfiguration(Configuration): # pylint: disable=too-many-instance-attributes - """Configuration for SCVMM. +class ScVmmMgmtClientConfiguration: # pylint: disable=too-many-instance-attributes,name-too-long + """Configuration for ScVmmMgmtClient. Note that all parameters used to create this instance are saved as instance attributes. :param credential: Credential needed for the client to connect to Azure. Required. :type credential: ~azure.core.credentials.TokenCredential - :param subscription_id: The Azure subscription ID. This is a GUID-formatted string (e.g. - 00000000-0000-0000-0000-000000000000). Required. + :param subscription_id: The ID of the target subscription. The value must be an UUID. Required. :type subscription_id: str - :keyword api_version: Api Version. Default value is "2020-06-05-preview". Note that overriding - this default value may result in unsupported behavior. + :keyword api_version: Api Version. Default value is "2023-10-07". Note that overriding this + default value may result in unsupported behavior. :paramtype api_version: str """ def __init__(self, credential: "TokenCredential", subscription_id: str, **kwargs: Any) -> None: - super(SCVMMConfiguration, self).__init__(**kwargs) - api_version: Literal["2020-06-05-preview"] = kwargs.pop("api_version", "2020-06-05-preview") + api_version: str = kwargs.pop("api_version", "2023-10-07") if credential is None: raise ValueError("Parameter 'credential' must not be None.") @@ -55,6 +46,7 @@ class SCVMMConfiguration(Configuration): # pylint: disable=too-many-instance-at self.api_version = api_version self.credential_scopes = kwargs.pop("credential_scopes", ["https://management.azure.com/.default"]) kwargs.setdefault("sdk_moniker", "mgmt-scvmm/{}".format(VERSION)) + self.polling_interval = kwargs.get("polling_interval", 30) self._configure(**kwargs) def _configure(self, **kwargs: Any) -> None: @@ -63,9 +55,9 @@ class SCVMMConfiguration(Configuration): # pylint: disable=too-many-instance-at self.proxy_policy = kwargs.get("proxy_policy") or policies.ProxyPolicy(**kwargs) self.logging_policy = kwargs.get("logging_policy") or policies.NetworkTraceLoggingPolicy(**kwargs) self.http_logging_policy = kwargs.get("http_logging_policy") or ARMHttpLoggingPolicy(**kwargs) - self.retry_policy = kwargs.get("retry_policy") or policies.RetryPolicy(**kwargs) self.custom_hook_policy = kwargs.get("custom_hook_policy") or policies.CustomHookPolicy(**kwargs) self.redirect_policy = kwargs.get("redirect_policy") or policies.RedirectPolicy(**kwargs) + self.retry_policy = kwargs.get("retry_policy") or policies.RetryPolicy(**kwargs) self.authentication_policy = kwargs.get("authentication_policy") if self.credential and not self.authentication_policy: self.authentication_policy = ARMChallengeAuthenticationPolicy( diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_patch.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_patch.py index f99e77fef98..17dbc073e01 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_patch.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_patch.py @@ -25,6 +25,7 @@ # # -------------------------------------------------------------------------- + # This file is used for handwritten extensions to the generated code. Example: # https://github.com/Azure/azure-sdk-for-python/blob/main/doc/dev/customize_code/how-to-patch-sdk-code.md def patch_sdk(): diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_scvmm.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_sc_vmm_mgmt_client.py similarity index 62% rename from sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_scvmm.py rename to sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_sc_vmm_mgmt_client.py index f5da3dd74c0..636e29d71d0 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_scvmm.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_sc_vmm_mgmt_client.py @@ -9,20 +9,24 @@ from copy import deepcopy from typing import Any, TYPE_CHECKING +from azure.core.pipeline import policies from azure.core.rest import HttpRequest, HttpResponse from azure.mgmt.core import ARMPipelineClient +from azure.mgmt.core.policies import ARMAutoResourceProviderRegistrationPolicy from . import models as _models -from ._configuration import SCVMMConfiguration +from ._configuration import ScVmmMgmtClientConfiguration from ._serialization import Deserializer, Serializer from .operations import ( AvailabilitySetsOperations, CloudsOperations, + GuestAgentsOperations, InventoryItemsOperations, Operations, + VirtualMachineInstancesOperations, VirtualMachineTemplatesOperations, - VirtualMachinesOperations, VirtualNetworksOperations, + VmInstanceHybridIdentityMetadatasOperations, VmmServersOperations, ) @@ -31,35 +35,41 @@ if TYPE_CHECKING: from azure.core.credentials import TokenCredential -class SCVMM: # pylint: disable=client-accepts-api-version-keyword,too-many-instance-attributes +class ScVmmMgmtClient: # pylint: disable=client-accepts-api-version-keyword,too-many-instance-attributes """The Microsoft.ScVmm Rest API spec. - :ivar vmm_servers: VmmServersOperations operations - :vartype vmm_servers: azure.mgmt.scvmm.operations.VmmServersOperations + :ivar virtual_machine_instances: VirtualMachineInstancesOperations operations + :vartype virtual_machine_instances: + azure.mgmt.scvmm.operations.VirtualMachineInstancesOperations + :ivar guest_agents: GuestAgentsOperations operations + :vartype guest_agents: azure.mgmt.scvmm.operations.GuestAgentsOperations + :ivar vm_instance_hybrid_identity_metadatas: VmInstanceHybridIdentityMetadatasOperations + operations + :vartype vm_instance_hybrid_identity_metadatas: + azure.mgmt.scvmm.operations.VmInstanceHybridIdentityMetadatasOperations :ivar operations: Operations operations :vartype operations: azure.mgmt.scvmm.operations.Operations + :ivar availability_sets: AvailabilitySetsOperations operations + :vartype availability_sets: azure.mgmt.scvmm.operations.AvailabilitySetsOperations :ivar clouds: CloudsOperations operations :vartype clouds: azure.mgmt.scvmm.operations.CloudsOperations - :ivar virtual_networks: VirtualNetworksOperations operations - :vartype virtual_networks: azure.mgmt.scvmm.operations.VirtualNetworksOperations - :ivar virtual_machines: VirtualMachinesOperations operations - :vartype virtual_machines: azure.mgmt.scvmm.operations.VirtualMachinesOperations :ivar virtual_machine_templates: VirtualMachineTemplatesOperations operations :vartype virtual_machine_templates: azure.mgmt.scvmm.operations.VirtualMachineTemplatesOperations - :ivar availability_sets: AvailabilitySetsOperations operations - :vartype availability_sets: azure.mgmt.scvmm.operations.AvailabilitySetsOperations + :ivar virtual_networks: VirtualNetworksOperations operations + :vartype virtual_networks: azure.mgmt.scvmm.operations.VirtualNetworksOperations + :ivar vmm_servers: VmmServersOperations operations + :vartype vmm_servers: azure.mgmt.scvmm.operations.VmmServersOperations :ivar inventory_items: InventoryItemsOperations operations :vartype inventory_items: azure.mgmt.scvmm.operations.InventoryItemsOperations :param credential: Credential needed for the client to connect to Azure. Required. :type credential: ~azure.core.credentials.TokenCredential - :param subscription_id: The Azure subscription ID. This is a GUID-formatted string (e.g. - 00000000-0000-0000-0000-000000000000). Required. + :param subscription_id: The ID of the target subscription. The value must be an UUID. Required. :type subscription_id: str :param base_url: Service URL. Default value is "https://management.azure.com". :type base_url: str - :keyword api_version: Api Version. Default value is "2020-06-05-preview". Note that overriding - this default value may result in unsupported behavior. + :keyword api_version: Api Version. Default value is "2023-10-07". Note that overriding this + default value may result in unsupported behavior. :paramtype api_version: str :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. @@ -72,31 +82,53 @@ class SCVMM: # pylint: disable=client-accepts-api-version-keyword,too-many-inst base_url: str = "https://management.azure.com", **kwargs: Any ) -> None: - self._config = SCVMMConfiguration(credential=credential, subscription_id=subscription_id, **kwargs) - self._client = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + self._config = ScVmmMgmtClientConfiguration(credential=credential, subscription_id=subscription_id, **kwargs) + _policies = kwargs.pop("policies", None) + if _policies is None: + _policies = [ + policies.RequestIdPolicy(**kwargs), + self._config.headers_policy, + self._config.user_agent_policy, + self._config.proxy_policy, + policies.ContentDecodePolicy(**kwargs), + ARMAutoResourceProviderRegistrationPolicy(), + self._config.redirect_policy, + self._config.retry_policy, + self._config.authentication_policy, + self._config.custom_hook_policy, + self._config.logging_policy, + policies.DistributedTracingPolicy(**kwargs), + policies.SensitiveHeaderCleanupPolicy(**kwargs) if self._config.redirect_policy else None, + self._config.http_logging_policy, + ] + self._client: ARMPipelineClient = ARMPipelineClient(base_url=base_url, policies=_policies, **kwargs) client_models = {k: v for k, v in _models.__dict__.items() if isinstance(v, type)} self._serialize = Serializer(client_models) self._deserialize = Deserializer(client_models) self._serialize.client_side_validation = False - self.vmm_servers = VmmServersOperations(self._client, self._config, self._serialize, self._deserialize) + self.virtual_machine_instances = VirtualMachineInstancesOperations( + self._client, self._config, self._serialize, self._deserialize + ) + self.guest_agents = GuestAgentsOperations(self._client, self._config, self._serialize, self._deserialize) + self.vm_instance_hybrid_identity_metadatas = VmInstanceHybridIdentityMetadatasOperations( + self._client, self._config, self._serialize, self._deserialize + ) self.operations = Operations(self._client, self._config, self._serialize, self._deserialize) - self.clouds = CloudsOperations(self._client, self._config, self._serialize, self._deserialize) - self.virtual_networks = VirtualNetworksOperations( - self._client, self._config, self._serialize, self._deserialize - ) - self.virtual_machines = VirtualMachinesOperations( - self._client, self._config, self._serialize, self._deserialize - ) - self.virtual_machine_templates = VirtualMachineTemplatesOperations( - self._client, self._config, self._serialize, self._deserialize - ) self.availability_sets = AvailabilitySetsOperations( self._client, self._config, self._serialize, self._deserialize ) + self.clouds = CloudsOperations(self._client, self._config, self._serialize, self._deserialize) + self.virtual_machine_templates = VirtualMachineTemplatesOperations( + self._client, self._config, self._serialize, self._deserialize + ) + self.virtual_networks = VirtualNetworksOperations( + self._client, self._config, self._serialize, self._deserialize + ) + self.vmm_servers = VmmServersOperations(self._client, self._config, self._serialize, self._deserialize) self.inventory_items = InventoryItemsOperations(self._client, self._config, self._serialize, self._deserialize) - def _send_request(self, request: HttpRequest, **kwargs: Any) -> HttpResponse: + def _send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs: Any) -> HttpResponse: """Runs the network request through the client's chained policies. >>> from azure.core.rest import HttpRequest @@ -116,14 +148,14 @@ class SCVMM: # pylint: disable=client-accepts-api-version-keyword,too-many-inst request_copy = deepcopy(request) request_copy.url = self._client.format_url(request_copy.url) - return self._client.send_request(request_copy, **kwargs) + return self._client.send_request(request_copy, stream=stream, **kwargs) # type: ignore def close(self) -> None: self._client.close() - def __enter__(self) -> "SCVMM": + def __enter__(self) -> "ScVmmMgmtClient": self._client.__enter__() return self - def __exit__(self, *exc_details) -> None: + def __exit__(self, *exc_details: Any) -> None: self._client.__exit__(*exc_details) diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_serialization.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_serialization.py index 2c170e28dbc..f0c6180722c 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_serialization.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_serialization.py @@ -38,7 +38,22 @@ import logging import re import sys import codecs -from typing import Optional, Union, AnyStr, IO, Mapping +from typing import ( + Dict, + Any, + cast, + Optional, + Union, + AnyStr, + IO, + Mapping, + Callable, + TypeVar, + MutableMapping, + Type, + List, + Mapping, +) try: from urllib import quote # type: ignore @@ -48,12 +63,14 @@ import xml.etree.ElementTree as ET import isodate # type: ignore -from typing import Dict, Any, cast - -from azure.core.exceptions import DeserializationError, SerializationError, raise_with_traceback +from azure.core.exceptions import DeserializationError, SerializationError +from azure.core.serialization import NULL as CoreNull _BOM = codecs.BOM_UTF8.decode(encoding="utf-8") +ModelType = TypeVar("ModelType", bound="Model") +JSON = MutableMapping[str, Any] + class RawDeserializer: @@ -107,7 +124,7 @@ class RawDeserializer: pass return ET.fromstring(data_as_str) # nosec - except ET.ParseError: + except ET.ParseError as err: # It might be because the server has an issue, and returned JSON with # content-type XML.... # So let's try a JSON load, and if it's still broken @@ -126,7 +143,7 @@ class RawDeserializer: # The function hack is because Py2.7 messes up with exception # context otherwise. _LOGGER.critical("Wasn't XML not JSON, failing") - raise_with_traceback(DeserializationError, "XML is invalid") + raise DeserializationError("XML is invalid") from err raise DeserializationError("Cannot deserialize content-type: {}".format(content_type)) @classmethod @@ -153,13 +170,6 @@ class RawDeserializer: return None -try: - basestring # type: ignore - unicode_str = unicode # type: ignore -except NameError: - basestring = str - unicode_str = str - _LOGGER = logging.getLogger(__name__) try: @@ -277,8 +287,8 @@ class Model(object): _attribute_map: Dict[str, Dict[str, Any]] = {} _validation: Dict[str, Dict[str, Any]] = {} - def __init__(self, **kwargs): - self.additional_properties = {} + def __init__(self, **kwargs: Any) -> None: + self.additional_properties: Optional[Dict[str, Any]] = {} for k in kwargs: if k not in self._attribute_map: _LOGGER.warning("%s is not a known attribute of class %s and will be ignored", k, self.__class__) @@ -287,25 +297,25 @@ class Model(object): else: setattr(self, k, kwargs[k]) - def __eq__(self, other): + def __eq__(self, other: Any) -> bool: """Compare objects by comparing all attributes.""" if isinstance(other, self.__class__): return self.__dict__ == other.__dict__ return False - def __ne__(self, other): + def __ne__(self, other: Any) -> bool: """Compare objects by comparing all attributes.""" return not self.__eq__(other) - def __str__(self): + def __str__(self) -> str: return str(self.__dict__) @classmethod - def enable_additional_properties_sending(cls): + def enable_additional_properties_sending(cls) -> None: cls._attribute_map["additional_properties"] = {"key": "", "type": "{object}"} @classmethod - def is_xml_model(cls): + def is_xml_model(cls) -> bool: try: cls._xml_map # type: ignore except AttributeError: @@ -322,8 +332,8 @@ class Model(object): return _create_xml_node(xml_map.get("name", cls.__name__), xml_map.get("prefix", None), xml_map.get("ns", None)) - def serialize(self, keep_readonly=False, **kwargs): - """Return the JSON that would be sent to azure from this model. + def serialize(self, keep_readonly: bool = False, **kwargs: Any) -> JSON: + """Return the JSON that would be sent to server from this model. This is an alias to `as_dict(full_restapi_key_transformer, keep_readonly=False)`. @@ -334,10 +344,15 @@ class Model(object): :rtype: dict """ serializer = Serializer(self._infer_class_models()) - return serializer._serialize(self, keep_readonly=keep_readonly, **kwargs) + return serializer._serialize(self, keep_readonly=keep_readonly, **kwargs) # type: ignore - def as_dict(self, keep_readonly=True, key_transformer=attribute_transformer, **kwargs): - """Return a dict that can be JSONify using json.dump. + def as_dict( + self, + keep_readonly: bool = True, + key_transformer: Callable[[str, Dict[str, Any], Any], Any] = attribute_transformer, + **kwargs: Any + ) -> JSON: + """Return a dict that can be serialized using json.dump. Advanced usage might optionally use a callback as parameter: @@ -368,7 +383,7 @@ class Model(object): :rtype: dict """ serializer = Serializer(self._infer_class_models()) - return serializer._serialize(self, key_transformer=key_transformer, keep_readonly=keep_readonly, **kwargs) + return serializer._serialize(self, key_transformer=key_transformer, keep_readonly=keep_readonly, **kwargs) # type: ignore @classmethod def _infer_class_models(cls): @@ -384,7 +399,7 @@ class Model(object): return client_models @classmethod - def deserialize(cls, data, content_type=None): + def deserialize(cls: Type[ModelType], data: Any, content_type: Optional[str] = None) -> ModelType: """Parse a str using the RestAPI syntax and return a model. :param str data: A str using RestAPI structure. JSON by default. @@ -393,10 +408,15 @@ class Model(object): :raises: DeserializationError if something went wrong """ deserializer = Deserializer(cls._infer_class_models()) - return deserializer(cls.__name__, data, content_type=content_type) + return deserializer(cls.__name__, data, content_type=content_type) # type: ignore @classmethod - def from_dict(cls, data, key_extractors=None, content_type=None): + def from_dict( + cls: Type[ModelType], + data: Any, + key_extractors: Optional[Callable[[str, Dict[str, Any], Any], Any]] = None, + content_type: Optional[str] = None, + ) -> ModelType: """Parse a dict using given key extractor return a model. By default consider key @@ -409,8 +429,8 @@ class Model(object): :raises: DeserializationError if something went wrong """ deserializer = Deserializer(cls._infer_class_models()) - deserializer.key_extractors = ( - [ + deserializer.key_extractors = ( # type: ignore + [ # type: ignore attribute_key_case_insensitive_extractor, rest_key_case_insensitive_extractor, last_rest_key_case_insensitive_extractor, @@ -418,7 +438,7 @@ class Model(object): if key_extractors is None else key_extractors ) - return deserializer(cls.__name__, data, content_type=content_type) + return deserializer(cls.__name__, data, content_type=content_type) # type: ignore @classmethod def _flatten_subtype(cls, key, objects): @@ -518,7 +538,7 @@ class Serializer(object): "multiple": lambda x, y: x % y != 0, } - def __init__(self, classes=None): + def __init__(self, classes: Optional[Mapping[str, type]] = None): self.serialize_type = { "iso-8601": Serializer.serialize_iso, "rfc-1123": Serializer.serialize_rfc, @@ -534,7 +554,7 @@ class Serializer(object): "[]": self.serialize_iter, "{}": self.serialize_dict, } - self.dependencies = dict(classes) if classes else {} + self.dependencies: Dict[str, type] = dict(classes) if classes else {} self.key_transformer = full_restapi_key_transformer self.client_side_validation = True @@ -602,7 +622,7 @@ class Serializer(object): if xml_desc.get("attr", False): if xml_ns: ET.register_namespace(xml_prefix, xml_ns) - xml_name = "{}{}".format(xml_ns, xml_name) + xml_name = "{{{}}}{}".format(xml_ns, xml_name) serialized.set(xml_name, new_attr) # type: ignore continue if xml_desc.get("text", False): @@ -622,12 +642,11 @@ class Serializer(object): else: # That's a basic type # Integrate namespace if necessary local_node = _create_xml_node(xml_name, xml_prefix, xml_ns) - local_node.text = unicode_str(new_attr) + local_node.text = str(new_attr) serialized.append(local_node) # type: ignore else: # JSON for k in reversed(keys): # type: ignore - unflattened = {k: new_attr} - new_attr = unflattened + new_attr = {k: new_attr} _new_attr = new_attr _serialized = serialized @@ -636,12 +655,13 @@ class Serializer(object): _serialized.update(_new_attr) # type: ignore _new_attr = _new_attr[k] # type: ignore _serialized = _serialized[k] - except ValueError: - continue + except ValueError as err: + if isinstance(err, SerializationError): + raise except (AttributeError, KeyError, TypeError) as err: msg = "Attribute {} in object {} cannot be serialized.\n{}".format(attr_name, class_name, str(target_obj)) - raise_with_traceback(SerializationError, msg, err) + raise SerializationError(msg) from err else: return serialized @@ -656,8 +676,8 @@ class Serializer(object): """ # Just in case this is a dict - internal_data_type = data_type.strip("[]{}") - internal_data_type = self.dependencies.get(internal_data_type, None) + internal_data_type_str = data_type.strip("[]{}") + internal_data_type = self.dependencies.get(internal_data_type_str, None) try: is_xml_model_serialization = kwargs["is_xml"] except KeyError: @@ -683,7 +703,7 @@ class Serializer(object): ] data = deserializer._deserialize(data_type, data) except DeserializationError as err: - raise_with_traceback(SerializationError, "Unable to build a model: " + str(err), err) + raise SerializationError("Unable to build a model: " + str(err)) from err return self._serialize(data, data_type, **kwargs) @@ -703,6 +723,7 @@ class Serializer(object): if kwargs.get("skip_quote") is True: output = str(output) + output = output.replace("{", quote("{")).replace("}", quote("}")) else: output = quote(str(output), safe="") except SerializationError: @@ -715,7 +736,9 @@ class Serializer(object): :param data: The data to be serialized. :param str data_type: The type to be serialized from. - :rtype: str + :keyword bool skip_quote: Whether to skip quote the serialized result. + Defaults to False. + :rtype: str, list :raises: TypeError if serialization fails. :raises: ValueError if data is None """ @@ -723,10 +746,8 @@ class Serializer(object): # Treat the list aside, since we don't want to encode the div separator if data_type.startswith("["): internal_data_type = data_type[1:-1] - data = [self.serialize_data(d, internal_data_type, **kwargs) if d is not None else "" for d in data] - if not kwargs.get("skip_quote", False): - data = [quote(str(d), safe="") for d in data] - return str(self.serialize_iter(data, internal_data_type, **kwargs)) + do_quote = not kwargs.get("skip_quote", False) + return self.serialize_iter(data, internal_data_type, do_quote=do_quote, **kwargs) # Not a list, regular serialization output = self.serialize_data(data, data_type, **kwargs) @@ -777,6 +798,8 @@ class Serializer(object): raise ValueError("No value for given attribute") try: + if data is CoreNull: + return None if data_type in self.basic_types.values(): return self.serialize_basic(data, data_type, **kwargs) @@ -795,7 +818,7 @@ class Serializer(object): except (ValueError, TypeError) as err: msg = "Unable to serialize value: {!r} as type: {!r}." - raise_with_traceback(SerializationError, msg.format(data, data_type), err) + raise SerializationError(msg.format(data, data_type)) from err else: return self._serialize(data, **kwargs) @@ -863,6 +886,8 @@ class Serializer(object): not be None or empty. :param str div: If set, this str will be used to combine the elements in the iterable into a combined string. Default is 'None'. + :keyword bool do_quote: Whether to quote the serialized result of each iterable element. + Defaults to False. :rtype: list, str """ if isinstance(data, str): @@ -875,9 +900,14 @@ class Serializer(object): for d in data: try: serialized.append(self.serialize_data(d, iter_type, **kwargs)) - except ValueError: + except ValueError as err: + if isinstance(err, SerializationError): + raise serialized.append(None) + if kwargs.get("do_quote", False): + serialized = ["" if s is None else quote(str(s), safe="") for s in serialized] + if div: serialized = ["" if s is None else str(s) for s in serialized] serialized = div.join(serialized) @@ -922,7 +952,9 @@ class Serializer(object): for key, value in attr.items(): try: serialized[self.serialize_unicode(key)] = self.serialize_data(value, dict_type, **kwargs) - except ValueError: + except ValueError as err: + if isinstance(err, SerializationError): + raise serialized[self.serialize_unicode(key)] = None if "xml" in serialization_ctxt: @@ -955,7 +987,7 @@ class Serializer(object): return self.serialize_basic(attr, self.basic_types[obj_type], **kwargs) if obj_type is _long_type: return self.serialize_long(attr) - if obj_type is unicode_str: + if obj_type is str: return self.serialize_unicode(attr) if obj_type is datetime.datetime: return self.serialize_iso(attr) @@ -1132,10 +1164,10 @@ class Serializer(object): return date + microseconds + "Z" except (ValueError, OverflowError) as err: msg = "Unable to serialize datetime object." - raise_with_traceback(SerializationError, msg, err) + raise SerializationError(msg) from err except AttributeError as err: msg = "ISO-8601 object must be valid Datetime object." - raise_with_traceback(TypeError, msg, err) + raise TypeError(msg) from err @staticmethod def serialize_unix(attr, **kwargs): @@ -1161,7 +1193,8 @@ def rest_key_extractor(attr, attr_desc, data): working_data = data while "." in key: - dict_keys = _FLATTEN.split(key) + # Need the cast, as for some reasons "split" is typed as list[str | Any] + dict_keys = cast(List[str], _FLATTEN.split(key)) if len(dict_keys) == 1: key = _decode_attribute_map_key(dict_keys[0]) break @@ -1170,7 +1203,6 @@ def rest_key_extractor(attr, attr_desc, data): if working_data is None: # If at any point while following flatten JSON path see None, it means # that all properties under are None as well - # https://github.com/Azure/msrest-for-python/issues/197 return None key = ".".join(dict_keys[1:]) @@ -1191,7 +1223,6 @@ def rest_key_case_insensitive_extractor(attr, attr_desc, data): if working_data is None: # If at any point while following flatten JSON path see None, it means # that all properties under are None as well - # https://github.com/Azure/msrest-for-python/issues/197 return None key = ".".join(dict_keys[1:]) @@ -1242,7 +1273,7 @@ def _extract_name_from_internal_type(internal_type): xml_name = internal_type_xml_map.get("name", internal_type.__name__) xml_ns = internal_type_xml_map.get("ns", None) if xml_ns: - xml_name = "{}{}".format(xml_ns, xml_name) + xml_name = "{{{}}}{}".format(xml_ns, xml_name) return xml_name @@ -1266,7 +1297,7 @@ def xml_key_extractor(attr, attr_desc, data): # Integrate namespace if necessary xml_ns = xml_desc.get("ns", internal_type_xml_map.get("ns", None)) if xml_ns: - xml_name = "{}{}".format(xml_ns, xml_name) + xml_name = "{{{}}}{}".format(xml_ns, xml_name) # If it's an attribute, that's simple if xml_desc.get("attr", False): @@ -1332,7 +1363,7 @@ class Deserializer(object): valid_date = re.compile(r"\d{4}[-]\d{2}[-]\d{2}T\d{2}:\d{2}:\d{2}" r"\.?\d*Z?[-+]?[\d{2}]?:?[\d{2}]?") - def __init__(self, classes=None): + def __init__(self, classes: Optional[Mapping[str, type]] = None): self.deserialize_type = { "iso-8601": Deserializer.deserialize_iso, "rfc-1123": Deserializer.deserialize_rfc, @@ -1352,7 +1383,7 @@ class Deserializer(object): "duration": (isodate.Duration, datetime.timedelta), "iso-8601": (datetime.datetime), } - self.dependencies = dict(classes) if classes else {} + self.dependencies: Dict[str, type] = dict(classes) if classes else {} self.key_extractors = [rest_key_extractor, xml_key_extractor] # Additional properties only works if the "rest_key_extractor" is used to # extract the keys. Making it to work whatever the key extractor is too much @@ -1405,12 +1436,12 @@ class Deserializer(object): response, class_name = self._classify_target(target_obj, data) - if isinstance(response, basestring): + if isinstance(response, str): return self.deserialize_data(data, response) elif isinstance(response, type) and issubclass(response, Enum): return self.deserialize_enum(data, response) - if data is None: + if data is None or data is CoreNull: return data try: attributes = response._attribute_map # type: ignore @@ -1442,7 +1473,7 @@ class Deserializer(object): d_attrs[attr] = value except (AttributeError, TypeError, KeyError) as err: msg = "Unable to deserialize to object: " + class_name # type: ignore - raise_with_traceback(DeserializationError, msg, err) + raise DeserializationError(msg) from err else: additional_properties = self._build_additional_properties(attributes, data) return self._instantiate_model(response, d_attrs, additional_properties) @@ -1471,22 +1502,22 @@ class Deserializer(object): Once classification has been determined, initialize object. :param str target: The target object type to deserialize to. - :param str/dict data: The response data to deseralize. + :param str/dict data: The response data to deserialize. """ if target is None: return None, None - if isinstance(target, basestring): + if isinstance(target, str): try: target = self.dependencies[target] except KeyError: return target, target try: - target = target._classify(data, self.dependencies) + target = target._classify(data, self.dependencies) # type: ignore except AttributeError: pass # Target is not a Model, no classify - return target, target.__class__.__name__ + return target, target.__class__.__name__ # type: ignore def failsafe_deserialize(self, target_obj, data, content_type=None): """Ignores any errors encountered in deserialization, @@ -1496,7 +1527,7 @@ class Deserializer(object): a deserialization error. :param str target_obj: The target object type to deserialize to. - :param str/dict data: The response data to deseralize. + :param str/dict data: The response data to deserialize. :param str content_type: Swagger "produces" if available. """ try: @@ -1539,7 +1570,7 @@ class Deserializer(object): if hasattr(raw_data, "_content_consumed"): return RawDeserializer.deserialize_from_http_generics(raw_data.text, raw_data.headers) - if isinstance(raw_data, (basestring, bytes)) or hasattr(raw_data, "read"): + if isinstance(raw_data, (str, bytes)) or hasattr(raw_data, "read"): return RawDeserializer.deserialize_from_text(raw_data, content_type) # type: ignore return raw_data @@ -1613,7 +1644,7 @@ class Deserializer(object): except (ValueError, TypeError, AttributeError) as err: msg = "Unable to deserialize response data." msg += " Data: {}, {}".format(data, data_type) - raise_with_traceback(DeserializationError, msg, err) + raise DeserializationError(msg) from err else: return self._deserialize(obj_type, data) @@ -1661,7 +1692,7 @@ class Deserializer(object): if isinstance(attr, ET.Element): # Do no recurse on XML, just return the tree as-is return attr - if isinstance(attr, basestring): + if isinstance(attr, str): return self.deserialize_basic(attr, "str") obj_type = type(attr) if obj_type in self.basic_types: @@ -1718,7 +1749,7 @@ class Deserializer(object): if data_type == "bool": if attr in [True, False, 1, 0]: return bool(attr) - elif isinstance(attr, basestring): + elif isinstance(attr, str): if attr.lower() in ["true", "1"]: return True elif attr.lower() in ["false", "0"]: @@ -1769,7 +1800,6 @@ class Deserializer(object): data = data.value if isinstance(data, int): # Workaround. We might consider remove it in the future. - # https://github.com/Azure/azure-rest-api-specs/issues/141 try: return list(enum_obj.__members__.values())[data] except IndexError: @@ -1823,10 +1853,10 @@ class Deserializer(object): if isinstance(attr, ET.Element): attr = attr.text try: - return decimal.Decimal(attr) # type: ignore + return decimal.Decimal(str(attr)) # type: ignore except decimal.DecimalException as err: msg = "Invalid decimal {}".format(attr) - raise_with_traceback(DeserializationError, msg, err) + raise DeserializationError(msg) from err @staticmethod def deserialize_long(attr): @@ -1854,7 +1884,7 @@ class Deserializer(object): duration = isodate.parse_duration(attr) except (ValueError, OverflowError, AttributeError) as err: msg = "Cannot deserialize duration object." - raise_with_traceback(DeserializationError, msg, err) + raise DeserializationError(msg) from err else: return duration @@ -1871,7 +1901,7 @@ class Deserializer(object): if re.search(r"[^\W\d_]", attr, re.I + re.U): # type: ignore raise DeserializationError("Date must have only digits and -. Received: %s" % attr) # This must NOT use defaultmonth/defaultday. Using None ensure this raises an exception. - return isodate.parse_date(attr, defaultmonth=None, defaultday=None) + return isodate.parse_date(attr, defaultmonth=0, defaultday=0) @staticmethod def deserialize_time(attr): @@ -1906,7 +1936,7 @@ class Deserializer(object): date_obj = date_obj.astimezone(tz=TZ_UTC) except ValueError as err: msg = "Cannot deserialize to rfc datetime object." - raise_with_traceback(DeserializationError, msg, err) + raise DeserializationError(msg) from err else: return date_obj @@ -1943,7 +1973,7 @@ class Deserializer(object): raise OverflowError("Hit max or min date") except (ValueError, OverflowError, AttributeError) as err: msg = "Cannot deserialize datetime object." - raise_with_traceback(DeserializationError, msg, err) + raise DeserializationError(msg) from err else: return date_obj @@ -1959,9 +1989,10 @@ class Deserializer(object): if isinstance(attr, ET.Element): attr = int(attr.text) # type: ignore try: + attr = int(attr) date_obj = datetime.datetime.fromtimestamp(attr, TZ_UTC) except ValueError as err: msg = "Cannot deserialize to unix datetime object." - raise_with_traceback(DeserializationError, msg, err) + raise DeserializationError(msg) from err else: return date_obj diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_vendor.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_vendor.py index 9aad73fc743..0dafe0e287f 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_vendor.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_vendor.py @@ -14,14 +14,3 @@ def _convert_request(request, files=None): if files: request.set_formdata_body(files) return request - - -def _format_url_section(template, **kwargs): - components = template.split("/") - while components: - try: - return template.format(**kwargs) - except KeyError as key: - formatted_components = template.split("/") - components = [c for c in formatted_components if "{}".format(key.args[0]) not in c] - template = "/".join(components) diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_version.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_version.py index dfa6ee022f1..c47f66669f1 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_version.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "1.0.0b2" +VERSION = "1.0.0" diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/__init__.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/__init__.py index 984fba34cd9..8e33564fdf3 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/__init__.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/__init__.py @@ -6,7 +6,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from ._scvmm import SCVMM +from ._sc_vmm_mgmt_client import ScVmmMgmtClient try: from ._patch import __all__ as _patch_all @@ -16,7 +16,7 @@ except ImportError: from ._patch import patch_sdk as _patch_sdk __all__ = [ - "SCVMM", + "ScVmmMgmtClient", ] __all__.extend([p for p in _patch_all if p not in __all__]) diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/_configuration.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/_configuration.py index cb32a846720..cee140bb670 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/_configuration.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/_configuration.py @@ -6,44 +6,35 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -import sys from typing import Any, TYPE_CHECKING -from azure.core.configuration import Configuration from azure.core.pipeline import policies from azure.mgmt.core.policies import ARMHttpLoggingPolicy, AsyncARMChallengeAuthenticationPolicy from .._version import VERSION -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports -else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports - if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports from azure.core.credentials_async import AsyncTokenCredential -class SCVMMConfiguration(Configuration): # pylint: disable=too-many-instance-attributes - """Configuration for SCVMM. +class ScVmmMgmtClientConfiguration: # pylint: disable=too-many-instance-attributes,name-too-long + """Configuration for ScVmmMgmtClient. Note that all parameters used to create this instance are saved as instance attributes. :param credential: Credential needed for the client to connect to Azure. Required. :type credential: ~azure.core.credentials_async.AsyncTokenCredential - :param subscription_id: The Azure subscription ID. This is a GUID-formatted string (e.g. - 00000000-0000-0000-0000-000000000000). Required. + :param subscription_id: The ID of the target subscription. The value must be an UUID. Required. :type subscription_id: str - :keyword api_version: Api Version. Default value is "2020-06-05-preview". Note that overriding - this default value may result in unsupported behavior. + :keyword api_version: Api Version. Default value is "2023-10-07". Note that overriding this + default value may result in unsupported behavior. :paramtype api_version: str """ def __init__(self, credential: "AsyncTokenCredential", subscription_id: str, **kwargs: Any) -> None: - super(SCVMMConfiguration, self).__init__(**kwargs) - api_version: Literal["2020-06-05-preview"] = kwargs.pop("api_version", "2020-06-05-preview") + api_version: str = kwargs.pop("api_version", "2023-10-07") if credential is None: raise ValueError("Parameter 'credential' must not be None.") @@ -55,6 +46,7 @@ class SCVMMConfiguration(Configuration): # pylint: disable=too-many-instance-at self.api_version = api_version self.credential_scopes = kwargs.pop("credential_scopes", ["https://management.azure.com/.default"]) kwargs.setdefault("sdk_moniker", "mgmt-scvmm/{}".format(VERSION)) + self.polling_interval = kwargs.get("polling_interval", 30) self._configure(**kwargs) def _configure(self, **kwargs: Any) -> None: @@ -63,9 +55,9 @@ class SCVMMConfiguration(Configuration): # pylint: disable=too-many-instance-at self.proxy_policy = kwargs.get("proxy_policy") or policies.ProxyPolicy(**kwargs) self.logging_policy = kwargs.get("logging_policy") or policies.NetworkTraceLoggingPolicy(**kwargs) self.http_logging_policy = kwargs.get("http_logging_policy") or ARMHttpLoggingPolicy(**kwargs) - self.retry_policy = kwargs.get("retry_policy") or policies.AsyncRetryPolicy(**kwargs) self.custom_hook_policy = kwargs.get("custom_hook_policy") or policies.CustomHookPolicy(**kwargs) self.redirect_policy = kwargs.get("redirect_policy") or policies.AsyncRedirectPolicy(**kwargs) + self.retry_policy = kwargs.get("retry_policy") or policies.AsyncRetryPolicy(**kwargs) self.authentication_policy = kwargs.get("authentication_policy") if self.credential and not self.authentication_policy: self.authentication_policy = AsyncARMChallengeAuthenticationPolicy( diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/_patch.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/_patch.py index f99e77fef98..17dbc073e01 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/_patch.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/_patch.py @@ -25,6 +25,7 @@ # # -------------------------------------------------------------------------- + # This file is used for handwritten extensions to the generated code. Example: # https://github.com/Azure/azure-sdk-for-python/blob/main/doc/dev/customize_code/how-to-patch-sdk-code.md def patch_sdk(): diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/_scvmm.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/_sc_vmm_mgmt_client.py similarity index 62% rename from sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/_scvmm.py rename to sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/_sc_vmm_mgmt_client.py index 32781d965ae..d0ca81a9c92 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/_scvmm.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/_sc_vmm_mgmt_client.py @@ -9,20 +9,24 @@ from copy import deepcopy from typing import Any, Awaitable, TYPE_CHECKING +from azure.core.pipeline import policies from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.mgmt.core import AsyncARMPipelineClient +from azure.mgmt.core.policies import AsyncARMAutoResourceProviderRegistrationPolicy from .. import models as _models from .._serialization import Deserializer, Serializer -from ._configuration import SCVMMConfiguration +from ._configuration import ScVmmMgmtClientConfiguration from .operations import ( AvailabilitySetsOperations, CloudsOperations, + GuestAgentsOperations, InventoryItemsOperations, Operations, + VirtualMachineInstancesOperations, VirtualMachineTemplatesOperations, - VirtualMachinesOperations, VirtualNetworksOperations, + VmInstanceHybridIdentityMetadatasOperations, VmmServersOperations, ) @@ -31,35 +35,41 @@ if TYPE_CHECKING: from azure.core.credentials_async import AsyncTokenCredential -class SCVMM: # pylint: disable=client-accepts-api-version-keyword,too-many-instance-attributes +class ScVmmMgmtClient: # pylint: disable=client-accepts-api-version-keyword,too-many-instance-attributes """The Microsoft.ScVmm Rest API spec. - :ivar vmm_servers: VmmServersOperations operations - :vartype vmm_servers: azure.mgmt.scvmm.aio.operations.VmmServersOperations + :ivar virtual_machine_instances: VirtualMachineInstancesOperations operations + :vartype virtual_machine_instances: + azure.mgmt.scvmm.aio.operations.VirtualMachineInstancesOperations + :ivar guest_agents: GuestAgentsOperations operations + :vartype guest_agents: azure.mgmt.scvmm.aio.operations.GuestAgentsOperations + :ivar vm_instance_hybrid_identity_metadatas: VmInstanceHybridIdentityMetadatasOperations + operations + :vartype vm_instance_hybrid_identity_metadatas: + azure.mgmt.scvmm.aio.operations.VmInstanceHybridIdentityMetadatasOperations :ivar operations: Operations operations :vartype operations: azure.mgmt.scvmm.aio.operations.Operations + :ivar availability_sets: AvailabilitySetsOperations operations + :vartype availability_sets: azure.mgmt.scvmm.aio.operations.AvailabilitySetsOperations :ivar clouds: CloudsOperations operations :vartype clouds: azure.mgmt.scvmm.aio.operations.CloudsOperations - :ivar virtual_networks: VirtualNetworksOperations operations - :vartype virtual_networks: azure.mgmt.scvmm.aio.operations.VirtualNetworksOperations - :ivar virtual_machines: VirtualMachinesOperations operations - :vartype virtual_machines: azure.mgmt.scvmm.aio.operations.VirtualMachinesOperations :ivar virtual_machine_templates: VirtualMachineTemplatesOperations operations :vartype virtual_machine_templates: azure.mgmt.scvmm.aio.operations.VirtualMachineTemplatesOperations - :ivar availability_sets: AvailabilitySetsOperations operations - :vartype availability_sets: azure.mgmt.scvmm.aio.operations.AvailabilitySetsOperations + :ivar virtual_networks: VirtualNetworksOperations operations + :vartype virtual_networks: azure.mgmt.scvmm.aio.operations.VirtualNetworksOperations + :ivar vmm_servers: VmmServersOperations operations + :vartype vmm_servers: azure.mgmt.scvmm.aio.operations.VmmServersOperations :ivar inventory_items: InventoryItemsOperations operations :vartype inventory_items: azure.mgmt.scvmm.aio.operations.InventoryItemsOperations :param credential: Credential needed for the client to connect to Azure. Required. :type credential: ~azure.core.credentials_async.AsyncTokenCredential - :param subscription_id: The Azure subscription ID. This is a GUID-formatted string (e.g. - 00000000-0000-0000-0000-000000000000). Required. + :param subscription_id: The ID of the target subscription. The value must be an UUID. Required. :type subscription_id: str :param base_url: Service URL. Default value is "https://management.azure.com". :type base_url: str - :keyword api_version: Api Version. Default value is "2020-06-05-preview". Note that overriding - this default value may result in unsupported behavior. + :keyword api_version: Api Version. Default value is "2023-10-07". Note that overriding this + default value may result in unsupported behavior. :paramtype api_version: str :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. @@ -72,31 +82,55 @@ class SCVMM: # pylint: disable=client-accepts-api-version-keyword,too-many-inst base_url: str = "https://management.azure.com", **kwargs: Any ) -> None: - self._config = SCVMMConfiguration(credential=credential, subscription_id=subscription_id, **kwargs) - self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + self._config = ScVmmMgmtClientConfiguration(credential=credential, subscription_id=subscription_id, **kwargs) + _policies = kwargs.pop("policies", None) + if _policies is None: + _policies = [ + policies.RequestIdPolicy(**kwargs), + self._config.headers_policy, + self._config.user_agent_policy, + self._config.proxy_policy, + policies.ContentDecodePolicy(**kwargs), + AsyncARMAutoResourceProviderRegistrationPolicy(), + self._config.redirect_policy, + self._config.retry_policy, + self._config.authentication_policy, + self._config.custom_hook_policy, + self._config.logging_policy, + policies.DistributedTracingPolicy(**kwargs), + policies.SensitiveHeaderCleanupPolicy(**kwargs) if self._config.redirect_policy else None, + self._config.http_logging_policy, + ] + self._client: AsyncARMPipelineClient = AsyncARMPipelineClient(base_url=base_url, policies=_policies, **kwargs) client_models = {k: v for k, v in _models.__dict__.items() if isinstance(v, type)} self._serialize = Serializer(client_models) self._deserialize = Deserializer(client_models) self._serialize.client_side_validation = False - self.vmm_servers = VmmServersOperations(self._client, self._config, self._serialize, self._deserialize) + self.virtual_machine_instances = VirtualMachineInstancesOperations( + self._client, self._config, self._serialize, self._deserialize + ) + self.guest_agents = GuestAgentsOperations(self._client, self._config, self._serialize, self._deserialize) + self.vm_instance_hybrid_identity_metadatas = VmInstanceHybridIdentityMetadatasOperations( + self._client, self._config, self._serialize, self._deserialize + ) self.operations = Operations(self._client, self._config, self._serialize, self._deserialize) - self.clouds = CloudsOperations(self._client, self._config, self._serialize, self._deserialize) - self.virtual_networks = VirtualNetworksOperations( - self._client, self._config, self._serialize, self._deserialize - ) - self.virtual_machines = VirtualMachinesOperations( - self._client, self._config, self._serialize, self._deserialize - ) - self.virtual_machine_templates = VirtualMachineTemplatesOperations( - self._client, self._config, self._serialize, self._deserialize - ) self.availability_sets = AvailabilitySetsOperations( self._client, self._config, self._serialize, self._deserialize ) + self.clouds = CloudsOperations(self._client, self._config, self._serialize, self._deserialize) + self.virtual_machine_templates = VirtualMachineTemplatesOperations( + self._client, self._config, self._serialize, self._deserialize + ) + self.virtual_networks = VirtualNetworksOperations( + self._client, self._config, self._serialize, self._deserialize + ) + self.vmm_servers = VmmServersOperations(self._client, self._config, self._serialize, self._deserialize) self.inventory_items = InventoryItemsOperations(self._client, self._config, self._serialize, self._deserialize) - def _send_request(self, request: HttpRequest, **kwargs: Any) -> Awaitable[AsyncHttpResponse]: + def _send_request( + self, request: HttpRequest, *, stream: bool = False, **kwargs: Any + ) -> Awaitable[AsyncHttpResponse]: """Runs the network request through the client's chained policies. >>> from azure.core.rest import HttpRequest @@ -116,14 +150,14 @@ class SCVMM: # pylint: disable=client-accepts-api-version-keyword,too-many-inst request_copy = deepcopy(request) request_copy.url = self._client.format_url(request_copy.url) - return self._client.send_request(request_copy, **kwargs) + return self._client.send_request(request_copy, stream=stream, **kwargs) # type: ignore async def close(self) -> None: await self._client.close() - async def __aenter__(self) -> "SCVMM": + async def __aenter__(self) -> "ScVmmMgmtClient": await self._client.__aenter__() return self - async def __aexit__(self, *exc_details) -> None: + async def __aexit__(self, *exc_details: Any) -> None: await self._client.__aexit__(*exc_details) diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/__init__.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/__init__.py index 69f4eb5e8c3..b8f71f095a0 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/__init__.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/__init__.py @@ -6,13 +6,15 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from ._vmm_servers_operations import VmmServersOperations +from ._virtual_machine_instances_operations import VirtualMachineInstancesOperations +from ._guest_agents_operations import GuestAgentsOperations +from ._vm_instance_hybrid_identity_metadatas_operations import VmInstanceHybridIdentityMetadatasOperations from ._operations import Operations -from ._clouds_operations import CloudsOperations -from ._virtual_networks_operations import VirtualNetworksOperations -from ._virtual_machines_operations import VirtualMachinesOperations -from ._virtual_machine_templates_operations import VirtualMachineTemplatesOperations from ._availability_sets_operations import AvailabilitySetsOperations +from ._clouds_operations import CloudsOperations +from ._virtual_machine_templates_operations import VirtualMachineTemplatesOperations +from ._virtual_networks_operations import VirtualNetworksOperations +from ._vmm_servers_operations import VmmServersOperations from ._inventory_items_operations import InventoryItemsOperations from ._patch import __all__ as _patch_all @@ -20,13 +22,15 @@ from ._patch import * # pylint: disable=unused-wildcard-import from ._patch import patch_sdk as _patch_sdk __all__ = [ - "VmmServersOperations", + "VirtualMachineInstancesOperations", + "GuestAgentsOperations", + "VmInstanceHybridIdentityMetadatasOperations", "Operations", - "CloudsOperations", - "VirtualNetworksOperations", - "VirtualMachinesOperations", - "VirtualMachineTemplatesOperations", "AvailabilitySetsOperations", + "CloudsOperations", + "VirtualMachineTemplatesOperations", + "VirtualNetworksOperations", + "VmmServersOperations", "InventoryItemsOperations", ] __all__.extend([p for p in _patch_all if p not in __all__]) diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_availability_sets_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_availability_sets_operations.py index 02bd502ef2c..37cdc6d9980 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_availability_sets_operations.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_availability_sets_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +6,9 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from io import IOBase import sys -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, Type, TypeVar, Union, cast, overload import urllib.parse from azure.core.async_paging import AsyncItemPaged, AsyncList @@ -40,10 +41,10 @@ from ...operations._availability_sets_operations import ( build_update_request, ) -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -54,7 +55,7 @@ class AvailabilitySetsOperations: **DO NOT** instantiate this class directly. Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.aio.SCVMM`'s + :class:`~azure.mgmt.scvmm.aio.ScVmmMgmtClient`'s :attr:`availability_sets` attribute. """ @@ -67,22 +68,188 @@ class AvailabilitySetsOperations: self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + @distributed_trace + def list_by_subscription(self, **kwargs: Any) -> AsyncIterable["_models.AvailabilitySet"]: + """Implements GET AvailabilitySets in a subscription. + + List of AvailabilitySets in a subscription. + + :return: An iterator like instance of either AvailabilitySet or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.AvailabilitySet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.AvailabilitySetListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("AvailabilitySetListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + + @distributed_trace + def list_by_resource_group( + self, resource_group_name: str, **kwargs: Any + ) -> AsyncIterable["_models.AvailabilitySet"]: + """Implements GET AvailabilitySets in a resource group. + + List of AvailabilitySets in a resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :return: An iterator like instance of either AvailabilitySet or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.AvailabilitySet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.AvailabilitySetListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_resource_group_request( + resource_group_name=resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("AvailabilitySetListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + @distributed_trace_async - async def get(self, resource_group_name: str, availability_set_name: str, **kwargs: Any) -> _models.AvailabilitySet: + async def get( + self, resource_group_name: str, availability_set_resource_name: str, **kwargs: Any + ) -> _models.AvailabilitySet: """Gets an AvailabilitySet. Implements AvailabilitySet GET method. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :keyword callable cls: A custom type or function that will be passed the direct response + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str :return: AvailabilitySet or the result of cls(response) :rtype: ~azure.mgmt.scvmm.models.AvailabilitySet :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -93,25 +260,23 @@ class AvailabilitySetsOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.AvailabilitySet] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( resource_group_name=resource_group_name, - availability_set_name=availability_set_name, + availability_set_resource_name=availability_set_resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -124,22 +289,18 @@ class AvailabilitySetsOperations: deserialized = self._deserialize("AvailabilitySet", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}" - } + return deserialized # type: ignore async def _create_or_update_initial( self, resource_group_name: str, - availability_set_name: str, - body: Union[_models.AvailabilitySet, IO], + availability_set_resource_name: str, + resource: Union[_models.AvailabilitySet, IO[bytes]], **kwargs: Any ) -> _models.AvailabilitySet: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -150,37 +311,35 @@ class AvailabilitySetsOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.AvailabilitySet] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None _content = None - if isinstance(body, (IO, bytes)): - _content = body + if isinstance(resource, (IOBase, bytes)): + _content = resource else: - _json = self._serialize.body(body, "AvailabilitySet") + _json = self._serialize.body(resource, "AvailabilitySet") - request = build_create_or_update_request( + _request = build_create_or_update_request( resource_group_name=resource_group_name, - availability_set_name=availability_set_name, + availability_set_resource_name=availability_set_resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_or_update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -198,6 +357,7 @@ class AvailabilitySetsOperations: response_headers["Azure-AsyncOperation"] = self._deserialize( "str", response.headers.get("Azure-AsyncOperation") ) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) deserialized = self._deserialize("AvailabilitySet", pipeline_response) @@ -206,16 +366,12 @@ class AvailabilitySetsOperations: return deserialized # type: ignore - _create_or_update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}" - } - @overload async def begin_create_or_update( self, resource_group_name: str, - availability_set_name: str, - body: _models.AvailabilitySet, + availability_set_resource_name: str, + resource: _models.AvailabilitySet, *, content_type: str = "application/json", **kwargs: Any @@ -224,23 +380,16 @@ class AvailabilitySetsOperations: Onboards the ScVmm availability set as an Azure resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :param body: Request payload. Required. - :type body: ~azure.mgmt.scvmm.models.AvailabilitySet + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.AvailabilitySet :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: 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 AvailabilitySet or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] @@ -251,8 +400,8 @@ class AvailabilitySetsOperations: async def begin_create_or_update( self, resource_group_name: str, - availability_set_name: str, - body: IO, + availability_set_resource_name: str, + resource: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -261,23 +410,16 @@ class AvailabilitySetsOperations: Onboards the ScVmm availability set as an Azure resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :param body: Request payload. Required. - :type body: IO + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: 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 AvailabilitySet or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] @@ -288,31 +430,22 @@ class AvailabilitySetsOperations: async def begin_create_or_update( self, resource_group_name: str, - availability_set_name: str, - body: Union[_models.AvailabilitySet, IO], + availability_set_resource_name: str, + resource: Union[_models.AvailabilitySet, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.AvailabilitySet]: """Implements AvailabilitySets PUT method. Onboards the ScVmm availability set as an Azure resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :param body: Request payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.AvailabilitySet or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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. + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str + :param resource: Resource create parameters. Is either a AvailabilitySet type or a IO[bytes] + type. Required. + :type resource: ~azure.mgmt.scvmm.models.AvailabilitySet or IO[bytes] :return: An instance of AsyncLROPoller that returns either AvailabilitySet or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] @@ -321,9 +454,7 @@ class AvailabilitySetsOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.AvailabilitySet] = kwargs.pop("cls", None) polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) @@ -332,8 +463,8 @@ class AvailabilitySetsOperations: if cont_token is None: raw_result = await self._create_or_update_initial( resource_group_name=resource_group_name, - availability_set_name=availability_set_name, - body=body, + availability_set_resource_name=availability_set_resource_name, + resource=resource, api_version=api_version, content_type=content_type, cls=lambda x, y, z: x, @@ -346,7 +477,7 @@ class AvailabilitySetsOperations: def get_long_running_output(pipeline_response): deserialized = self._deserialize("AvailabilitySet", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -359,22 +490,228 @@ class AvailabilitySetsOperations: else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.AvailabilitySet].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore + return AsyncLROPoller[_models.AvailabilitySet]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - begin_create_or_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}" - } + async def _update_initial( + self, + resource_group_name: str, + availability_set_resource_name: str, + properties: Union[_models.AvailabilitySetTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> Optional[_models.AvailabilitySet]: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Optional[_models.AvailabilitySet]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(properties, (IOBase, bytes)): + _content = properties + else: + _json = self._serialize.body(properties, "AvailabilitySetTagsUpdate") + + _request = build_update_request( + resource_group_name=resource_group_name, + availability_set_resource_name=availability_set_resource_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = None + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("AvailabilitySet", pipeline_response) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_update( + self, + resource_group_name: str, + availability_set_resource_name: str, + properties: _models.AvailabilitySetTagsUpdate, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.AvailabilitySet]: + """Implements the AvailabilitySets PATCH method. + + Updates the AvailabilitySets resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str + :param properties: The resource properties to be updated. Required. + :type properties: ~azure.mgmt.scvmm.models.AvailabilitySetTagsUpdate + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either AvailabilitySet or the result of + cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_update( + self, + resource_group_name: str, + availability_set_resource_name: str, + properties: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.AvailabilitySet]: + """Implements the AvailabilitySets PATCH method. + + Updates the AvailabilitySets resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str + :param properties: The resource properties to be updated. Required. + :type properties: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either AvailabilitySet or the result of + cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def begin_update( + self, + resource_group_name: str, + availability_set_resource_name: str, + properties: Union[_models.AvailabilitySetTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.AvailabilitySet]: + """Implements the AvailabilitySets PATCH method. + + Updates the AvailabilitySets resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str + :param properties: The resource properties to be updated. Is either a AvailabilitySetTagsUpdate + type or a IO[bytes] type. Required. + :type properties: ~azure.mgmt.scvmm.models.AvailabilitySetTagsUpdate or IO[bytes] + :return: An instance of AsyncLROPoller that returns either AvailabilitySet or the result of + cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.AvailabilitySet] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._update_initial( + resource_group_name=resource_group_name, + availability_set_resource_name=availability_set_resource_name, + properties=properties, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("AvailabilitySet", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, + AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.AvailabilitySet].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.AvailabilitySet]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _delete_initial( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, availability_set_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + availability_set_resource_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> None: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -385,31 +722,29 @@ class AvailabilitySetsOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( resource_group_name=resource_group_name, - availability_set_name=availability_set_name, + availability_set_resource_name=availability_set_resource_name, subscription_id=self._config.subscription_id, force=force, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response - if response.status_code not in [200, 202, 204]: + if response.status_code not in [202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) @@ -419,37 +754,32 @@ class AvailabilitySetsOperations: response_headers["Azure-AsyncOperation"] = self._deserialize( "str", response.headers.get("Azure-AsyncOperation") ) + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) if cls: - return cls(pipeline_response, None, response_headers) - - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}" - } + return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async async def begin_delete( - self, resource_group_name: str, availability_set_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + availability_set_resource_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> AsyncLROPoller[None]: """Implements AvailabilitySet DELETE method. Deregisters the ScVmm availability set from Azure. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :param force: Forces the resource to be deleted from azure. The corresponding CR would be - attempted to be deleted too. Default value is None. - :type force: bool - :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. + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str + :param force: Forces the resource to be deleted. Known values are: "true" and "false". Default + value is None. + :type force: str or ~azure.mgmt.scvmm.models.ForceDelete :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: @@ -457,9 +787,7 @@ class AvailabilitySetsOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) @@ -467,7 +795,7 @@ class AvailabilitySetsOperations: if cont_token is None: raw_result = await self._delete_initial( # type: ignore resource_group_name=resource_group_name, - availability_set_name=availability_set_name, + availability_set_resource_name=availability_set_resource_name, force=force, api_version=api_version, cls=lambda x, y, z: x, @@ -479,435 +807,21 @@ class AvailabilitySetsOperations: def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) - elif polling is False: - polling_method = cast(AsyncPollingMethod, 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, - ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}" - } - - async def _update_initial( - self, - resource_group_name: str, - availability_set_name: str, - body: Union[_models.ResourcePatch, IO], - **kwargs: Any - ) -> Optional[_models.AvailabilitySet]: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.AvailabilitySet]] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - _json = self._serialize.body(body, "ResourcePatch") - - request = build_update_request( - resource_group_name=resource_group_name, - availability_set_name=availability_set_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._update_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 201, 202]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("AvailabilitySet", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("AvailabilitySet", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}" - } - - @overload - async def begin_update( - self, - resource_group_name: str, - availability_set_name: str, - body: _models.ResourcePatch, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[_models.AvailabilitySet]: - """Implements the AvailabilitySets PATCH method. - - Updates the AvailabilitySets resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :param body: AvailabilitySets patch payload. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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 AvailabilitySet or the result of - cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - async def begin_update( - self, - resource_group_name: str, - availability_set_name: str, - body: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[_models.AvailabilitySet]: - """Implements the AvailabilitySets PATCH method. - - Updates the AvailabilitySets resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :param body: AvailabilitySets patch payload. Required. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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 AvailabilitySet or the result of - cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace_async - async def begin_update( - self, - resource_group_name: str, - availability_set_name: str, - body: Union[_models.ResourcePatch, IO], - **kwargs: Any - ) -> AsyncLROPoller[_models.AvailabilitySet]: - """Implements the AvailabilitySets PATCH method. - - Updates the AvailabilitySets resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :param body: AvailabilitySets patch payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 AvailabilitySet or the result of - cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.AvailabilitySet] = kwargs.pop("cls", None) - polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = await self._update_initial( - resource_group_name=resource_group_name, - availability_set_name=availability_set_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize("AvailabilitySet", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast( - AsyncPollingMethod, - AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) ) elif polling is False: polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[None].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}" - } - - @distributed_trace - def list_by_resource_group( - self, resource_group_name: str, **kwargs: Any - ) -> AsyncIterable["_models.AvailabilitySet"]: - """Implements GET AvailabilitySets in a resource group. - - List of AvailabilitySets in a resource group. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either AvailabilitySet or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.AvailabilitySet] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.AvailabilitySetListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_resource_group_request( - resource_group_name=resource_group_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_resource_group.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize("AvailabilitySetListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) - - list_by_resource_group.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets" - } - - @distributed_trace - def list_by_subscription(self, **kwargs: Any) -> AsyncIterable["_models.AvailabilitySet"]: - """Implements GET AvailabilitySets in a subscription. - - List of AvailabilitySets in a subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either AvailabilitySet or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.AvailabilitySet] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.AvailabilitySetListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_subscription_request( - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_subscription.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize("AvailabilitySetListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) - - list_by_subscription.metadata = { - "url": "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/availabilitySets" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_clouds_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_clouds_operations.py index c9451ffa086..9aedd2c897d 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_clouds_operations.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_clouds_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +6,9 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from io import IOBase import sys -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, Type, TypeVar, Union, cast, overload import urllib.parse from azure.core.async_paging import AsyncItemPaged, AsyncList @@ -40,10 +41,10 @@ from ...operations._clouds_operations import ( build_update_request, ) -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -54,7 +55,7 @@ class CloudsOperations: **DO NOT** instantiate this class directly. Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.aio.SCVMM`'s + :class:`~azure.mgmt.scvmm.aio.ScVmmMgmtClient`'s :attr:`clouds` attribute. """ @@ -67,22 +68,184 @@ class CloudsOperations: self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + @distributed_trace + def list_by_subscription(self, **kwargs: Any) -> AsyncIterable["_models.Cloud"]: + """Implements GET Clouds in a subscription. + + List of Clouds in a subscription. + + :return: An iterator like instance of either Cloud or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.Cloud] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.CloudListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("CloudListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + + @distributed_trace + def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> AsyncIterable["_models.Cloud"]: + """Implements GET Clouds in a resource group. + + List of Clouds in a resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :return: An iterator like instance of either Cloud or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.Cloud] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.CloudListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_resource_group_request( + resource_group_name=resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("CloudListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + @distributed_trace_async - async def get(self, resource_group_name: str, cloud_name: str, **kwargs: Any) -> _models.Cloud: + async def get(self, resource_group_name: str, cloud_resource_name: str, **kwargs: Any) -> _models.Cloud: """Gets a Cloud. Implements Cloud GET method. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :keyword callable cls: A custom type or function that will be passed the direct response + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str :return: Cloud or the result of cls(response) :rtype: ~azure.mgmt.scvmm.models.Cloud :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -93,25 +256,23 @@ class CloudsOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.Cloud] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( resource_group_name=resource_group_name, - cloud_name=cloud_name, + cloud_resource_name=cloud_resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -124,18 +285,18 @@ class CloudsOperations: deserialized = self._deserialize("Cloud", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}" - } + return deserialized # type: ignore async def _create_or_update_initial( - self, resource_group_name: str, cloud_name: str, body: Union[_models.Cloud, IO], **kwargs: Any + self, + resource_group_name: str, + cloud_resource_name: str, + resource: Union[_models.Cloud, IO[bytes]], + **kwargs: Any ) -> _models.Cloud: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -146,37 +307,35 @@ class CloudsOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.Cloud] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None _content = None - if isinstance(body, (IO, bytes)): - _content = body + if isinstance(resource, (IOBase, bytes)): + _content = resource else: - _json = self._serialize.body(body, "Cloud") + _json = self._serialize.body(resource, "Cloud") - request = build_create_or_update_request( + _request = build_create_or_update_request( resource_group_name=resource_group_name, - cloud_name=cloud_name, + cloud_resource_name=cloud_resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_or_update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -186,27 +345,26 @@ class CloudsOperations: error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + response_headers = {} if response.status_code == 200: deserialized = self._deserialize("Cloud", pipeline_response) if response.status_code == 201: + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + deserialized = self._deserialize("Cloud", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore - _create_or_update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}" - } - @overload async def begin_create_or_update( self, resource_group_name: str, - cloud_name: str, - body: _models.Cloud, + cloud_resource_name: str, + resource: _models.Cloud, *, content_type: str = "application/json", **kwargs: Any @@ -215,23 +373,16 @@ class CloudsOperations: Onboards the ScVmm fabric cloud as an Azure cloud resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :param body: Request payload. Required. - :type body: ~azure.mgmt.scvmm.models.Cloud + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.Cloud :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: 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 Cloud or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.Cloud] :raises ~azure.core.exceptions.HttpResponseError: @@ -241,8 +392,8 @@ class CloudsOperations: async def begin_create_or_update( self, resource_group_name: str, - cloud_name: str, - body: IO, + cloud_resource_name: str, + resource: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -251,23 +402,16 @@ class CloudsOperations: Onboards the ScVmm fabric cloud as an Azure cloud resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :param body: Request payload. Required. - :type body: IO + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: 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 Cloud or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.Cloud] :raises ~azure.core.exceptions.HttpResponseError: @@ -275,29 +419,24 @@ class CloudsOperations: @distributed_trace_async async def begin_create_or_update( - self, resource_group_name: str, cloud_name: str, body: Union[_models.Cloud, IO], **kwargs: Any + self, + resource_group_name: str, + cloud_resource_name: str, + resource: Union[_models.Cloud, IO[bytes]], + **kwargs: Any ) -> AsyncLROPoller[_models.Cloud]: """Implements Clouds PUT method. Onboards the ScVmm fabric cloud as an Azure cloud resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :param body: Request payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.Cloud or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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. + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str + :param resource: Resource create parameters. Is either a Cloud type or a IO[bytes] type. + Required. + :type resource: ~azure.mgmt.scvmm.models.Cloud or IO[bytes] :return: An instance of AsyncLROPoller that returns either Cloud or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.Cloud] :raises ~azure.core.exceptions.HttpResponseError: @@ -305,9 +444,7 @@ class CloudsOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.Cloud] = kwargs.pop("cls", None) polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) @@ -316,8 +453,8 @@ class CloudsOperations: if cont_token is None: raw_result = await self._create_or_update_initial( resource_group_name=resource_group_name, - cloud_name=cloud_name, - body=body, + cloud_resource_name=cloud_resource_name, + resource=resource, api_version=api_version, content_type=content_type, cls=lambda x, y, z: x, @@ -330,7 +467,7 @@ class CloudsOperations: def get_long_running_output(pipeline_response): deserialized = self._deserialize("Cloud", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -343,22 +480,225 @@ class CloudsOperations: else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.Cloud].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore + return AsyncLROPoller[_models.Cloud]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - begin_create_or_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}" - } + async def _update_initial( + self, + resource_group_name: str, + cloud_resource_name: str, + properties: Union[_models.CloudTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> Optional[_models.Cloud]: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Optional[_models.Cloud]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(properties, (IOBase, bytes)): + _content = properties + else: + _json = self._serialize.body(properties, "CloudTagsUpdate") + + _request = build_update_request( + resource_group_name=resource_group_name, + cloud_resource_name=cloud_resource_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = None + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("Cloud", pipeline_response) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_update( + self, + resource_group_name: str, + cloud_resource_name: str, + properties: _models.CloudTagsUpdate, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.Cloud]: + """Implements the Clouds PATCH method. + + Updates the Clouds resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str + :param properties: The resource properties to be updated. Required. + :type properties: ~azure.mgmt.scvmm.models.CloudTagsUpdate + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either Cloud or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.Cloud] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_update( + self, + resource_group_name: str, + cloud_resource_name: str, + properties: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.Cloud]: + """Implements the Clouds PATCH method. + + Updates the Clouds resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str + :param properties: The resource properties to be updated. Required. + :type properties: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either Cloud or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.Cloud] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def begin_update( + self, + resource_group_name: str, + cloud_resource_name: str, + properties: Union[_models.CloudTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.Cloud]: + """Implements the Clouds PATCH method. + + Updates the Clouds resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str + :param properties: The resource properties to be updated. Is either a CloudTagsUpdate type or a + IO[bytes] type. Required. + :type properties: ~azure.mgmt.scvmm.models.CloudTagsUpdate or IO[bytes] + :return: An instance of AsyncLROPoller that returns either Cloud or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.Cloud] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.Cloud] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._update_initial( + resource_group_name=resource_group_name, + cloud_resource_name=cloud_resource_name, + properties=properties, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("Cloud", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, + AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.Cloud].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.Cloud]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _delete_initial( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, cloud_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + cloud_resource_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> None: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -369,65 +709,61 @@ class CloudsOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( resource_group_name=resource_group_name, - cloud_name=cloud_name, + cloud_resource_name=cloud_resource_name, subscription_id=self._config.subscription_id, force=force, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response - if response.status_code not in [200, 202, 204]: + if response.status_code not in [202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - if cls: - return cls(pipeline_response, None, {}) + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}" - } + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async async def begin_delete( - self, resource_group_name: str, cloud_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + cloud_resource_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> AsyncLROPoller[None]: """Implements Cloud resource DELETE method. Deregisters the ScVmm fabric cloud from Azure. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :param force: Forces the resource to be deleted from azure. The corresponding CR would be - attempted to be deleted too. Default value is None. - :type force: bool - :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. + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str + :param force: Forces the resource to be deleted. Known values are: "true" and "false". Default + value is None. + :type force: str or ~azure.mgmt.scvmm.models.ForceDelete :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: @@ -435,9 +771,7 @@ class CloudsOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) @@ -445,7 +779,7 @@ class CloudsOperations: if cont_token is None: raw_result = await self._delete_initial( # type: ignore resource_group_name=resource_group_name, - cloud_name=cloud_name, + cloud_resource_name=cloud_resource_name, force=force, api_version=api_version, cls=lambda x, y, z: x, @@ -457,7 +791,7 @@ class CloudsOperations: def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast( @@ -469,411 +803,10 @@ class CloudsOperations: else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[None].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}" - } - - async def _update_initial( - self, resource_group_name: str, cloud_name: str, body: Union[_models.ResourcePatch, IO], **kwargs: Any - ) -> Optional[_models.Cloud]: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Cloud]] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - _json = self._serialize.body(body, "ResourcePatch") - - request = build_update_request( - resource_group_name=resource_group_name, - cloud_name=cloud_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._update_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 201, 202]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Cloud", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("Cloud", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}" - } - - @overload - async def begin_update( - self, - resource_group_name: str, - cloud_name: str, - body: _models.ResourcePatch, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[_models.Cloud]: - """Implements the Clouds PATCH method. - - Updates the Clouds resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :param body: Clouds patch payload. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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 Cloud or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.Cloud] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - async def begin_update( - self, - resource_group_name: str, - cloud_name: str, - body: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[_models.Cloud]: - """Implements the Clouds PATCH method. - - Updates the Clouds resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :param body: Clouds patch payload. Required. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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 Cloud or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.Cloud] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace_async - async def begin_update( - self, resource_group_name: str, cloud_name: str, body: Union[_models.ResourcePatch, IO], **kwargs: Any - ) -> AsyncLROPoller[_models.Cloud]: - """Implements the Clouds PATCH method. - - Updates the Clouds resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :param body: Clouds patch payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 Cloud or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.Cloud] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.Cloud] = kwargs.pop("cls", None) - polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = await self._update_initial( - resource_group_name=resource_group_name, - cloud_name=cloud_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Cloud", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - if polling is True: - polling_method: AsyncPollingMethod = cast( - AsyncPollingMethod, - AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), - ) - elif polling is False: - polling_method = cast(AsyncPollingMethod, 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, - ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}" - } - - @distributed_trace - def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> AsyncIterable["_models.Cloud"]: - """Implements GET Clouds in a resource group. - - List of Clouds in a resource group. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either Cloud or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.Cloud] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.CloudListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_resource_group_request( - resource_group_name=resource_group_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_resource_group.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize("CloudListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) - - list_by_resource_group.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds" - } - - @distributed_trace - def list_by_subscription(self, **kwargs: Any) -> AsyncIterable["_models.Cloud"]: - """Implements GET Clouds in a subscription. - - List of Clouds in a subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either Cloud or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.Cloud] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.CloudListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_subscription_request( - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_subscription.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize("CloudListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) - - list_by_subscription.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/clouds"} + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_guest_agents_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_guest_agents_operations.py new file mode 100644 index 00000000000..771593ceca8 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_guest_agents_operations.py @@ -0,0 +1,430 @@ +# pylint: disable=too-many-lines,too-many-statements +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from io import IOBase +import sys +from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, Type, TypeVar, Union, cast, overload +import urllib.parse + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse +from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod +from azure.core.rest import HttpRequest +from azure.core.tracing.decorator import distributed_trace +from azure.core.tracing.decorator_async import distributed_trace_async +from azure.core.utils import case_insensitive_dict +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling + +from ... import models as _models +from ..._vendor import _convert_request +from ...operations._guest_agents_operations import ( + build_create_request, + build_delete_request, + build_get_request, + build_list_by_virtual_machine_instance_request, +) + +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping +else: + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + + +class GuestAgentsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.scvmm.aio.ScVmmMgmtClient`'s + :attr:`guest_agents` attribute. + """ + + models = _models + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client = input_args.pop(0) if input_args else kwargs.pop("client") + self._config = input_args.pop(0) if input_args else kwargs.pop("config") + self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @distributed_trace + def list_by_virtual_machine_instance(self, resource_uri: str, **kwargs: Any) -> AsyncIterable["_models.GuestAgent"]: + """Implements GET GuestAgent in a vm. + + Returns the list of GuestAgent of the given vm. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :return: An iterator like instance of either GuestAgent or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.GuestAgent] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.GuestAgentListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_virtual_machine_instance_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("GuestAgentListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + + @distributed_trace_async + async def get(self, resource_uri: str, **kwargs: Any) -> _models.GuestAgent: + """Gets GuestAgent. + + Implements GuestAgent GET method. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :return: GuestAgent or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.GuestAgent + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.GuestAgent] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("GuestAgent", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + async def _create_initial( + self, resource_uri: str, resource: Union[_models.GuestAgent, IO[bytes]], **kwargs: Any + ) -> _models.GuestAgent: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.GuestAgent] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(resource, (IOBase, bytes)): + _content = resource + else: + _json = self._serialize.body(resource, "GuestAgent") + + _request = build_create_request( + resource_uri=resource_uri, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("GuestAgent", pipeline_response) + + if response.status_code == 201: + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + deserialized = self._deserialize("GuestAgent", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_create( + self, resource_uri: str, resource: _models.GuestAgent, *, content_type: str = "application/json", **kwargs: Any + ) -> AsyncLROPoller[_models.GuestAgent]: + """Implements GuestAgent PUT method. + + Create Or Update GuestAgent. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.GuestAgent + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either GuestAgent or the result of + cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.GuestAgent] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_create( + self, resource_uri: str, resource: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> AsyncLROPoller[_models.GuestAgent]: + """Implements GuestAgent PUT method. + + Create Or Update GuestAgent. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either GuestAgent or the result of + cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.GuestAgent] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def begin_create( + self, resource_uri: str, resource: Union[_models.GuestAgent, IO[bytes]], **kwargs: Any + ) -> AsyncLROPoller[_models.GuestAgent]: + """Implements GuestAgent PUT method. + + Create Or Update GuestAgent. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param resource: Resource create parameters. Is either a GuestAgent type or a IO[bytes] type. + Required. + :type resource: ~azure.mgmt.scvmm.models.GuestAgent or IO[bytes] + :return: An instance of AsyncLROPoller that returns either GuestAgent or the result of + cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.GuestAgent] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.GuestAgent] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._create_initial( + resource_uri=resource_uri, + resource=resource, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("GuestAgent", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, + AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.GuestAgent].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.GuestAgent]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + @distributed_trace_async + async def delete(self, resource_uri: str, **kwargs: Any) -> None: # pylint: disable=inconsistent-return-statements + """Deletes a GuestAgent resource. + + Implements GuestAgent DELETE method. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :return: None or the result of cls(response) + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + + _request = build_delete_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_inventory_items_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_inventory_items_operations.py index 9323641f8a1..7595d085b9d 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_inventory_items_operations.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_inventory_items_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +6,9 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from io import IOBase import sys -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, overload +from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, Type, TypeVar, Union, overload import urllib.parse from azure.core.async_paging import AsyncItemPaged, AsyncList @@ -36,10 +37,10 @@ from ...operations._inventory_items_operations import ( build_list_by_vmm_server_request, ) -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -50,7 +51,7 @@ class InventoryItemsOperations: **DO NOT** instantiate this class directly. Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.aio.SCVMM`'s + :class:`~azure.mgmt.scvmm.aio.ScVmmMgmtClient`'s :attr:`inventory_items` attribute. """ @@ -63,314 +64,19 @@ class InventoryItemsOperations: self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") - @overload - async def create( - self, - resource_group_name: str, - vmm_server_name: str, - inventory_item_name: str, - body: Optional[_models.InventoryItem] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> _models.InventoryItem: - """Implements InventoryItem PUT method. - - Create Or Update InventoryItem. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param inventory_item_name: Name of the inventoryItem. Required. - :type inventory_item_name: str - :param body: Request payload. Default value is None. - :type body: ~azure.mgmt.scvmm.models.InventoryItem - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: InventoryItem or the result of cls(response) - :rtype: ~azure.mgmt.scvmm.models.InventoryItem - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - async def create( - self, - resource_group_name: str, - vmm_server_name: str, - inventory_item_name: str, - body: Optional[IO] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> _models.InventoryItem: - """Implements InventoryItem PUT method. - - Create Or Update InventoryItem. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param inventory_item_name: Name of the inventoryItem. Required. - :type inventory_item_name: str - :param body: Request payload. Default value is None. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: InventoryItem or the result of cls(response) - :rtype: ~azure.mgmt.scvmm.models.InventoryItem - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace_async - async def create( - self, - resource_group_name: str, - vmm_server_name: str, - inventory_item_name: str, - body: Optional[Union[_models.InventoryItem, IO]] = None, - **kwargs: Any - ) -> _models.InventoryItem: - """Implements InventoryItem PUT method. - - Create Or Update InventoryItem. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param inventory_item_name: Name of the inventoryItem. Required. - :type inventory_item_name: str - :param body: Request payload. Is either a model type or a IO type. Default value is None. - :type body: ~azure.mgmt.scvmm.models.InventoryItem or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: InventoryItem or the result of cls(response) - :rtype: ~azure.mgmt.scvmm.models.InventoryItem - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.InventoryItem] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - if body is not None: - _json = self._serialize.body(body, "InventoryItem") - else: - _json = None - - request = build_create_request( - resource_group_name=resource_group_name, - vmm_server_name=vmm_server_name, - inventory_item_name=inventory_item_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self.create.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize("InventoryItem", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems/{inventoryItemName}" - } - - @distributed_trace_async - async def get( - self, resource_group_name: str, vmm_server_name: str, inventory_item_name: str, **kwargs: Any - ) -> _models.InventoryItem: - """Implements GET InventoryItem method. - - Shows an inventory item. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param inventory_item_name: Name of the inventoryItem. Required. - :type inventory_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: InventoryItem or the result of cls(response) - :rtype: ~azure.mgmt.scvmm.models.InventoryItem - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.InventoryItem] = kwargs.pop("cls", None) - - request = build_get_request( - resource_group_name=resource_group_name, - vmm_server_name=vmm_server_name, - inventory_item_name=inventory_item_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.get.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize("InventoryItem", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems/{inventoryItemName}" - } - - @distributed_trace_async - async def delete( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, vmm_server_name: str, inventory_item_name: str, **kwargs: Any - ) -> None: - """Implements inventoryItem DELETE method. - - Deletes an inventoryItem. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param inventory_item_name: Name of the inventoryItem. Required. - :type inventory_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None or the result of cls(response) - :rtype: None - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[None] = kwargs.pop("cls", None) - - request = build_delete_request( - resource_group_name=resource_group_name, - vmm_server_name=vmm_server_name, - inventory_item_name=inventory_item_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.delete.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 204]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems/{inventoryItemName}" - } - @distributed_trace def list_by_vmm_server( self, resource_group_name: str, vmm_server_name: str, **kwargs: Any ) -> AsyncIterable["_models.InventoryItem"]: """Implements GET for the list of Inventory Items in the VMMServer. - Returns the list of inventoryItems in the given VMMServer. + Returns the list of inventoryItems in the given VmmServer. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. + :param vmm_server_name: Name of the VmmServer. Required. :type vmm_server_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either InventoryItem or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.InventoryItem] :raises ~azure.core.exceptions.HttpResponseError: @@ -378,12 +84,10 @@ class InventoryItemsOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.InventoryItemsList] = kwargs.pop("cls", None) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.InventoryItemListResult] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -394,17 +98,16 @@ class InventoryItemsOperations: def prepare_request(next_link=None): if not next_link: - request = build_list_by_vmm_server_request( + _request = build_list_by_vmm_server_request( resource_group_name=resource_group_name, vmm_server_name=vmm_server_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_vmm_server.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -416,26 +119,27 @@ class InventoryItemsOperations: } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): - deserialized = self._deserialize("InventoryItemsList", pipeline_response) + deserialized = self._deserialize("InventoryItemListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -448,6 +152,278 @@ class InventoryItemsOperations: return AsyncItemPaged(get_next, extract_data) - list_by_vmm_server.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems" - } + @distributed_trace_async + async def get( + self, resource_group_name: str, vmm_server_name: str, inventory_item_resource_name: str, **kwargs: Any + ) -> _models.InventoryItem: + """Implements GET InventoryItem method. + + Shows an inventory item. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param inventory_item_resource_name: Name of the inventoryItem. Required. + :type inventory_item_resource_name: str + :return: InventoryItem or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.InventoryItem + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.InventoryItem] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_group_name=resource_group_name, + vmm_server_name=vmm_server_name, + inventory_item_resource_name=inventory_item_resource_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("InventoryItem", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + @overload + async def create( + self, + resource_group_name: str, + vmm_server_name: str, + inventory_item_resource_name: str, + resource: _models.InventoryItem, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.InventoryItem: + """Implements InventoryItem PUT method. + + Create Or Update InventoryItem. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param inventory_item_resource_name: Name of the inventoryItem. Required. + :type inventory_item_resource_name: str + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.InventoryItem + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: InventoryItem or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.InventoryItem + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def create( + self, + resource_group_name: str, + vmm_server_name: str, + inventory_item_resource_name: str, + resource: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.InventoryItem: + """Implements InventoryItem PUT method. + + Create Or Update InventoryItem. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param inventory_item_resource_name: Name of the inventoryItem. Required. + :type inventory_item_resource_name: str + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: InventoryItem or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.InventoryItem + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def create( + self, + resource_group_name: str, + vmm_server_name: str, + inventory_item_resource_name: str, + resource: Union[_models.InventoryItem, IO[bytes]], + **kwargs: Any + ) -> _models.InventoryItem: + """Implements InventoryItem PUT method. + + Create Or Update InventoryItem. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param inventory_item_resource_name: Name of the inventoryItem. Required. + :type inventory_item_resource_name: str + :param resource: Resource create parameters. Is either a InventoryItem type or a IO[bytes] + type. Required. + :type resource: ~azure.mgmt.scvmm.models.InventoryItem or IO[bytes] + :return: InventoryItem or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.InventoryItem + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.InventoryItem] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(resource, (IOBase, bytes)): + _content = resource + else: + _json = self._serialize.body(resource, "InventoryItem") + + _request = build_create_request( + resource_group_name=resource_group_name, + vmm_server_name=vmm_server_name, + inventory_item_resource_name=inventory_item_resource_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize("InventoryItem", pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize("InventoryItem", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + @distributed_trace_async + async def delete( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, vmm_server_name: str, inventory_item_resource_name: str, **kwargs: Any + ) -> None: + """Implements inventoryItem DELETE method. + + Deletes an inventoryItem. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param inventory_item_resource_name: Name of the inventoryItem. Required. + :type inventory_item_resource_name: str + :return: None or the result of cls(response) + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + + _request = build_delete_request( + resource_group_name=resource_group_name, + vmm_server_name=vmm_server_name, + inventory_item_resource_name=inventory_item_resource_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_operations.py index 2633d340433..d7d2a1f60b0 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_operations.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,7 +7,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- import sys -from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar +from typing import Any, AsyncIterable, Callable, Dict, Optional, Type, TypeVar import urllib.parse from azure.core.async_paging import AsyncItemPaged, AsyncList @@ -30,10 +30,10 @@ from ... import models as _models from ..._vendor import _convert_request from ...operations._operations import build_list_request -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -44,7 +44,7 @@ class Operations: **DO NOT** instantiate this class directly. Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.aio.SCVMM`'s + :class:`~azure.mgmt.scvmm.aio.ScVmmMgmtClient`'s :attr:`operations` attribute. """ @@ -58,25 +58,20 @@ class Operations: self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def list(self, **kwargs: Any) -> AsyncIterable["_models.ResourceProviderOperation"]: - """Returns list of all operations. + def list(self, **kwargs: Any) -> AsyncIterable["_models.Operation"]: + """List the operations for the provider. - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either ResourceProviderOperation or the result of - cls(response) - :rtype: - ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.ResourceProviderOperation] + :return: An iterator like instance of either Operation or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.Operation] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.ResourceProviderOperationList] = kwargs.pop("cls", None) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.OperationListResult] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -87,14 +82,13 @@ class Operations: def prepare_request(next_link=None): if not next_link: - request = build_list_request( + _request = build_list_request( api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -106,26 +100,27 @@ class Operations: } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): - deserialized = self._deserialize("ResourceProviderOperationList", pipeline_response) + deserialized = self._deserialize("OperationListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -137,5 +132,3 @@ class Operations: return pipeline_response return AsyncItemPaged(get_next, extract_data) - - list.metadata = {"url": "/providers/Microsoft.ScVmm/operations"} diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_virtual_machine_instances_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_virtual_machine_instances_operations.py new file mode 100644 index 00000000000..6d8a3469a27 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_virtual_machine_instances_operations.py @@ -0,0 +1,1552 @@ +# pylint: disable=too-many-lines,too-many-statements +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from io import IOBase +import sys +from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, Type, TypeVar, Union, cast, overload +import urllib.parse + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse +from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod +from azure.core.rest import HttpRequest +from azure.core.tracing.decorator import distributed_trace +from azure.core.tracing.decorator_async import distributed_trace_async +from azure.core.utils import case_insensitive_dict +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling + +from ... import models as _models +from ..._vendor import _convert_request +from ...operations._virtual_machine_instances_operations import ( + build_create_checkpoint_request, + build_create_or_update_request, + build_delete_checkpoint_request, + build_delete_request, + build_get_request, + build_list_request, + build_restart_request, + build_restore_checkpoint_request, + build_start_request, + build_stop_request, + build_update_request, +) + +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping +else: + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + + +class VirtualMachineInstancesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.scvmm.aio.ScVmmMgmtClient`'s + :attr:`virtual_machine_instances` attribute. + """ + + models = _models + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client = input_args.pop(0) if input_args else kwargs.pop("client") + self._config = input_args.pop(0) if input_args else kwargs.pop("config") + self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @distributed_trace + def list(self, resource_uri: str, **kwargs: Any) -> AsyncIterable["_models.VirtualMachineInstance"]: + """Implements List virtual machine instances. + + Lists all of the virtual machine instances within the specified parent resource. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :return: An iterator like instance of either VirtualMachineInstance or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VirtualMachineInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VirtualMachineInstanceListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("VirtualMachineInstanceListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + + @distributed_trace_async + async def get(self, resource_uri: str, **kwargs: Any) -> _models.VirtualMachineInstance: + """Gets a virtual machine. + + Retrieves information about a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :return: VirtualMachineInstance or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.VirtualMachineInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VirtualMachineInstance] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("VirtualMachineInstance", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + async def _create_or_update_initial( + self, resource_uri: str, resource: Union[_models.VirtualMachineInstance, IO[bytes]], **kwargs: Any + ) -> _models.VirtualMachineInstance: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.VirtualMachineInstance] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(resource, (IOBase, bytes)): + _content = resource + else: + _json = self._serialize.body(resource, "VirtualMachineInstance") + + _request = build_create_or_update_request( + resource_uri=resource_uri, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("VirtualMachineInstance", pipeline_response) + + if response.status_code == 201: + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + deserialized = self._deserialize("VirtualMachineInstance", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_create_or_update( + self, + resource_uri: str, + resource: _models.VirtualMachineInstance, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.VirtualMachineInstance]: + """Implements virtual machine PUT method. + + The operation to create or update a virtual machine instance. Please note some properties can + be set only during virtual machine instance creation. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.VirtualMachineInstance + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either VirtualMachineInstance or the result + of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachineInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_create_or_update( + self, resource_uri: str, resource: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> AsyncLROPoller[_models.VirtualMachineInstance]: + """Implements virtual machine PUT method. + + The operation to create or update a virtual machine instance. Please note some properties can + be set only during virtual machine instance creation. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either VirtualMachineInstance or the result + of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachineInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def begin_create_or_update( + self, resource_uri: str, resource: Union[_models.VirtualMachineInstance, IO[bytes]], **kwargs: Any + ) -> AsyncLROPoller[_models.VirtualMachineInstance]: + """Implements virtual machine PUT method. + + The operation to create or update a virtual machine instance. Please note some properties can + be set only during virtual machine instance creation. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param resource: Resource create parameters. Is either a VirtualMachineInstance type or a + IO[bytes] type. Required. + :type resource: ~azure.mgmt.scvmm.models.VirtualMachineInstance or IO[bytes] + :return: An instance of AsyncLROPoller that returns either VirtualMachineInstance or the result + of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachineInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.VirtualMachineInstance] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._create_or_update_initial( + resource_uri=resource_uri, + resource=resource, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("VirtualMachineInstance", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, + AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.VirtualMachineInstance].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.VirtualMachineInstance]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + async def _update_initial( + self, resource_uri: str, properties: Union[_models.VirtualMachineInstanceUpdate, IO[bytes]], **kwargs: Any + ) -> Optional[_models.VirtualMachineInstance]: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Optional[_models.VirtualMachineInstance]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(properties, (IOBase, bytes)): + _content = properties + else: + _json = self._serialize.body(properties, "VirtualMachineInstanceUpdate") + + _request = build_update_request( + resource_uri=resource_uri, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = None + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("VirtualMachineInstance", pipeline_response) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_update( + self, + resource_uri: str, + properties: _models.VirtualMachineInstanceUpdate, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.VirtualMachineInstance]: + """Updates a virtual machine. + + The operation to update a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param properties: The resource properties to be updated. Required. + :type properties: ~azure.mgmt.scvmm.models.VirtualMachineInstanceUpdate + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either VirtualMachineInstance or the result + of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachineInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_update( + self, resource_uri: str, properties: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> AsyncLROPoller[_models.VirtualMachineInstance]: + """Updates a virtual machine. + + The operation to update a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param properties: The resource properties to be updated. Required. + :type properties: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either VirtualMachineInstance or the result + of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachineInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def begin_update( + self, resource_uri: str, properties: Union[_models.VirtualMachineInstanceUpdate, IO[bytes]], **kwargs: Any + ) -> AsyncLROPoller[_models.VirtualMachineInstance]: + """Updates a virtual machine. + + The operation to update a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param properties: The resource properties to be updated. Is either a + VirtualMachineInstanceUpdate type or a IO[bytes] type. Required. + :type properties: ~azure.mgmt.scvmm.models.VirtualMachineInstanceUpdate or IO[bytes] + :return: An instance of AsyncLROPoller that returns either VirtualMachineInstance or the result + of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachineInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.VirtualMachineInstance] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._update_initial( + resource_uri=resource_uri, + properties=properties, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("VirtualMachineInstance", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, + AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.VirtualMachineInstance].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.VirtualMachineInstance]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + async def _delete_initial( # pylint: disable=inconsistent-return-statements + self, + resource_uri: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + delete_from_host: Optional[Union[str, _models.DeleteFromHost]] = None, + **kwargs: Any + ) -> None: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + + _request = build_delete_request( + resource_uri=resource_uri, + force=force, + delete_from_host=delete_from_host, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore + + @distributed_trace_async + async def begin_delete( + self, + resource_uri: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + delete_from_host: Optional[Union[str, _models.DeleteFromHost]] = None, + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Deletes an virtual machine. + + The operation to delete a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param force: Forces the resource to be deleted. Known values are: "true" and "false". Default + value is None. + :type force: str or ~azure.mgmt.scvmm.models.ForceDelete + :param delete_from_host: Whether to disable the VM from azure and also delete it from Vmm. + Known values are: "true" and "false". Default value is None. + :type delete_from_host: str or ~azure.mgmt.scvmm.models.DeleteFromHost + :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: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._delete_initial( # type: ignore + resource_uri=resource_uri, + force=force, + delete_from_host=delete_from_host, + api_version=api_version, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, + AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + + async def _create_checkpoint_initial( # pylint: disable=inconsistent-return-statements + self, resource_uri: str, body: Union[_models.VirtualMachineCreateCheckpoint, IO[bytes]], **kwargs: Any + ) -> None: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(body, (IOBase, bytes)): + _content = body + else: + _json = self._serialize.body(body, "VirtualMachineCreateCheckpoint") + + _request = build_create_checkpoint_request( + resource_uri=resource_uri, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore + + @overload + async def begin_create_checkpoint( + self, + resource_uri: str, + body: _models.VirtualMachineCreateCheckpoint, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Implements the operation to creates a checkpoint in a virtual machine instance. + + Creates a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: ~azure.mgmt.scvmm.models.VirtualMachineCreateCheckpoint + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @overload + async def begin_create_checkpoint( + self, resource_uri: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> AsyncLROPoller[None]: + """Implements the operation to creates a checkpoint in a virtual machine instance. + + Creates a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @distributed_trace_async + async def begin_create_checkpoint( + self, resource_uri: str, body: Union[_models.VirtualMachineCreateCheckpoint, IO[bytes]], **kwargs: Any + ) -> AsyncLROPoller[None]: + """Implements the operation to creates a checkpoint in a virtual machine instance. + + Creates a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Is either a VirtualMachineCreateCheckpoint type + or a IO[bytes] type. Required. + :type body: ~azure.mgmt.scvmm.models.VirtualMachineCreateCheckpoint or IO[bytes] + :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: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._create_checkpoint_initial( # type: ignore + resource_uri=resource_uri, + body=body, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + + async def _delete_checkpoint_initial( # pylint: disable=inconsistent-return-statements + self, resource_uri: str, body: Union[_models.VirtualMachineDeleteCheckpoint, IO[bytes]], **kwargs: Any + ) -> None: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(body, (IOBase, bytes)): + _content = body + else: + _json = self._serialize.body(body, "VirtualMachineDeleteCheckpoint") + + _request = build_delete_checkpoint_request( + resource_uri=resource_uri, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore + + @overload + async def begin_delete_checkpoint( + self, + resource_uri: str, + body: _models.VirtualMachineDeleteCheckpoint, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Implements the operation to delete a checkpoint in a virtual machine instance. + + Deletes a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: ~azure.mgmt.scvmm.models.VirtualMachineDeleteCheckpoint + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @overload + async def begin_delete_checkpoint( + self, resource_uri: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> AsyncLROPoller[None]: + """Implements the operation to delete a checkpoint in a virtual machine instance. + + Deletes a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @distributed_trace_async + async def begin_delete_checkpoint( + self, resource_uri: str, body: Union[_models.VirtualMachineDeleteCheckpoint, IO[bytes]], **kwargs: Any + ) -> AsyncLROPoller[None]: + """Implements the operation to delete a checkpoint in a virtual machine instance. + + Deletes a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Is either a VirtualMachineDeleteCheckpoint type + or a IO[bytes] type. Required. + :type body: ~azure.mgmt.scvmm.models.VirtualMachineDeleteCheckpoint or IO[bytes] + :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: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._delete_checkpoint_initial( # type: ignore + resource_uri=resource_uri, + body=body, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + + async def _restart_initial( # pylint: disable=inconsistent-return-statements + self, resource_uri: str, **kwargs: Any + ) -> None: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + + _request = build_restart_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore + + @distributed_trace_async + async def begin_restart(self, resource_uri: str, **kwargs: Any) -> AsyncLROPoller[None]: + """Implements the operation to restart a virtual machine. + + The operation to restart a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :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: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._restart_initial( # type: ignore + resource_uri=resource_uri, + api_version=api_version, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + + async def _restore_checkpoint_initial( # pylint: disable=inconsistent-return-statements + self, resource_uri: str, body: Union[_models.VirtualMachineRestoreCheckpoint, IO[bytes]], **kwargs: Any + ) -> None: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(body, (IOBase, bytes)): + _content = body + else: + _json = self._serialize.body(body, "VirtualMachineRestoreCheckpoint") + + _request = build_restore_checkpoint_request( + resource_uri=resource_uri, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore + + @overload + async def begin_restore_checkpoint( + self, + resource_uri: str, + body: _models.VirtualMachineRestoreCheckpoint, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Implements the operation to restores to a checkpoint in a virtual machine instance. + + Restores to a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: ~azure.mgmt.scvmm.models.VirtualMachineRestoreCheckpoint + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @overload + async def begin_restore_checkpoint( + self, resource_uri: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> AsyncLROPoller[None]: + """Implements the operation to restores to a checkpoint in a virtual machine instance. + + Restores to a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @distributed_trace_async + async def begin_restore_checkpoint( + self, resource_uri: str, body: Union[_models.VirtualMachineRestoreCheckpoint, IO[bytes]], **kwargs: Any + ) -> AsyncLROPoller[None]: + """Implements the operation to restores to a checkpoint in a virtual machine instance. + + Restores to a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Is either a VirtualMachineRestoreCheckpoint + type or a IO[bytes] type. Required. + :type body: ~azure.mgmt.scvmm.models.VirtualMachineRestoreCheckpoint or IO[bytes] + :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: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._restore_checkpoint_initial( # type: ignore + resource_uri=resource_uri, + body=body, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + + async def _start_initial( # pylint: disable=inconsistent-return-statements + self, resource_uri: str, **kwargs: Any + ) -> None: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + + _request = build_start_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore + + @distributed_trace_async + async def begin_start(self, resource_uri: str, **kwargs: Any) -> AsyncLROPoller[None]: + """Implements the operation to start a virtual machine. + + The operation to start a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :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: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._start_initial( # type: ignore + resource_uri=resource_uri, + api_version=api_version, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + + async def _stop_initial( # pylint: disable=inconsistent-return-statements + self, resource_uri: str, body: Union[_models.StopVirtualMachineOptions, IO[bytes]], **kwargs: Any + ) -> None: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(body, (IOBase, bytes)): + _content = body + else: + _json = self._serialize.body(body, "StopVirtualMachineOptions") + + _request = build_stop_request( + resource_uri=resource_uri, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore + + @overload + async def begin_stop( + self, + resource_uri: str, + body: _models.StopVirtualMachineOptions, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Implements the operation to stop a virtual machine. + + The operation to power off (stop) a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: ~azure.mgmt.scvmm.models.StopVirtualMachineOptions + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @overload + async def begin_stop( + self, resource_uri: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> AsyncLROPoller[None]: + """Implements the operation to stop a virtual machine. + + The operation to power off (stop) a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @distributed_trace_async + async def begin_stop( + self, resource_uri: str, body: Union[_models.StopVirtualMachineOptions, IO[bytes]], **kwargs: Any + ) -> AsyncLROPoller[None]: + """Implements the operation to stop a virtual machine. + + The operation to power off (stop) a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Is either a StopVirtualMachineOptions type or a + IO[bytes] type. Required. + :type body: ~azure.mgmt.scvmm.models.StopVirtualMachineOptions or IO[bytes] + :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: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._stop_initial( # type: ignore + resource_uri=resource_uri, + body=body, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_virtual_machine_templates_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_virtual_machine_templates_operations.py index ec8695ee33e..80dd5d93bcf 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_virtual_machine_templates_operations.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_virtual_machine_templates_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +6,9 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from io import IOBase import sys -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, Type, TypeVar, Union, cast, overload import urllib.parse from azure.core.async_paging import AsyncItemPaged, AsyncList @@ -40,10 +41,10 @@ from ...operations._virtual_machine_templates_operations import ( build_update_request, ) -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -54,7 +55,7 @@ class VirtualMachineTemplatesOperations: **DO NOT** instantiate this class directly. Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.aio.SCVMM`'s + :class:`~azure.mgmt.scvmm.aio.ScVmmMgmtClient`'s :attr:`virtual_machine_templates` attribute. """ @@ -67,6 +68,174 @@ class VirtualMachineTemplatesOperations: self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + @distributed_trace + def list_by_subscription(self, **kwargs: Any) -> AsyncIterable["_models.VirtualMachineTemplate"]: + """Implements GET VirtualMachineTemplates in a subscription. + + List of VirtualMachineTemplates in a subscription. + + :return: An iterator like instance of either VirtualMachineTemplate or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VirtualMachineTemplate] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VirtualMachineTemplateListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("VirtualMachineTemplateListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + + @distributed_trace + def list_by_resource_group( + self, resource_group_name: str, **kwargs: Any + ) -> AsyncIterable["_models.VirtualMachineTemplate"]: + """Implements GET VirtualMachineTemplates in a resource group. + + List of VirtualMachineTemplates in a resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :return: An iterator like instance of either VirtualMachineTemplate or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VirtualMachineTemplate] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VirtualMachineTemplateListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_resource_group_request( + resource_group_name=resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("VirtualMachineTemplateListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + @distributed_trace_async async def get( self, resource_group_name: str, virtual_machine_template_name: str, **kwargs: Any @@ -75,16 +244,16 @@ class VirtualMachineTemplatesOperations: Implements VirtualMachineTemplate GET method. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. :type virtual_machine_template_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: VirtualMachineTemplate or the result of cls(response) :rtype: ~azure.mgmt.scvmm.models.VirtualMachineTemplate :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -95,25 +264,23 @@ class VirtualMachineTemplatesOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VirtualMachineTemplate] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( resource_group_name=resource_group_name, virtual_machine_template_name=virtual_machine_template_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -126,22 +293,18 @@ class VirtualMachineTemplatesOperations: deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}" - } + return deserialized # type: ignore async def _create_or_update_initial( self, resource_group_name: str, virtual_machine_template_name: str, - body: Union[_models.VirtualMachineTemplate, IO], + resource: Union[_models.VirtualMachineTemplate, IO[bytes]], **kwargs: Any ) -> _models.VirtualMachineTemplate: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -152,21 +315,19 @@ class VirtualMachineTemplatesOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.VirtualMachineTemplate] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None _content = None - if isinstance(body, (IO, bytes)): - _content = body + if isinstance(resource, (IOBase, bytes)): + _content = resource else: - _json = self._serialize.body(body, "VirtualMachineTemplate") + _json = self._serialize.body(resource, "VirtualMachineTemplate") - request = build_create_or_update_request( + _request = build_create_or_update_request( resource_group_name=resource_group_name, virtual_machine_template_name=virtual_machine_template_name, subscription_id=self._config.subscription_id, @@ -174,15 +335,15 @@ class VirtualMachineTemplatesOperations: content_type=content_type, json=_json, content=_content, - template_url=self._create_or_update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -192,27 +353,26 @@ class VirtualMachineTemplatesOperations: error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + response_headers = {} if response.status_code == 200: deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) if response.status_code == 201: + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore - _create_or_update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}" - } - @overload async def begin_create_or_update( self, resource_group_name: str, virtual_machine_template_name: str, - body: _models.VirtualMachineTemplate, + resource: _models.VirtualMachineTemplate, *, content_type: str = "application/json", **kwargs: Any @@ -221,23 +381,16 @@ class VirtualMachineTemplatesOperations: Onboards the ScVmm VM Template as an Azure VM Template resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. :type virtual_machine_template_name: str - :param body: Request payload. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineTemplate + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.VirtualMachineTemplate :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: 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 VirtualMachineTemplate or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] @@ -249,7 +402,7 @@ class VirtualMachineTemplatesOperations: self, resource_group_name: str, virtual_machine_template_name: str, - body: IO, + resource: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -258,23 +411,16 @@ class VirtualMachineTemplatesOperations: Onboards the ScVmm VM Template as an Azure VM Template resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. :type virtual_machine_template_name: str - :param body: Request payload. Required. - :type body: IO + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: 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 VirtualMachineTemplate or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] @@ -286,30 +432,21 @@ class VirtualMachineTemplatesOperations: self, resource_group_name: str, virtual_machine_template_name: str, - body: Union[_models.VirtualMachineTemplate, IO], + resource: Union[_models.VirtualMachineTemplate, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.VirtualMachineTemplate]: """Implements VirtualMachineTemplates PUT method. Onboards the ScVmm VM Template as an Azure VM Template resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. :type virtual_machine_template_name: str - :param body: Request payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineTemplate or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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. + :param resource: Resource create parameters. Is either a VirtualMachineTemplate type or a + IO[bytes] type. Required. + :type resource: ~azure.mgmt.scvmm.models.VirtualMachineTemplate or IO[bytes] :return: An instance of AsyncLROPoller that returns either VirtualMachineTemplate or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] @@ -318,9 +455,7 @@ class VirtualMachineTemplatesOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.VirtualMachineTemplate] = kwargs.pop("cls", None) polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) @@ -330,7 +465,7 @@ class VirtualMachineTemplatesOperations: raw_result = await self._create_or_update_initial( resource_group_name=resource_group_name, virtual_machine_template_name=virtual_machine_template_name, - body=body, + resource=resource, api_version=api_version, content_type=content_type, cls=lambda x, y, z: x, @@ -343,7 +478,7 @@ class VirtualMachineTemplatesOperations: def get_long_running_output(pipeline_response): deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -356,22 +491,228 @@ class VirtualMachineTemplatesOperations: else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.VirtualMachineTemplate].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore + return AsyncLROPoller[_models.VirtualMachineTemplate]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - begin_create_or_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}" - } + async def _update_initial( + self, + resource_group_name: str, + virtual_machine_template_name: str, + properties: Union[_models.VirtualMachineTemplateTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> Optional[_models.VirtualMachineTemplate]: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Optional[_models.VirtualMachineTemplate]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(properties, (IOBase, bytes)): + _content = properties + else: + _json = self._serialize.body(properties, "VirtualMachineTemplateTagsUpdate") + + _request = build_update_request( + resource_group_name=resource_group_name, + virtual_machine_template_name=virtual_machine_template_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = None + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_update( + self, + resource_group_name: str, + virtual_machine_template_name: str, + properties: _models.VirtualMachineTemplateTagsUpdate, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.VirtualMachineTemplate]: + """Implements the VirtualMachineTemplate PATCH method. + + Updates the VirtualMachineTemplate resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. + :type virtual_machine_template_name: str + :param properties: The resource properties to be updated. Required. + :type properties: ~azure.mgmt.scvmm.models.VirtualMachineTemplateTagsUpdate + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either VirtualMachineTemplate or the result + of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_update( + self, + resource_group_name: str, + virtual_machine_template_name: str, + properties: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.VirtualMachineTemplate]: + """Implements the VirtualMachineTemplate PATCH method. + + Updates the VirtualMachineTemplate resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. + :type virtual_machine_template_name: str + :param properties: The resource properties to be updated. Required. + :type properties: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either VirtualMachineTemplate or the result + of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def begin_update( + self, + resource_group_name: str, + virtual_machine_template_name: str, + properties: Union[_models.VirtualMachineTemplateTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.VirtualMachineTemplate]: + """Implements the VirtualMachineTemplate PATCH method. + + Updates the VirtualMachineTemplate resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. + :type virtual_machine_template_name: str + :param properties: The resource properties to be updated. Is either a + VirtualMachineTemplateTagsUpdate type or a IO[bytes] type. Required. + :type properties: ~azure.mgmt.scvmm.models.VirtualMachineTemplateTagsUpdate or IO[bytes] + :return: An instance of AsyncLROPoller that returns either VirtualMachineTemplate or the result + of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.VirtualMachineTemplate] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._update_initial( + resource_group_name=resource_group_name, + virtual_machine_template_name=virtual_machine_template_name, + properties=properties, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, + AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.VirtualMachineTemplate].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.VirtualMachineTemplate]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _delete_initial( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, virtual_machine_template_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + virtual_machine_template_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> None: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -382,65 +723,61 @@ class VirtualMachineTemplatesOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( resource_group_name=resource_group_name, virtual_machine_template_name=virtual_machine_template_name, subscription_id=self._config.subscription_id, force=force, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response - if response.status_code not in [200, 202, 204]: + if response.status_code not in [202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - if cls: - return cls(pipeline_response, None, {}) + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}" - } + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async async def begin_delete( - self, resource_group_name: str, virtual_machine_template_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + virtual_machine_template_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> AsyncLROPoller[None]: """Implements VirtualMachineTemplate DELETE method. Deregisters the ScVmm VM Template from Azure. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. :type virtual_machine_template_name: str - :param force: Forces the resource to be deleted from azure. The corresponding CR would be - attempted to be deleted too. Default value is None. - :type force: bool - :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. + :param force: Forces the resource to be deleted. Known values are: "true" and "false". Default + value is None. + :type force: str or ~azure.mgmt.scvmm.models.ForceDelete :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: @@ -448,9 +785,7 @@ class VirtualMachineTemplatesOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) @@ -470,7 +805,7 @@ class VirtualMachineTemplatesOperations: def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast( @@ -482,431 +817,10 @@ class VirtualMachineTemplatesOperations: else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[None].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}" - } - - async def _update_initial( - self, - resource_group_name: str, - virtual_machine_template_name: str, - body: Union[_models.ResourcePatch, IO], - **kwargs: Any - ) -> Optional[_models.VirtualMachineTemplate]: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.VirtualMachineTemplate]] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - _json = self._serialize.body(body, "ResourcePatch") - - request = build_update_request( - resource_group_name=resource_group_name, - virtual_machine_template_name=virtual_machine_template_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._update_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 201, 202]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}" - } - - @overload - async def begin_update( - self, - resource_group_name: str, - virtual_machine_template_name: str, - body: _models.ResourcePatch, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[_models.VirtualMachineTemplate]: - """Implements the VirtualMachineTemplate PATCH method. - - Updates the VirtualMachineTemplate resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. - :type virtual_machine_template_name: str - :param body: VirtualMachineTemplates patch details. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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 VirtualMachineTemplate or the result - of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - async def begin_update( - self, - resource_group_name: str, - virtual_machine_template_name: str, - body: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[_models.VirtualMachineTemplate]: - """Implements the VirtualMachineTemplate PATCH method. - - Updates the VirtualMachineTemplate resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. - :type virtual_machine_template_name: str - :param body: VirtualMachineTemplates patch details. Required. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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 VirtualMachineTemplate or the result - of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace_async - async def begin_update( - self, - resource_group_name: str, - virtual_machine_template_name: str, - body: Union[_models.ResourcePatch, IO], - **kwargs: Any - ) -> AsyncLROPoller[_models.VirtualMachineTemplate]: - """Implements the VirtualMachineTemplate PATCH method. - - Updates the VirtualMachineTemplate resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. - :type virtual_machine_template_name: str - :param body: VirtualMachineTemplates patch details. Is either a model type or a IO type. - Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 VirtualMachineTemplate or the result - of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VirtualMachineTemplate] = kwargs.pop("cls", None) - polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = await self._update_initial( - resource_group_name=resource_group_name, - virtual_machine_template_name=virtual_machine_template_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - if polling is True: - polling_method: AsyncPollingMethod = cast( - AsyncPollingMethod, - AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), - ) - elif polling is False: - polling_method = cast(AsyncPollingMethod, 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, - ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}" - } - - @distributed_trace - def list_by_resource_group( - self, resource_group_name: str, **kwargs: Any - ) -> AsyncIterable["_models.VirtualMachineTemplate"]: - """Implements GET VirtualMachineTemplates in a resource group. - - List of VirtualMachineTemplates in a resource group. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VirtualMachineTemplate or the result of - cls(response) - :rtype: - ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VirtualMachineTemplate] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VirtualMachineTemplateListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_resource_group_request( - resource_group_name=resource_group_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_resource_group.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize("VirtualMachineTemplateListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) - - list_by_resource_group.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates" - } - - @distributed_trace - def list_by_subscription(self, **kwargs: Any) -> AsyncIterable["_models.VirtualMachineTemplate"]: - """Implements GET VirtualMachineTemplates in a subscription. - - List of VirtualMachineTemplates in a subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VirtualMachineTemplate or the result of - cls(response) - :rtype: - ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VirtualMachineTemplate] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VirtualMachineTemplateListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_subscription_request( - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_subscription.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize("VirtualMachineTemplateListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) - - list_by_subscription.metadata = { - "url": "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/virtualMachineTemplates" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_virtual_machines_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_virtual_machines_operations.py deleted file mode 100644 index ee013db6947..00000000000 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_virtual_machines_operations.py +++ /dev/null @@ -1,2048 +0,0 @@ -# pylint: disable=too-many-lines -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- -import sys -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload -import urllib.parse - -from azure.core.async_paging import AsyncItemPaged, AsyncList -from azure.core.exceptions import ( - ClientAuthenticationError, - HttpResponseError, - ResourceExistsError, - ResourceNotFoundError, - ResourceNotModifiedError, - map_error, -) -from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse -from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.core.rest import HttpRequest -from azure.core.tracing.decorator import distributed_trace -from azure.core.tracing.decorator_async import distributed_trace_async -from azure.core.utils import case_insensitive_dict -from azure.mgmt.core.exceptions import ARMErrorFormat -from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling - -from ... import models as _models -from ..._vendor import _convert_request -from ...operations._virtual_machines_operations import ( - build_create_checkpoint_request, - build_create_or_update_request, - build_delete_checkpoint_request, - build_delete_request, - build_get_request, - build_list_by_resource_group_request, - build_list_by_subscription_request, - build_restart_request, - build_restore_checkpoint_request, - build_start_request, - build_stop_request, - build_update_request, -) - -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports -else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports -T = TypeVar("T") -ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] - - -class VirtualMachinesOperations: # pylint: disable=too-many-public-methods - """ - .. warning:: - **DO NOT** instantiate this class directly. - - Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.aio.SCVMM`'s - :attr:`virtual_machines` attribute. - """ - - models = _models - - def __init__(self, *args, **kwargs) -> None: - input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") - - @distributed_trace_async - async def get(self, resource_group_name: str, virtual_machine_name: str, **kwargs: Any) -> _models.VirtualMachine: - """Gets a VirtualMachine. - - Implements VirtualMachine GET method. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: VirtualMachine or the result of cls(response) - :rtype: ~azure.mgmt.scvmm.models.VirtualMachine - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VirtualMachine] = kwargs.pop("cls", None) - - request = build_get_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.get.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize("VirtualMachine", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}" - } - - async def _create_or_update_initial( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Union[_models.VirtualMachine, IO], - **kwargs: Any - ) -> _models.VirtualMachine: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VirtualMachine] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - _json = self._serialize.body(body, "VirtualMachine") - - request = build_create_or_update_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._create_or_update_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 201]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if response.status_code == 200: - deserialized = self._deserialize("VirtualMachine", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("VirtualMachine", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore - - return deserialized # type: ignore - - _create_or_update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}" - } - - @overload - async def begin_create_or_update( - self, - resource_group_name: str, - virtual_machine_name: str, - body: _models.VirtualMachine, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[_models.VirtualMachine]: - """Implements VirtualMachines PUT method. - - Creates Or Updates virtual machines deployed on scvmm fabric. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Request payload. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualMachine - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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 VirtualMachine or the result of - cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - async def begin_create_or_update( - self, - resource_group_name: str, - virtual_machine_name: str, - body: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[_models.VirtualMachine]: - """Implements VirtualMachines PUT method. - - Creates Or Updates virtual machines deployed on scvmm fabric. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Request payload. Required. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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 VirtualMachine or the result of - cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace_async - async def begin_create_or_update( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Union[_models.VirtualMachine, IO], - **kwargs: Any - ) -> AsyncLROPoller[_models.VirtualMachine]: - """Implements VirtualMachines PUT method. - - Creates Or Updates virtual machines deployed on scvmm fabric. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Request payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualMachine or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 VirtualMachine or the result of - cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VirtualMachine] = kwargs.pop("cls", None) - polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = await self._create_or_update_initial( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VirtualMachine", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - if polling is True: - polling_method: AsyncPollingMethod = cast( - AsyncPollingMethod, - AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), - ) - elif polling is False: - polling_method = cast(AsyncPollingMethod, 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, - ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create_or_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}" - } - - async def _delete_initial( # pylint: disable=inconsistent-return-statements - self, - resource_group_name: str, - virtual_machine_name: str, - retain: Optional[bool] = None, - force: Optional[bool] = None, - **kwargs: Any - ) -> None: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[None] = kwargs.pop("cls", None) - - request = build_delete_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - retain=retain, - force=force, - api_version=api_version, - template_url=self._delete_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 202, 204]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}" - } - - @distributed_trace_async - async def begin_delete( - self, - resource_group_name: str, - virtual_machine_name: str, - retain: Optional[bool] = None, - force: Optional[bool] = None, - **kwargs: Any - ) -> AsyncLROPoller[None]: - """Implements VirtualMachine DELETE method. - - Deletes a VirtualMachine deployed on ScVmm fabric. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param retain: Whether to just disable the VM from azure and retain the VM in the VMM. Default - value is None. - :type retain: bool - :param force: Forces the resource to be deleted from azure. The corresponding CR would be - attempted to be deleted too. Default value is None. - :type force: bool - :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: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = await self._delete_initial( # type: ignore - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - retain=retain, - force=force, - api_version=api_version, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: AsyncPollingMethod = cast( - AsyncPollingMethod, - AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), - ) - elif polling is False: - polling_method = cast(AsyncPollingMethod, 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, - ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}" - } - - async def _update_initial( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Union[_models.VirtualMachineUpdate, IO], - **kwargs: Any - ) -> Optional[_models.VirtualMachine]: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.VirtualMachine]] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - _json = self._serialize.body(body, "VirtualMachineUpdate") - - request = build_update_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._update_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 201, 202]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("VirtualMachine", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("VirtualMachine", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}" - } - - @overload - async def begin_update( - self, - resource_group_name: str, - virtual_machine_name: str, - body: _models.VirtualMachineUpdate, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[_models.VirtualMachine]: - """Implements the VirtualMachines PATCH method. - - Updates the VirtualMachines resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: VirtualMachines patch payload. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineUpdate - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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 VirtualMachine or the result of - cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - async def begin_update( - self, - resource_group_name: str, - virtual_machine_name: str, - body: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[_models.VirtualMachine]: - """Implements the VirtualMachines PATCH method. - - Updates the VirtualMachines resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: VirtualMachines patch payload. Required. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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 VirtualMachine or the result of - cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace_async - async def begin_update( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Union[_models.VirtualMachineUpdate, IO], - **kwargs: Any - ) -> AsyncLROPoller[_models.VirtualMachine]: - """Implements the VirtualMachines PATCH method. - - Updates the VirtualMachines resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: VirtualMachines patch payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineUpdate or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 VirtualMachine or the result of - cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VirtualMachine] = kwargs.pop("cls", None) - polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = await self._update_initial( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VirtualMachine", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - if polling is True: - polling_method: AsyncPollingMethod = cast( - AsyncPollingMethod, - AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), - ) - elif polling is False: - polling_method = cast(AsyncPollingMethod, 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, - ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}" - } - - async def _stop_initial( # pylint: disable=inconsistent-return-statements - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.StopVirtualMachineOptions, IO]] = None, - **kwargs: Any - ) -> None: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - if body is not None: - _json = self._serialize.body(body, "StopVirtualMachineOptions") - else: - _json = None - - request = build_stop_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._stop_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - 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) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _stop_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/stop" - } - - @overload - async def begin_stop( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[_models.StopVirtualMachineOptions] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[None]: - """Implements the operation to stop a virtual machine. - - Stop virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine stop action payload. Default value is None. - :type body: ~azure.mgmt.scvmm.models.StopVirtualMachineOptions - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @overload - async def begin_stop( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[IO] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[None]: - """Implements the operation to stop a virtual machine. - - Stop virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine stop action payload. Default value is None. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @distributed_trace_async - async def begin_stop( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.StopVirtualMachineOptions, IO]] = None, - **kwargs: Any - ) -> AsyncLROPoller[None]: - """Implements the operation to stop a virtual machine. - - Stop virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine stop action payload. Is either a model type or a IO type. Default - value is None. - :type body: ~azure.mgmt.scvmm.models.StopVirtualMachineOptions or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = await self._stop_initial( # type: ignore - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) - elif polling is False: - polling_method = cast(AsyncPollingMethod, 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, - ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_stop.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/stop" - } - - async def _start_initial( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, virtual_machine_name: str, **kwargs: Any - ) -> None: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[None] = kwargs.pop("cls", None) - - request = build_start_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self._start_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - 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) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _start_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/start" - } - - @distributed_trace_async - async def begin_start( - self, resource_group_name: str, virtual_machine_name: str, **kwargs: Any - ) -> AsyncLROPoller[None]: - """Implements the operation to start a virtual machine. - - Start virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_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: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = await self._start_initial( # type: ignore - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - api_version=api_version, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) - elif polling is False: - polling_method = cast(AsyncPollingMethod, 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, - ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_start.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/start" - } - - async def _restart_initial( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, virtual_machine_name: str, **kwargs: Any - ) -> None: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[None] = kwargs.pop("cls", None) - - request = build_restart_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self._restart_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - 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) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _restart_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/restart" - } - - @distributed_trace_async - async def begin_restart( - self, resource_group_name: str, virtual_machine_name: str, **kwargs: Any - ) -> AsyncLROPoller[None]: - """Implements the operation to restart a virtual machine. - - Restart virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_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: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = await self._restart_initial( # type: ignore - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - api_version=api_version, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) - elif polling is False: - polling_method = cast(AsyncPollingMethod, 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, - ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_restart.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/restart" - } - - async def _create_checkpoint_initial( # pylint: disable=inconsistent-return-statements - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.VirtualMachineCreateCheckpoint, IO]] = None, - **kwargs: Any - ) -> None: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - if body is not None: - _json = self._serialize.body(body, "VirtualMachineCreateCheckpoint") - else: - _json = None - - request = build_create_checkpoint_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._create_checkpoint_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - 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) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _create_checkpoint_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/createCheckpoint" - } - - @overload - async def begin_create_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[_models.VirtualMachineCreateCheckpoint] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[None]: - """Implements the operation to creates a checkpoint in a virtual machine. - - Creates a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine create checkpoint action payload. Default value is None. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineCreateCheckpoint - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @overload - async def begin_create_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[IO] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[None]: - """Implements the operation to creates a checkpoint in a virtual machine. - - Creates a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine create checkpoint action payload. Default value is None. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @distributed_trace_async - async def begin_create_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.VirtualMachineCreateCheckpoint, IO]] = None, - **kwargs: Any - ) -> AsyncLROPoller[None]: - """Implements the operation to creates a checkpoint in a virtual machine. - - Creates a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine create checkpoint action payload. Is either a model type or a IO - type. Default value is None. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineCreateCheckpoint or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = await self._create_checkpoint_initial( # type: ignore - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) - elif polling is False: - polling_method = cast(AsyncPollingMethod, 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, - ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create_checkpoint.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/createCheckpoint" - } - - async def _delete_checkpoint_initial( # pylint: disable=inconsistent-return-statements - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.VirtualMachineDeleteCheckpoint, IO]] = None, - **kwargs: Any - ) -> None: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - if body is not None: - _json = self._serialize.body(body, "VirtualMachineDeleteCheckpoint") - else: - _json = None - - request = build_delete_checkpoint_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._delete_checkpoint_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - 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) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _delete_checkpoint_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/deleteCheckpoint" - } - - @overload - async def begin_delete_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[_models.VirtualMachineDeleteCheckpoint] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[None]: - """Implements the operation to delete a checkpoint in a virtual machine. - - Deletes a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine delete checkpoint action payload. Default value is None. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineDeleteCheckpoint - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @overload - async def begin_delete_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[IO] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[None]: - """Implements the operation to delete a checkpoint in a virtual machine. - - Deletes a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine delete checkpoint action payload. Default value is None. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @distributed_trace_async - async def begin_delete_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.VirtualMachineDeleteCheckpoint, IO]] = None, - **kwargs: Any - ) -> AsyncLROPoller[None]: - """Implements the operation to delete a checkpoint in a virtual machine. - - Deletes a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine delete checkpoint action payload. Is either a model type or a IO - type. Default value is None. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineDeleteCheckpoint or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = await self._delete_checkpoint_initial( # type: ignore - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) - elif polling is False: - polling_method = cast(AsyncPollingMethod, 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, - ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete_checkpoint.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/deleteCheckpoint" - } - - async def _restore_checkpoint_initial( # pylint: disable=inconsistent-return-statements - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.VirtualMachineRestoreCheckpoint, IO]] = None, - **kwargs: Any - ) -> None: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - if body is not None: - _json = self._serialize.body(body, "VirtualMachineRestoreCheckpoint") - else: - _json = None - - request = build_restore_checkpoint_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._restore_checkpoint_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - 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) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _restore_checkpoint_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/restoreCheckpoint" - } - - @overload - async def begin_restore_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[_models.VirtualMachineRestoreCheckpoint] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[None]: - """Implements the operation to restores to a checkpoint in a virtual machine. - - Restores to a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine restore checkpoint action payload. Default value is None. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineRestoreCheckpoint - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @overload - async def begin_restore_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[IO] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[None]: - """Implements the operation to restores to a checkpoint in a virtual machine. - - Restores to a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine restore checkpoint action payload. Default value is None. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @distributed_trace_async - async def begin_restore_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.VirtualMachineRestoreCheckpoint, IO]] = None, - **kwargs: Any - ) -> AsyncLROPoller[None]: - """Implements the operation to restores to a checkpoint in a virtual machine. - - Restores to a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine restore checkpoint action payload. Is either a model type or a IO - type. Default value is None. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineRestoreCheckpoint or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = await self._restore_checkpoint_initial( # type: ignore - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) - elif polling is False: - polling_method = cast(AsyncPollingMethod, 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, - ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_restore_checkpoint.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/restoreCheckpoint" - } - - @distributed_trace - def list_by_resource_group( - self, resource_group_name: str, **kwargs: Any - ) -> AsyncIterable["_models.VirtualMachine"]: - """Implements GET VirtualMachines in a resource group. - - List of VirtualMachines in a resource group. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VirtualMachine or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VirtualMachineListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_resource_group_request( - resource_group_name=resource_group_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_resource_group.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize("VirtualMachineListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) - - list_by_resource_group.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines" - } - - @distributed_trace - def list_by_subscription(self, **kwargs: Any) -> AsyncIterable["_models.VirtualMachine"]: - """Implements GET VirtualMachines in a subscription. - - List of VirtualMachines in a subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VirtualMachine or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VirtualMachineListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_subscription_request( - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_subscription.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize("VirtualMachineListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) - - list_by_subscription.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/virtualMachines"} diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_virtual_networks_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_virtual_networks_operations.py index f90a1f745c5..1019d23348d 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_virtual_networks_operations.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_virtual_networks_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +6,9 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from io import IOBase import sys -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, Type, TypeVar, Union, cast, overload import urllib.parse from azure.core.async_paging import AsyncItemPaged, AsyncList @@ -40,10 +41,10 @@ from ...operations._virtual_networks_operations import ( build_update_request, ) -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -54,7 +55,7 @@ class VirtualNetworksOperations: **DO NOT** instantiate this class directly. Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.aio.SCVMM`'s + :class:`~azure.mgmt.scvmm.aio.ScVmmMgmtClient`'s :attr:`virtual_networks` attribute. """ @@ -67,22 +68,186 @@ class VirtualNetworksOperations: self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + @distributed_trace + def list_by_subscription(self, **kwargs: Any) -> AsyncIterable["_models.VirtualNetwork"]: + """Implements GET VirtualNetworks in a subscription. + + List of VirtualNetworks in a subscription. + + :return: An iterator like instance of either VirtualNetwork or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VirtualNetwork] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VirtualNetworkListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("VirtualNetworkListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + + @distributed_trace + def list_by_resource_group( + self, resource_group_name: str, **kwargs: Any + ) -> AsyncIterable["_models.VirtualNetwork"]: + """Implements GET VirtualNetworks in a resource group. + + List of VirtualNetworks in a resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :return: An iterator like instance of either VirtualNetwork or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VirtualNetwork] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VirtualNetworkListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_resource_group_request( + resource_group_name=resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("VirtualNetworkListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + @distributed_trace_async async def get(self, resource_group_name: str, virtual_network_name: str, **kwargs: Any) -> _models.VirtualNetwork: """Gets a VirtualNetwork. Implements VirtualNetwork GET method. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_network_name: Name of the VirtualNetwork. Required. :type virtual_network_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: VirtualNetwork or the result of cls(response) :rtype: ~azure.mgmt.scvmm.models.VirtualNetwork :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -93,25 +258,23 @@ class VirtualNetworksOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VirtualNetwork] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( resource_group_name=resource_group_name, virtual_network_name=virtual_network_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -124,22 +287,18 @@ class VirtualNetworksOperations: deserialized = self._deserialize("VirtualNetwork", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}" - } + return deserialized # type: ignore async def _create_or_update_initial( self, resource_group_name: str, virtual_network_name: str, - body: Union[_models.VirtualNetwork, IO], + resource: Union[_models.VirtualNetwork, IO[bytes]], **kwargs: Any ) -> _models.VirtualNetwork: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -150,21 +309,19 @@ class VirtualNetworksOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.VirtualNetwork] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None _content = None - if isinstance(body, (IO, bytes)): - _content = body + if isinstance(resource, (IOBase, bytes)): + _content = resource else: - _json = self._serialize.body(body, "VirtualNetwork") + _json = self._serialize.body(resource, "VirtualNetwork") - request = build_create_or_update_request( + _request = build_create_or_update_request( resource_group_name=resource_group_name, virtual_network_name=virtual_network_name, subscription_id=self._config.subscription_id, @@ -172,15 +329,15 @@ class VirtualNetworksOperations: content_type=content_type, json=_json, content=_content, - template_url=self._create_or_update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -190,27 +347,26 @@ class VirtualNetworksOperations: error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + response_headers = {} if response.status_code == 200: deserialized = self._deserialize("VirtualNetwork", pipeline_response) if response.status_code == 201: + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + deserialized = self._deserialize("VirtualNetwork", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore - _create_or_update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}" - } - @overload async def begin_create_or_update( self, resource_group_name: str, virtual_network_name: str, - body: _models.VirtualNetwork, + resource: _models.VirtualNetwork, *, content_type: str = "application/json", **kwargs: Any @@ -219,23 +375,16 @@ class VirtualNetworksOperations: Onboards the ScVmm virtual network as an Azure virtual network resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_network_name: Name of the VirtualNetwork. Required. :type virtual_network_name: str - :param body: Request payload. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualNetwork + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.VirtualNetwork :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: 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 VirtualNetwork or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] @@ -247,7 +396,7 @@ class VirtualNetworksOperations: self, resource_group_name: str, virtual_network_name: str, - body: IO, + resource: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -256,23 +405,16 @@ class VirtualNetworksOperations: Onboards the ScVmm virtual network as an Azure virtual network resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_network_name: Name of the VirtualNetwork. Required. :type virtual_network_name: str - :param body: Request payload. Required. - :type body: IO + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: 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 VirtualNetwork or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] @@ -284,30 +426,21 @@ class VirtualNetworksOperations: self, resource_group_name: str, virtual_network_name: str, - body: Union[_models.VirtualNetwork, IO], + resource: Union[_models.VirtualNetwork, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.VirtualNetwork]: """Implements VirtualNetworks PUT method. Onboards the ScVmm virtual network as an Azure virtual network resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_network_name: Name of the VirtualNetwork. Required. :type virtual_network_name: str - :param body: Request payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualNetwork or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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. + :param resource: Resource create parameters. Is either a VirtualNetwork type or a IO[bytes] + type. Required. + :type resource: ~azure.mgmt.scvmm.models.VirtualNetwork or IO[bytes] :return: An instance of AsyncLROPoller that returns either VirtualNetwork or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] @@ -316,9 +449,7 @@ class VirtualNetworksOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.VirtualNetwork] = kwargs.pop("cls", None) polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) @@ -328,7 +459,7 @@ class VirtualNetworksOperations: raw_result = await self._create_or_update_initial( resource_group_name=resource_group_name, virtual_network_name=virtual_network_name, - body=body, + resource=resource, api_version=api_version, content_type=content_type, cls=lambda x, y, z: x, @@ -341,7 +472,7 @@ class VirtualNetworksOperations: def get_long_running_output(pipeline_response): deserialized = self._deserialize("VirtualNetwork", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -354,22 +485,228 @@ class VirtualNetworksOperations: else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.VirtualNetwork].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore + return AsyncLROPoller[_models.VirtualNetwork]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - begin_create_or_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}" - } + async def _update_initial( + self, + resource_group_name: str, + virtual_network_name: str, + properties: Union[_models.VirtualNetworkTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> Optional[_models.VirtualNetwork]: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Optional[_models.VirtualNetwork]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(properties, (IOBase, bytes)): + _content = properties + else: + _json = self._serialize.body(properties, "VirtualNetworkTagsUpdate") + + _request = build_update_request( + resource_group_name=resource_group_name, + virtual_network_name=virtual_network_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = None + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("VirtualNetwork", pipeline_response) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_update( + self, + resource_group_name: str, + virtual_network_name: str, + properties: _models.VirtualNetworkTagsUpdate, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.VirtualNetwork]: + """Implements the VirtualNetworks PATCH method. + + Updates the VirtualNetworks resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param virtual_network_name: Name of the VirtualNetwork. Required. + :type virtual_network_name: str + :param properties: The resource properties to be updated. Required. + :type properties: ~azure.mgmt.scvmm.models.VirtualNetworkTagsUpdate + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either VirtualNetwork or the result of + cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_update( + self, + resource_group_name: str, + virtual_network_name: str, + properties: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.VirtualNetwork]: + """Implements the VirtualNetworks PATCH method. + + Updates the VirtualNetworks resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param virtual_network_name: Name of the VirtualNetwork. Required. + :type virtual_network_name: str + :param properties: The resource properties to be updated. Required. + :type properties: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either VirtualNetwork or the result of + cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def begin_update( + self, + resource_group_name: str, + virtual_network_name: str, + properties: Union[_models.VirtualNetworkTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.VirtualNetwork]: + """Implements the VirtualNetworks PATCH method. + + Updates the VirtualNetworks resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param virtual_network_name: Name of the VirtualNetwork. Required. + :type virtual_network_name: str + :param properties: The resource properties to be updated. Is either a VirtualNetworkTagsUpdate + type or a IO[bytes] type. Required. + :type properties: ~azure.mgmt.scvmm.models.VirtualNetworkTagsUpdate or IO[bytes] + :return: An instance of AsyncLROPoller that returns either VirtualNetwork or the result of + cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.VirtualNetwork] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._update_initial( + resource_group_name=resource_group_name, + virtual_network_name=virtual_network_name, + properties=properties, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("VirtualNetwork", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, + AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.VirtualNetwork].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.VirtualNetwork]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _delete_initial( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, virtual_network_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + virtual_network_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> None: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -380,65 +717,61 @@ class VirtualNetworksOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( resource_group_name=resource_group_name, virtual_network_name=virtual_network_name, subscription_id=self._config.subscription_id, force=force, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response - if response.status_code not in [200, 202, 204]: + if response.status_code not in [202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - if cls: - return cls(pipeline_response, None, {}) + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}" - } + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async async def begin_delete( - self, resource_group_name: str, virtual_network_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + virtual_network_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> AsyncLROPoller[None]: """Implements VirtualNetwork DELETE method. Deregisters the ScVmm virtual network from Azure. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_network_name: Name of the VirtualNetwork. Required. :type virtual_network_name: str - :param force: Forces the resource to be deleted from azure. The corresponding CR would be - attempted to be deleted too. Default value is None. - :type force: bool - :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. + :param force: Forces the resource to be deleted. Known values are: "true" and "false". Default + value is None. + :type force: str or ~azure.mgmt.scvmm.models.ForceDelete :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: @@ -446,9 +779,7 @@ class VirtualNetworksOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) @@ -468,7 +799,7 @@ class VirtualNetworksOperations: def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast( @@ -480,416 +811,10 @@ class VirtualNetworksOperations: else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[None].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}" - } - - async def _update_initial( - self, resource_group_name: str, virtual_network_name: str, body: Union[_models.ResourcePatch, IO], **kwargs: Any - ) -> Optional[_models.VirtualNetwork]: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.VirtualNetwork]] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - _json = self._serialize.body(body, "ResourcePatch") - - request = build_update_request( - resource_group_name=resource_group_name, - virtual_network_name=virtual_network_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._update_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 201, 202]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("VirtualNetwork", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("VirtualNetwork", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}" - } - - @overload - async def begin_update( - self, - resource_group_name: str, - virtual_network_name: str, - body: _models.ResourcePatch, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[_models.VirtualNetwork]: - """Implements the VirtualNetworks PATCH method. - - Updates the VirtualNetworks resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_network_name: Name of the VirtualNetwork. Required. - :type virtual_network_name: str - :param body: VirtualNetworks patch payload. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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 VirtualNetwork or the result of - cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - async def begin_update( - self, - resource_group_name: str, - virtual_network_name: str, - body: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[_models.VirtualNetwork]: - """Implements the VirtualNetworks PATCH method. - - Updates the VirtualNetworks resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_network_name: Name of the VirtualNetwork. Required. - :type virtual_network_name: str - :param body: VirtualNetworks patch payload. Required. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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 VirtualNetwork or the result of - cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace_async - async def begin_update( - self, resource_group_name: str, virtual_network_name: str, body: Union[_models.ResourcePatch, IO], **kwargs: Any - ) -> AsyncLROPoller[_models.VirtualNetwork]: - """Implements the VirtualNetworks PATCH method. - - Updates the VirtualNetworks resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_network_name: Name of the VirtualNetwork. Required. - :type virtual_network_name: str - :param body: VirtualNetworks patch payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 VirtualNetwork or the result of - cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VirtualNetwork] = kwargs.pop("cls", None) - polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = await self._update_initial( - resource_group_name=resource_group_name, - virtual_network_name=virtual_network_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VirtualNetwork", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - if polling is True: - polling_method: AsyncPollingMethod = cast( - AsyncPollingMethod, - AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), - ) - elif polling is False: - polling_method = cast(AsyncPollingMethod, 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, - ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}" - } - - @distributed_trace - def list_by_resource_group( - self, resource_group_name: str, **kwargs: Any - ) -> AsyncIterable["_models.VirtualNetwork"]: - """Implements GET VirtualNetworks in a resource group. - - List of VirtualNetworks in a resource group. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VirtualNetwork or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VirtualNetwork] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VirtualNetworkListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_resource_group_request( - resource_group_name=resource_group_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_resource_group.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize("VirtualNetworkListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) - - list_by_resource_group.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks" - } - - @distributed_trace - def list_by_subscription(self, **kwargs: Any) -> AsyncIterable["_models.VirtualNetwork"]: - """Implements GET VirtualNetworks in a subscription. - - List of VirtualNetworks in a subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VirtualNetwork or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VirtualNetwork] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VirtualNetworkListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_subscription_request( - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_subscription.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize("VirtualNetworkListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) - - list_by_subscription.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/virtualNetworks"} + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_vm_instance_hybrid_identity_metadatas_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_vm_instance_hybrid_identity_metadatas_operations.py new file mode 100644 index 00000000000..1fc490da6da --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_vm_instance_hybrid_identity_metadatas_operations.py @@ -0,0 +1,203 @@ +# pylint: disable=too-many-lines,too-many-statements +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import sys +from typing import Any, AsyncIterable, Callable, Dict, Optional, Type, TypeVar +import urllib.parse + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse +from azure.core.rest import HttpRequest +from azure.core.tracing.decorator import distributed_trace +from azure.core.tracing.decorator_async import distributed_trace_async +from azure.core.utils import case_insensitive_dict +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models +from ..._vendor import _convert_request +from ...operations._vm_instance_hybrid_identity_metadatas_operations import ( + build_get_request, + build_list_by_virtual_machine_instance_request, +) + +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping +else: + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + + +class VmInstanceHybridIdentityMetadatasOperations: # pylint: disable=name-too-long + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.scvmm.aio.ScVmmMgmtClient`'s + :attr:`vm_instance_hybrid_identity_metadatas` attribute. + """ + + models = _models + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client = input_args.pop(0) if input_args else kwargs.pop("client") + self._config = input_args.pop(0) if input_args else kwargs.pop("config") + self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @distributed_trace + def list_by_virtual_machine_instance( + self, resource_uri: str, **kwargs: Any + ) -> AsyncIterable["_models.VmInstanceHybridIdentityMetadata"]: + """Implements GET HybridIdentityMetadata in a vm. + + Returns the list of HybridIdentityMetadata of the given VM. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :return: An iterator like instance of either VmInstanceHybridIdentityMetadata or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VmInstanceHybridIdentityMetadata] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VmInstanceHybridIdentityMetadataListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_virtual_machine_instance_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("VmInstanceHybridIdentityMetadataListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + + @distributed_trace_async + async def get(self, resource_uri: str, **kwargs: Any) -> _models.VmInstanceHybridIdentityMetadata: + """Gets HybridIdentityMetadata. + + Implements HybridIdentityMetadata GET method. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :return: VmInstanceHybridIdentityMetadata or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.VmInstanceHybridIdentityMetadata + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VmInstanceHybridIdentityMetadata] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("VmInstanceHybridIdentityMetadata", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_vmm_servers_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_vmm_servers_operations.py index 1d897b76098..8a9b797231d 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_vmm_servers_operations.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/aio/operations/_vmm_servers_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +6,9 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from io import IOBase import sys -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, Type, TypeVar, Union, cast, overload import urllib.parse from azure.core.async_paging import AsyncItemPaged, AsyncList @@ -40,10 +41,10 @@ from ...operations._vmm_servers_operations import ( build_update_request, ) -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -54,7 +55,7 @@ class VmmServersOperations: **DO NOT** instantiate this class directly. Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.aio.SCVMM`'s + :class:`~azure.mgmt.scvmm.aio.ScVmmMgmtClient`'s :attr:`vmm_servers` attribute. """ @@ -67,22 +68,184 @@ class VmmServersOperations: self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") - @distributed_trace_async - async def get(self, resource_group_name: str, vmm_server_name: str, **kwargs: Any) -> _models.VMMServer: - """Gets a VMMServer. + @distributed_trace + def list_by_subscription(self, **kwargs: Any) -> AsyncIterable["_models.VmmServer"]: + """Implements GET VmmServers in a subscription. - Implements VMMServer GET method. + List of VmmServers in a subscription. - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: VMMServer or the result of cls(response) - :rtype: ~azure.mgmt.scvmm.models.VMMServer + :return: An iterator like instance of either VmmServer or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VmmServer] :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VmmServerListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("VmmServerListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + + @distributed_trace + def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> AsyncIterable["_models.VmmServer"]: + """Implements GET VmmServers in a resource group. + + List of VmmServers in a resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :return: An iterator like instance of either VmmServer or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VmmServer] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VmmServerListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_resource_group_request( + resource_group_name=resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("VmmServerListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + + @distributed_trace_async + async def get(self, resource_group_name: str, vmm_server_name: str, **kwargs: Any) -> _models.VmmServer: + """Gets a VMMServer. + + Implements VmmServer GET method. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :return: VmmServer or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.VmmServer + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -93,25 +256,23 @@ class VmmServersOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VMMServer] = kwargs.pop("cls", None) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VmmServer] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( resource_group_name=resource_group_name, vmm_server_name=vmm_server_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -121,21 +282,21 @@ class VmmServersOperations: error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - deserialized = self._deserialize("VMMServer", pipeline_response) + deserialized = self._deserialize("VmmServer", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}" - } + return deserialized # type: ignore async def _create_or_update_initial( - self, resource_group_name: str, vmm_server_name: str, body: Union[_models.VMMServer, IO], **kwargs: Any - ) -> _models.VMMServer: - error_map = { + self, + resource_group_name: str, + vmm_server_name: str, + resource: Union[_models.VmmServer, IO[bytes]], + **kwargs: Any + ) -> _models.VmmServer: + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -146,21 +307,19 @@ class VmmServersOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VMMServer] = kwargs.pop("cls", None) + cls: ClsType[_models.VmmServer] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None _content = None - if isinstance(body, (IO, bytes)): - _content = body + if isinstance(resource, (IOBase, bytes)): + _content = resource else: - _json = self._serialize.body(body, "VMMServer") + _json = self._serialize.body(resource, "VmmServer") - request = build_create_or_update_request( + _request = build_create_or_update_request( resource_group_name=resource_group_name, vmm_server_name=vmm_server_name, subscription_id=self._config.subscription_id, @@ -168,15 +327,15 @@ class VmmServersOperations: content_type=content_type, json=_json, content=_content, - template_url=self._create_or_update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -186,55 +345,47 @@ class VmmServersOperations: error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + response_headers = {} if response.status_code == 200: - deserialized = self._deserialize("VMMServer", pipeline_response) + deserialized = self._deserialize("VmmServer", pipeline_response) if response.status_code == 201: - deserialized = self._deserialize("VMMServer", pipeline_response) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + deserialized = self._deserialize("VmmServer", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore - _create_or_update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}" - } - @overload async def begin_create_or_update( self, resource_group_name: str, vmm_server_name: str, - body: _models.VMMServer, + resource: _models.VmmServer, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[_models.VMMServer]: + ) -> AsyncLROPoller[_models.VmmServer]: """Implements VmmServers PUT method. - Onboards the SCVMM fabric as an Azure VmmServer resource. + Onboards the SCVmm fabric as an Azure VmmServer resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. + :param vmm_server_name: Name of the VmmServer. Required. :type vmm_server_name: str - :param body: Request payload. Required. - :type body: ~azure.mgmt.scvmm.models.VMMServer + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.VmmServer :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: 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 VMMServer or the result of + :return: An instance of AsyncLROPoller that returns either VmmServer or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VMMServer] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VmmServer] :raises ~azure.core.exceptions.HttpResponseError: """ @@ -243,76 +394,62 @@ class VmmServersOperations: self, resource_group_name: str, vmm_server_name: str, - body: IO, + resource: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[_models.VMMServer]: + ) -> AsyncLROPoller[_models.VmmServer]: """Implements VmmServers PUT method. - Onboards the SCVMM fabric as an Azure VmmServer resource. + Onboards the SCVmm fabric as an Azure VmmServer resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. + :param vmm_server_name: Name of the VmmServer. Required. :type vmm_server_name: str - :param body: Request payload. Required. - :type body: IO + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: 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 VMMServer or the result of + :return: An instance of AsyncLROPoller that returns either VmmServer or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VMMServer] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VmmServer] :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace_async async def begin_create_or_update( - self, resource_group_name: str, vmm_server_name: str, body: Union[_models.VMMServer, IO], **kwargs: Any - ) -> AsyncLROPoller[_models.VMMServer]: + self, + resource_group_name: str, + vmm_server_name: str, + resource: Union[_models.VmmServer, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.VmmServer]: """Implements VmmServers PUT method. - Onboards the SCVMM fabric as an Azure VmmServer resource. + Onboards the SCVmm fabric as an Azure VmmServer resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. + :param vmm_server_name: Name of the VmmServer. Required. :type vmm_server_name: str - :param body: Request payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.VMMServer or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 VMMServer or the result of + :param resource: Resource create parameters. Is either a VmmServer type or a IO[bytes] type. + Required. + :type resource: ~azure.mgmt.scvmm.models.VmmServer or IO[bytes] + :return: An instance of AsyncLROPoller that returns either VmmServer or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VMMServer] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VmmServer] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VMMServer] = kwargs.pop("cls", None) + cls: ClsType[_models.VmmServer] = kwargs.pop("cls", None) polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) @@ -320,7 +457,7 @@ class VmmServersOperations: raw_result = await self._create_or_update_initial( resource_group_name=resource_group_name, vmm_server_name=vmm_server_name, - body=body, + resource=resource, api_version=api_version, content_type=content_type, cls=lambda x, y, z: x, @@ -331,9 +468,9 @@ class VmmServersOperations: kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VMMServer", pipeline_response) + deserialized = self._deserialize("VmmServer", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -346,22 +483,228 @@ class VmmServersOperations: else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.VmmServer].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore + return AsyncLROPoller[_models.VmmServer]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - begin_create_or_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}" - } + async def _update_initial( + self, + resource_group_name: str, + vmm_server_name: str, + properties: Union[_models.VmmServerTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> Optional[_models.VmmServer]: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Optional[_models.VmmServer]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(properties, (IOBase, bytes)): + _content = properties + else: + _json = self._serialize.body(properties, "VmmServerTagsUpdate") + + _request = build_update_request( + resource_group_name=resource_group_name, + vmm_server_name=vmm_server_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = None + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("VmmServer", pipeline_response) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_update( + self, + resource_group_name: str, + vmm_server_name: str, + properties: _models.VmmServerTagsUpdate, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.VmmServer]: + """Implements VmmServers PATCH method. + + Updates the VmmServers resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param properties: The resource properties to be updated. Required. + :type properties: ~azure.mgmt.scvmm.models.VmmServerTagsUpdate + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either VmmServer or the result of + cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VmmServer] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_update( + self, + resource_group_name: str, + vmm_server_name: str, + properties: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.VmmServer]: + """Implements VmmServers PATCH method. + + Updates the VmmServers resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param properties: The resource properties to be updated. Required. + :type properties: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns either VmmServer or the result of + cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VmmServer] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def begin_update( + self, + resource_group_name: str, + vmm_server_name: str, + properties: Union[_models.VmmServerTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.VmmServer]: + """Implements VmmServers PATCH method. + + Updates the VmmServers resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param properties: The resource properties to be updated. Is either a VmmServerTagsUpdate type + or a IO[bytes] type. Required. + :type properties: ~azure.mgmt.scvmm.models.VmmServerTagsUpdate or IO[bytes] + :return: An instance of AsyncLROPoller that returns either VmmServer or the result of + cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VmmServer] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.VmmServer] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._update_initial( + resource_group_name=resource_group_name, + vmm_server_name=vmm_server_name, + properties=properties, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("VmmServer", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, + AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.VmmServer].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.VmmServer]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _delete_initial( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, vmm_server_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + vmm_server_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> None: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -372,65 +715,61 @@ class VmmServersOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( resource_group_name=resource_group_name, vmm_server_name=vmm_server_name, subscription_id=self._config.subscription_id, force=force, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response - if response.status_code not in [200, 202, 204]: + if response.status_code not in [202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - if cls: - return cls(pipeline_response, None, {}) + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}" - } + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async async def begin_delete( - self, resource_group_name: str, vmm_server_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + vmm_server_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> AsyncLROPoller[None]: """Implements VmmServers DELETE method. - Deboards the SCVMM fabric from Azure. + Removes the SCVmm fabric from Azure. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. + :param vmm_server_name: Name of the VmmServer. Required. :type vmm_server_name: str - :param force: Forces the resource to be deleted from azure. The corresponding CR would be - attempted to be deleted too. Default value is None. - :type force: bool - :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. + :param force: Forces the resource to be deleted. Known values are: "true" and "false". Default + value is None. + :type force: str or ~azure.mgmt.scvmm.models.ForceDelete :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: @@ -438,9 +777,7 @@ class VmmServersOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) @@ -460,7 +797,7 @@ class VmmServersOperations: def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast( @@ -472,414 +809,10 @@ class VmmServersOperations: else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[None].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}" - } - - async def _update_initial( - self, resource_group_name: str, vmm_server_name: str, body: Union[_models.ResourcePatch, IO], **kwargs: Any - ) -> Optional[_models.VMMServer]: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.VMMServer]] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - _json = self._serialize.body(body, "ResourcePatch") - - request = build_update_request( - resource_group_name=resource_group_name, - vmm_server_name=vmm_server_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._update_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 201, 202]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("VMMServer", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("VMMServer", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}" - } - - @overload - async def begin_update( - self, - resource_group_name: str, - vmm_server_name: str, - body: _models.ResourcePatch, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[_models.VMMServer]: - """Implements VmmServers PATCH method. - - Updates the VmmServers resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param body: VmmServers patch payload. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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 VMMServer or the result of - cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VMMServer] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - async def begin_update( - self, - resource_group_name: str, - vmm_server_name: str, - body: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[_models.VMMServer]: - """Implements VmmServers PATCH method. - - Updates the VmmServers resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param body: VmmServers patch payload. Required. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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 VMMServer or the result of - cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VMMServer] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace_async - async def begin_update( - self, resource_group_name: str, vmm_server_name: str, body: Union[_models.ResourcePatch, IO], **kwargs: Any - ) -> AsyncLROPoller[_models.VMMServer]: - """Implements VmmServers PATCH method. - - Updates the VmmServers resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param body: VmmServers patch payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 VMMServer or the result of - cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.scvmm.models.VMMServer] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VMMServer] = kwargs.pop("cls", None) - polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = await self._update_initial( - resource_group_name=resource_group_name, - vmm_server_name=vmm_server_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VMMServer", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - if polling is True: - polling_method: AsyncPollingMethod = cast( - AsyncPollingMethod, - AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs), - ) - elif polling is False: - polling_method = cast(AsyncPollingMethod, 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, - ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}" - } - - @distributed_trace - def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> AsyncIterable["_models.VMMServer"]: - """Implements GET VmmServers in a resource group. - - List of VmmServers in a resource group. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VMMServer or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VMMServer] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VMMServerListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_resource_group_request( - resource_group_name=resource_group_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_resource_group.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize("VMMServerListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) - - list_by_resource_group.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers" - } - - @distributed_trace - def list_by_subscription(self, **kwargs: Any) -> AsyncIterable["_models.VMMServer"]: - """Implements GET VmmServers in a subscription. - - List of VmmServers in a subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VMMServer or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.scvmm.models.VMMServer] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VMMServerListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_subscription_request( - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_subscription.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize("VMMServerListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) - - list_by_subscription.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/vmmServers"} + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/models/__init__.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/models/__init__.py index 3175f63e5b6..841ca37970c 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/models/__init__.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/models/__init__.py @@ -9,65 +9,95 @@ from ._models_py3 import AvailabilitySet from ._models_py3 import AvailabilitySetListItem from ._models_py3 import AvailabilitySetListResult +from ._models_py3 import AvailabilitySetProperties +from ._models_py3 import AvailabilitySetTagsUpdate from ._models_py3 import Checkpoint from ._models_py3 import Cloud from ._models_py3 import CloudCapacity from ._models_py3 import CloudInventoryItem from ._models_py3 import CloudListResult -from ._models_py3 import ErrorDefinition +from ._models_py3 import CloudProperties +from ._models_py3 import CloudTagsUpdate +from ._models_py3 import ErrorAdditionalInfo +from ._models_py3 import ErrorDetail from ._models_py3 import ErrorResponse from ._models_py3 import ExtendedLocation +from ._models_py3 import GuestAgent +from ._models_py3 import GuestAgentListResult +from ._models_py3 import GuestAgentProperties +from ._models_py3 import GuestCredential from ._models_py3 import HardwareProfile from ._models_py3 import HardwareProfileUpdate +from ._models_py3 import HttpProxyConfiguration +from ._models_py3 import InfrastructureProfile +from ._models_py3 import InfrastructureProfileUpdate from ._models_py3 import InventoryItem from ._models_py3 import InventoryItemDetails +from ._models_py3 import InventoryItemListResult from ._models_py3 import InventoryItemProperties -from ._models_py3 import InventoryItemsList -from ._models_py3 import NetworkInterfaces -from ._models_py3 import NetworkInterfacesUpdate +from ._models_py3 import NetworkInterface +from ._models_py3 import NetworkInterfaceUpdate from ._models_py3 import NetworkProfile from ._models_py3 import NetworkProfileUpdate -from ._models_py3 import OsProfile +from ._models_py3 import Operation +from ._models_py3 import OperationDisplay +from ._models_py3 import OperationListResult +from ._models_py3 import OsProfileForVmInstance from ._models_py3 import ProxyResource from ._models_py3 import Resource -from ._models_py3 import ResourcePatch -from ._models_py3 import ResourceProviderOperation -from ._models_py3 import ResourceProviderOperationDisplay -from ._models_py3 import ResourceProviderOperationList from ._models_py3 import StopVirtualMachineOptions from ._models_py3 import StorageProfile from ._models_py3 import StorageProfileUpdate -from ._models_py3 import StorageQoSPolicy -from ._models_py3 import StorageQoSPolicyDetails +from ._models_py3 import StorageQosPolicy +from ._models_py3 import StorageQosPolicyDetails from ._models_py3 import SystemData -from ._models_py3 import VMMServer -from ._models_py3 import VMMServerListResult -from ._models_py3 import VMMServerPropertiesCredentials +from ._models_py3 import TrackedResource from ._models_py3 import VirtualDisk from ._models_py3 import VirtualDiskUpdate -from ._models_py3 import VirtualMachine from ._models_py3 import VirtualMachineCreateCheckpoint from ._models_py3 import VirtualMachineDeleteCheckpoint +from ._models_py3 import VirtualMachineInstance +from ._models_py3 import VirtualMachineInstanceListResult +from ._models_py3 import VirtualMachineInstanceProperties +from ._models_py3 import VirtualMachineInstanceUpdate +from ._models_py3 import VirtualMachineInstanceUpdateProperties from ._models_py3 import VirtualMachineInventoryItem -from ._models_py3 import VirtualMachineListResult from ._models_py3 import VirtualMachineRestoreCheckpoint from ._models_py3 import VirtualMachineTemplate from ._models_py3 import VirtualMachineTemplateInventoryItem from ._models_py3 import VirtualMachineTemplateListResult -from ._models_py3 import VirtualMachineUpdate -from ._models_py3 import VirtualMachineUpdateProperties +from ._models_py3 import VirtualMachineTemplateProperties +from ._models_py3 import VirtualMachineTemplateTagsUpdate from ._models_py3 import VirtualNetwork from ._models_py3 import VirtualNetworkInventoryItem from ._models_py3 import VirtualNetworkListResult +from ._models_py3 import VirtualNetworkProperties +from ._models_py3 import VirtualNetworkTagsUpdate +from ._models_py3 import VmInstanceHybridIdentityMetadata +from ._models_py3 import VmInstanceHybridIdentityMetadataListResult +from ._models_py3 import VmInstanceHybridIdentityMetadataProperties +from ._models_py3 import VmmCredential +from ._models_py3 import VmmServer +from ._models_py3 import VmmServerListResult +from ._models_py3 import VmmServerProperties +from ._models_py3 import VmmServerTagsUpdate -from ._scvmm_enums import AllocationMethod -from ._scvmm_enums import CreateDiffDisk -from ._scvmm_enums import CreatedByType -from ._scvmm_enums import DynamicMemoryEnabled -from ._scvmm_enums import InventoryType -from ._scvmm_enums import IsCustomizable -from ._scvmm_enums import LimitCpuForMigration -from ._scvmm_enums import OsType +from ._sc_vmm_mgmt_client_enums import ActionType +from ._sc_vmm_mgmt_client_enums import AllocationMethod +from ._sc_vmm_mgmt_client_enums import CreateDiffDisk +from ._sc_vmm_mgmt_client_enums import CreatedByType +from ._sc_vmm_mgmt_client_enums import DeleteFromHost +from ._sc_vmm_mgmt_client_enums import DynamicMemoryEnabled +from ._sc_vmm_mgmt_client_enums import ForceDelete +from ._sc_vmm_mgmt_client_enums import InventoryType +from ._sc_vmm_mgmt_client_enums import IsCustomizable +from ._sc_vmm_mgmt_client_enums import IsHighlyAvailable +from ._sc_vmm_mgmt_client_enums import LimitCpuForMigration +from ._sc_vmm_mgmt_client_enums import Origin +from ._sc_vmm_mgmt_client_enums import OsType +from ._sc_vmm_mgmt_client_enums import ProvisioningAction +from ._sc_vmm_mgmt_client_enums import ProvisioningState +from ._sc_vmm_mgmt_client_enums import SkipShutdown from ._patch import __all__ as _patch_all from ._patch import * # pylint: disable=unused-wildcard-import from ._patch import patch_sdk as _patch_sdk @@ -76,64 +106,94 @@ __all__ = [ "AvailabilitySet", "AvailabilitySetListItem", "AvailabilitySetListResult", + "AvailabilitySetProperties", + "AvailabilitySetTagsUpdate", "Checkpoint", "Cloud", "CloudCapacity", "CloudInventoryItem", "CloudListResult", - "ErrorDefinition", + "CloudProperties", + "CloudTagsUpdate", + "ErrorAdditionalInfo", + "ErrorDetail", "ErrorResponse", "ExtendedLocation", + "GuestAgent", + "GuestAgentListResult", + "GuestAgentProperties", + "GuestCredential", "HardwareProfile", "HardwareProfileUpdate", + "HttpProxyConfiguration", + "InfrastructureProfile", + "InfrastructureProfileUpdate", "InventoryItem", "InventoryItemDetails", + "InventoryItemListResult", "InventoryItemProperties", - "InventoryItemsList", - "NetworkInterfaces", - "NetworkInterfacesUpdate", + "NetworkInterface", + "NetworkInterfaceUpdate", "NetworkProfile", "NetworkProfileUpdate", - "OsProfile", + "Operation", + "OperationDisplay", + "OperationListResult", + "OsProfileForVmInstance", "ProxyResource", "Resource", - "ResourcePatch", - "ResourceProviderOperation", - "ResourceProviderOperationDisplay", - "ResourceProviderOperationList", "StopVirtualMachineOptions", "StorageProfile", "StorageProfileUpdate", - "StorageQoSPolicy", - "StorageQoSPolicyDetails", + "StorageQosPolicy", + "StorageQosPolicyDetails", "SystemData", - "VMMServer", - "VMMServerListResult", - "VMMServerPropertiesCredentials", + "TrackedResource", "VirtualDisk", "VirtualDiskUpdate", - "VirtualMachine", "VirtualMachineCreateCheckpoint", "VirtualMachineDeleteCheckpoint", + "VirtualMachineInstance", + "VirtualMachineInstanceListResult", + "VirtualMachineInstanceProperties", + "VirtualMachineInstanceUpdate", + "VirtualMachineInstanceUpdateProperties", "VirtualMachineInventoryItem", - "VirtualMachineListResult", "VirtualMachineRestoreCheckpoint", "VirtualMachineTemplate", "VirtualMachineTemplateInventoryItem", "VirtualMachineTemplateListResult", - "VirtualMachineUpdate", - "VirtualMachineUpdateProperties", + "VirtualMachineTemplateProperties", + "VirtualMachineTemplateTagsUpdate", "VirtualNetwork", "VirtualNetworkInventoryItem", "VirtualNetworkListResult", + "VirtualNetworkProperties", + "VirtualNetworkTagsUpdate", + "VmInstanceHybridIdentityMetadata", + "VmInstanceHybridIdentityMetadataListResult", + "VmInstanceHybridIdentityMetadataProperties", + "VmmCredential", + "VmmServer", + "VmmServerListResult", + "VmmServerProperties", + "VmmServerTagsUpdate", + "ActionType", "AllocationMethod", "CreateDiffDisk", "CreatedByType", + "DeleteFromHost", "DynamicMemoryEnabled", + "ForceDelete", "InventoryType", "IsCustomizable", + "IsHighlyAvailable", "LimitCpuForMigration", + "Origin", "OsType", + "ProvisioningAction", + "ProvisioningState", + "SkipShutdown", ] __all__.extend([p for p in _patch_all if p not in __all__]) _patch_sdk() diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/models/_models_py3.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/models/_models_py3.py index 852ced1b43f..fa5e40b313a 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/models/_models_py3.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/models/_models_py3.py @@ -8,7 +8,7 @@ # -------------------------------------------------------------------------- import datetime -from typing import Dict, List, Optional, TYPE_CHECKING, Union +from typing import Any, Dict, List, Optional, TYPE_CHECKING, Union from .. import _serialization @@ -17,31 +17,22 @@ if TYPE_CHECKING: from .. import models as _models -class AvailabilitySet(_serialization.Model): - """The AvailabilitySets resource definition. +class Resource(_serialization.Model): + """Common fields that are returned in the response for all Azure Resource Manager resources. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Resource Id. + :ivar id: Fully qualified resource ID for the resource. E.g. + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long :vartype id: str - :ivar name: Resource Name. + :ivar name: The name of the resource. :vartype name: str - :ivar type: Resource Type. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar location: Gets or sets the location. - :vartype location: str - :ivar tags: Resource tags. - :vartype tags: dict[str, str] - :ivar system_data: The system data. + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. :vartype system_data: ~azure.mgmt.scvmm.models.SystemData - :ivar extended_location: The extended location. - :vartype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation - :ivar availability_set_name: Name of the availability set. - :vartype availability_set_name: str - :ivar vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. - :vartype vmm_server_id: str - :ivar provisioning_state: Gets or sets the provisioning state. - :vartype provisioning_state: str """ _validation = { @@ -49,56 +40,148 @@ class AvailabilitySet(_serialization.Model): "name": {"readonly": True}, "type": {"readonly": True}, "system_data": {"readonly": True}, - "availability_set_name": {"min_length": 1}, - "provisioning_state": {"readonly": True}, } _attribute_map = { "id": {"key": "id", "type": "str"}, "name": {"key": "name", "type": "str"}, "type": {"key": "type", "type": "str"}, - "location": {"key": "location", "type": "str"}, - "tags": {"key": "tags", "type": "{str}"}, "system_data": {"key": "systemData", "type": "SystemData"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.system_data = None + + +class TrackedResource(Resource): + """The resource model definition for an Azure Resource Manager tracked top level resource which + has 'tags' and a 'location'. + + 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 server. + + :ivar id: Fully qualified resource ID for the resource. E.g. + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.scvmm.models.SystemData + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "location": {"required": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + } + + def __init__(self, *, location: str, tags: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: + """ + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + """ + super().__init__(**kwargs) + self.tags = tags + self.location = location + + +class AvailabilitySet(TrackedResource): + """The AvailabilitySets resource definition. + + 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 server. + + :ivar id: Fully qualified resource ID for the resource. E.g. + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.scvmm.models.SystemData + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str + :ivar properties: The resource-specific properties for this resource. + :vartype properties: ~azure.mgmt.scvmm.models.AvailabilitySetProperties + :ivar extended_location: The extended location. Required. + :vartype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "location": {"required": True}, + "extended_location": {"required": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + "properties": {"key": "properties", "type": "AvailabilitySetProperties"}, "extended_location": {"key": "extendedLocation", "type": "ExtendedLocation"}, - "availability_set_name": {"key": "properties.availabilitySetName", "type": "str"}, - "vmm_server_id": {"key": "properties.vmmServerId", "type": "str"}, - "provisioning_state": {"key": "properties.provisioningState", "type": "str"}, } def __init__( self, *, - location: Optional[str] = None, + location: str, + extended_location: "_models.ExtendedLocation", tags: Optional[Dict[str, str]] = None, - extended_location: Optional["_models.ExtendedLocation"] = None, - availability_set_name: Optional[str] = None, - vmm_server_id: Optional[str] = None, - **kwargs - ): + properties: Optional["_models.AvailabilitySetProperties"] = None, + **kwargs: Any + ) -> None: """ - :keyword location: Gets or sets the location. - :paramtype location: str :keyword tags: Resource tags. :paramtype tags: dict[str, str] - :keyword extended_location: The extended location. + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + :keyword properties: The resource-specific properties for this resource. + :paramtype properties: ~azure.mgmt.scvmm.models.AvailabilitySetProperties + :keyword extended_location: The extended location. Required. :paramtype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation - :keyword availability_set_name: Name of the availability set. - :paramtype availability_set_name: str - :keyword vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. - :paramtype vmm_server_id: str """ - super().__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.location = location - self.tags = tags - self.system_data = None + super().__init__(tags=tags, location=location, **kwargs) + self.properties = properties self.extended_location = extended_location - self.availability_set_name = availability_set_name - self.vmm_server_id = vmm_server_id - self.provisioning_state = None class AvailabilitySetListItem(_serialization.Model): @@ -116,8 +199,12 @@ class AvailabilitySetListItem(_serialization.Model): } def __init__( - self, *, id: Optional[str] = None, name: Optional[str] = None, **kwargs # pylint: disable=redefined-builtin - ): + self, + *, + id: Optional[str] = None, # pylint: disable=redefined-builtin + name: Optional[str] = None, + **kwargs: Any + ) -> None: """ :keyword id: Gets the ARM Id of the microsoft.scvmm/availabilitySets resource. :paramtype id: str @@ -130,31 +217,96 @@ class AvailabilitySetListItem(_serialization.Model): class AvailabilitySetListResult(_serialization.Model): - """List of AvailabilitySets. + """The response of a AvailabilitySet list operation. - :ivar value: List of AvailabilitySets. + 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 server. + + :ivar value: The AvailabilitySet items on this page. Required. :vartype value: list[~azure.mgmt.scvmm.models.AvailabilitySet] - :ivar next_link: Url to follow for getting next page of resources. + :ivar next_link: The link to the next page of items. :vartype next_link: str """ + _validation = { + "value": {"required": True}, + "next_link": {"readonly": True}, + } + _attribute_map = { "value": {"key": "value", "type": "[AvailabilitySet]"}, "next_link": {"key": "nextLink", "type": "str"}, } - def __init__( - self, *, value: Optional[List["_models.AvailabilitySet"]] = None, next_link: Optional[str] = None, **kwargs - ): + def __init__(self, *, value: List["_models.AvailabilitySet"], **kwargs: Any) -> None: """ - :keyword value: List of AvailabilitySets. + :keyword value: The AvailabilitySet items on this page. Required. :paramtype value: list[~azure.mgmt.scvmm.models.AvailabilitySet] - :keyword next_link: Url to follow for getting next page of resources. - :paramtype next_link: str """ super().__init__(**kwargs) self.value = value - self.next_link = next_link + self.next_link = None + + +class AvailabilitySetProperties(_serialization.Model): + """Defines the resource properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar availability_set_name: Name of the availability set. + :vartype availability_set_name: str + :ivar vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. + :vartype vmm_server_id: str + :ivar provisioning_state: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Provisioning", "Updating", "Deleting", "Accepted", and "Created". + :vartype provisioning_state: str or ~azure.mgmt.scvmm.models.ProvisioningState + """ + + _validation = { + "availability_set_name": {"min_length": 1}, + "provisioning_state": {"readonly": True}, + } + + _attribute_map = { + "availability_set_name": {"key": "availabilitySetName", "type": "str"}, + "vmm_server_id": {"key": "vmmServerId", "type": "str"}, + "provisioning_state": {"key": "provisioningState", "type": "str"}, + } + + def __init__( + self, *, availability_set_name: Optional[str] = None, vmm_server_id: Optional[str] = None, **kwargs: Any + ) -> None: + """ + :keyword availability_set_name: Name of the availability set. + :paramtype availability_set_name: str + :keyword vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. + :paramtype vmm_server_id: str + """ + super().__init__(**kwargs) + self.availability_set_name = availability_set_name + self.vmm_server_id = vmm_server_id + self.provisioning_state = None + + +class AvailabilitySetTagsUpdate(_serialization.Model): + """The type used for updating tags in AvailabilitySet resources. + + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + """ + + _attribute_map = { + "tags": {"key": "tags", "type": "{str}"}, + } + + def __init__(self, *, tags: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: + """ + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + """ + super().__init__(**kwargs) + self.tags = tags class Checkpoint(_serialization.Model): @@ -184,8 +336,8 @@ class Checkpoint(_serialization.Model): checkpoint_id: Optional[str] = None, name: Optional[str] = None, description: Optional[str] = None, - **kwargs - ): + **kwargs: Any + ) -> None: """ :keyword parent_checkpoint_id: Gets ID of parent of the checkpoint. :paramtype parent_checkpoint_id: str @@ -203,72 +355,52 @@ class Checkpoint(_serialization.Model): self.description = description -class Cloud(_serialization.Model): # pylint: disable=too-many-instance-attributes +class Cloud(TrackedResource): """The Clouds resource definition. 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. + All required parameters must be populated in order to send to server. - :ivar id: Resource Id. + :ivar id: Fully qualified resource ID for the resource. E.g. + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long :vartype id: str - :ivar name: Resource Name. + :ivar name: The name of the resource. :vartype name: str - :ivar type: Resource Type. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar location: Gets or sets the location. Required. - :vartype location: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.scvmm.models.SystemData :ivar tags: Resource tags. :vartype tags: dict[str, str] - :ivar system_data: The system data. - :vartype system_data: ~azure.mgmt.scvmm.models.SystemData + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str + :ivar properties: The resource-specific properties for this resource. + :vartype properties: ~azure.mgmt.scvmm.models.CloudProperties :ivar extended_location: The extended location. Required. :vartype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation - :ivar inventory_item_id: Gets or sets the inventory Item ID for the resource. - :vartype inventory_item_id: str - :ivar uuid: Unique ID of the cloud. - :vartype uuid: str - :ivar vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. - :vartype vmm_server_id: str - :ivar cloud_name: Name of the cloud in VMMServer. - :vartype cloud_name: str - :ivar cloud_capacity: Capacity of the cloud. - :vartype cloud_capacity: ~azure.mgmt.scvmm.models.CloudCapacity - :ivar storage_qo_s_policies: List of QoS policies available for the cloud. - :vartype storage_qo_s_policies: list[~azure.mgmt.scvmm.models.StorageQoSPolicy] - :ivar provisioning_state: Gets or sets the provisioning state. - :vartype provisioning_state: str """ _validation = { "id": {"readonly": True}, "name": {"readonly": True}, "type": {"readonly": True}, - "location": {"required": True}, "system_data": {"readonly": True}, + "location": {"required": True}, "extended_location": {"required": True}, - "uuid": {"min_length": 1}, - "cloud_name": {"readonly": True}, - "cloud_capacity": {"readonly": True}, - "storage_qo_s_policies": {"readonly": True}, - "provisioning_state": {"readonly": True}, } _attribute_map = { "id": {"key": "id", "type": "str"}, "name": {"key": "name", "type": "str"}, "type": {"key": "type", "type": "str"}, - "location": {"key": "location", "type": "str"}, - "tags": {"key": "tags", "type": "{str}"}, "system_data": {"key": "systemData", "type": "SystemData"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + "properties": {"key": "properties", "type": "CloudProperties"}, "extended_location": {"key": "extendedLocation", "type": "ExtendedLocation"}, - "inventory_item_id": {"key": "properties.inventoryItemId", "type": "str"}, - "uuid": {"key": "properties.uuid", "type": "str"}, - "vmm_server_id": {"key": "properties.vmmServerId", "type": "str"}, - "cloud_name": {"key": "properties.cloudName", "type": "str"}, - "cloud_capacity": {"key": "properties.cloudCapacity", "type": "CloudCapacity"}, - "storage_qo_s_policies": {"key": "properties.storageQoSPolicies", "type": "[StorageQoSPolicy]"}, - "provisioning_state": {"key": "properties.provisioningState", "type": "str"}, } def __init__( @@ -277,45 +409,29 @@ class Cloud(_serialization.Model): # pylint: disable=too-many-instance-attribut location: str, extended_location: "_models.ExtendedLocation", tags: Optional[Dict[str, str]] = None, - inventory_item_id: Optional[str] = None, - uuid: Optional[str] = None, - vmm_server_id: Optional[str] = None, - **kwargs - ): + properties: Optional["_models.CloudProperties"] = None, + **kwargs: Any + ) -> None: """ - :keyword location: Gets or sets the location. Required. - :paramtype location: str :keyword tags: Resource tags. :paramtype tags: dict[str, str] + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + :keyword properties: The resource-specific properties for this resource. + :paramtype properties: ~azure.mgmt.scvmm.models.CloudProperties :keyword extended_location: The extended location. Required. :paramtype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation - :keyword inventory_item_id: Gets or sets the inventory Item ID for the resource. - :paramtype inventory_item_id: str - :keyword uuid: Unique ID of the cloud. - :paramtype uuid: str - :keyword vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. - :paramtype vmm_server_id: str """ - super().__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.location = location - self.tags = tags - self.system_data = None + super().__init__(tags=tags, location=location, **kwargs) + self.properties = properties self.extended_location = extended_location - self.inventory_item_id = inventory_item_id - self.uuid = uuid - self.vmm_server_id = vmm_server_id - self.cloud_name = None - self.cloud_capacity = None - self.storage_qo_s_policies = None - self.provisioning_state = None class CloudCapacity(_serialization.Model): """Cloud Capacity model. + Variables are only populated by the server, and will be ignored when sending a request. + :ivar cpu_count: CPUCount specifies the maximum number of CPUs that can be allocated in the cloud. :vartype cpu_count: int @@ -325,33 +441,24 @@ class CloudCapacity(_serialization.Model): :vartype vm_count: int """ + _validation = { + "cpu_count": {"readonly": True}, + "memory_mb": {"readonly": True}, + "vm_count": {"readonly": True}, + } + _attribute_map = { "cpu_count": {"key": "cpuCount", "type": "int"}, "memory_mb": {"key": "memoryMB", "type": "int"}, "vm_count": {"key": "vmCount", "type": "int"}, } - def __init__( - self, - *, - cpu_count: Optional[int] = None, - memory_mb: Optional[int] = None, - vm_count: Optional[int] = None, - **kwargs - ): - """ - :keyword cpu_count: CPUCount specifies the maximum number of CPUs that can be allocated in the - cloud. - :paramtype cpu_count: int - :keyword memory_mb: MemoryMB specifies a memory usage limit in megabytes. - :paramtype memory_mb: int - :keyword vm_count: VMCount gives the max number of VMs that can be deployed in the cloud. - :paramtype vm_count: int - """ + def __init__(self, **kwargs: Any) -> None: + """ """ super().__init__(**kwargs) - self.cpu_count = cpu_count - self.memory_mb = memory_mb - self.vm_count = vm_count + self.cpu_count = None + self.memory_mb = None + self.vm_count = None class InventoryItemProperties(_serialization.Model): @@ -363,20 +470,21 @@ class InventoryItemProperties(_serialization.Model): 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. + All required parameters must be populated in order to send to server. :ivar inventory_type: They inventory type. Required. Known values are: "Cloud", - "VirtualNetwork", "VirtualMachineTemplate", and "VirtualMachine". + "VirtualNetwork", "VirtualMachine", and "VirtualMachineTemplate". :vartype inventory_type: str or ~azure.mgmt.scvmm.models.InventoryType :ivar managed_resource_id: Gets the tracked resource id corresponding to the inventory resource. :vartype managed_resource_id: str - :ivar uuid: Gets the UUID (which is assigned by VMM) for the inventory item. + :ivar uuid: Gets the UUID (which is assigned by Vmm) for the inventory item. :vartype uuid: str - :ivar inventory_item_name: Gets the Managed Object name in VMM for the inventory item. + :ivar inventory_item_name: Gets the Managed Object name in Vmm for the inventory item. :vartype inventory_item_name: str - :ivar provisioning_state: Gets the provisioning state. - :vartype provisioning_state: str + :ivar provisioning_state: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Provisioning", "Updating", "Deleting", "Accepted", and "Created". + :vartype provisioning_state: str or ~azure.mgmt.scvmm.models.ProvisioningState """ _validation = { @@ -404,7 +512,7 @@ class InventoryItemProperties(_serialization.Model): } } - def __init__(self, **kwargs): + def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) self.inventory_type: Optional[str] = None @@ -419,20 +527,21 @@ class CloudInventoryItem(InventoryItemProperties): 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. + All required parameters must be populated in order to send to server. :ivar inventory_type: They inventory type. Required. Known values are: "Cloud", - "VirtualNetwork", "VirtualMachineTemplate", and "VirtualMachine". + "VirtualNetwork", "VirtualMachine", and "VirtualMachineTemplate". :vartype inventory_type: str or ~azure.mgmt.scvmm.models.InventoryType :ivar managed_resource_id: Gets the tracked resource id corresponding to the inventory resource. :vartype managed_resource_id: str - :ivar uuid: Gets the UUID (which is assigned by VMM) for the inventory item. + :ivar uuid: Gets the UUID (which is assigned by Vmm) for the inventory item. :vartype uuid: str - :ivar inventory_item_name: Gets the Managed Object name in VMM for the inventory item. + :ivar inventory_item_name: Gets the Managed Object name in Vmm for the inventory item. :vartype inventory_item_name: str - :ivar provisioning_state: Gets the provisioning state. - :vartype provisioning_state: str + :ivar provisioning_state: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Provisioning", "Updating", "Deleting", "Accepted", and "Created". + :vartype provisioning_state: str or ~azure.mgmt.scvmm.models.ProvisioningState """ _validation = { @@ -451,86 +560,218 @@ class CloudInventoryItem(InventoryItemProperties): "provisioning_state": {"key": "provisioningState", "type": "str"}, } - def __init__(self, **kwargs): + def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) self.inventory_type: str = "Cloud" class CloudListResult(_serialization.Model): - """List of Clouds. + """The response of a Cloud list operation. - :ivar value: List of Clouds. + 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 server. + + :ivar value: The Cloud items on this page. Required. :vartype value: list[~azure.mgmt.scvmm.models.Cloud] - :ivar next_link: Url to follow for getting next page of resources. + :ivar next_link: The link to the next page of items. :vartype next_link: str """ + _validation = { + "value": {"required": True}, + "next_link": {"readonly": True}, + } + _attribute_map = { "value": {"key": "value", "type": "[Cloud]"}, "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, *, value: Optional[List["_models.Cloud"]] = None, next_link: Optional[str] = None, **kwargs): + def __init__(self, *, value: List["_models.Cloud"], **kwargs: Any) -> None: """ - :keyword value: List of Clouds. + :keyword value: The Cloud items on this page. Required. :paramtype value: list[~azure.mgmt.scvmm.models.Cloud] - :keyword next_link: Url to follow for getting next page of resources. - :paramtype next_link: str """ super().__init__(**kwargs) self.value = value - self.next_link = next_link + self.next_link = None -class ErrorDefinition(_serialization.Model): - """Error definition. +class CloudProperties(_serialization.Model): + """Defines the resource properties. Variables are only populated by the server, and will be ignored when sending a request. - :ivar code: Service specific error code which serves as the substatus for the HTTP error code. + :ivar inventory_item_id: Gets or sets the inventory Item ID for the resource. + :vartype inventory_item_id: str + :ivar uuid: Unique ID of the cloud. + :vartype uuid: str + :ivar vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. + :vartype vmm_server_id: str + :ivar cloud_name: Name of the cloud in VmmServer. + :vartype cloud_name: str + :ivar cloud_capacity: Capacity of the cloud. + :vartype cloud_capacity: ~azure.mgmt.scvmm.models.CloudCapacity + :ivar storage_qos_policies: List of QoS policies available for the cloud. + :vartype storage_qos_policies: list[~azure.mgmt.scvmm.models.StorageQosPolicy] + :ivar provisioning_state: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Provisioning", "Updating", "Deleting", "Accepted", and "Created". + :vartype provisioning_state: str or ~azure.mgmt.scvmm.models.ProvisioningState + """ + + _validation = { + "uuid": {"pattern": r"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"}, + "cloud_name": {"readonly": True}, + "cloud_capacity": {"readonly": True}, + "storage_qos_policies": {"readonly": True}, + "provisioning_state": {"readonly": True}, + } + + _attribute_map = { + "inventory_item_id": {"key": "inventoryItemId", "type": "str"}, + "uuid": {"key": "uuid", "type": "str"}, + "vmm_server_id": {"key": "vmmServerId", "type": "str"}, + "cloud_name": {"key": "cloudName", "type": "str"}, + "cloud_capacity": {"key": "cloudCapacity", "type": "CloudCapacity"}, + "storage_qos_policies": {"key": "storageQoSPolicies", "type": "[StorageQosPolicy]"}, + "provisioning_state": {"key": "provisioningState", "type": "str"}, + } + + def __init__( + self, + *, + inventory_item_id: Optional[str] = None, + uuid: Optional[str] = None, + vmm_server_id: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword inventory_item_id: Gets or sets the inventory Item ID for the resource. + :paramtype inventory_item_id: str + :keyword uuid: Unique ID of the cloud. + :paramtype uuid: str + :keyword vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. + :paramtype vmm_server_id: str + """ + super().__init__(**kwargs) + self.inventory_item_id = inventory_item_id + self.uuid = uuid + self.vmm_server_id = vmm_server_id + self.cloud_name = None + self.cloud_capacity = None + self.storage_qos_policies = None + self.provisioning_state = None + + +class CloudTagsUpdate(_serialization.Model): + """The type used for updating tags in Cloud resources. + + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + """ + + _attribute_map = { + "tags": {"key": "tags", "type": "{str}"}, + } + + def __init__(self, *, tags: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: + """ + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + """ + super().__init__(**kwargs) + self.tags = tags + + +class ErrorAdditionalInfo(_serialization.Model): + """The resource management error additional info. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar type: The additional info type. + :vartype type: str + :ivar info: The additional info. + :vartype info: JSON + """ + + _validation = { + "type": {"readonly": True}, + "info": {"readonly": True}, + } + + _attribute_map = { + "type": {"key": "type", "type": "str"}, + "info": {"key": "info", "type": "object"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.type = None + self.info = None + + +class ErrorDetail(_serialization.Model): + """The error detail. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar code: The error code. :vartype code: str - :ivar message: Description of the error. + :ivar message: The error message. :vartype message: str - :ivar details: Internal error details. - :vartype details: list[~azure.mgmt.scvmm.models.ErrorDefinition] + :ivar target: The error target. + :vartype target: str + :ivar details: The error details. + :vartype details: list[~azure.mgmt.scvmm.models.ErrorDetail] + :ivar additional_info: The error additional info. + :vartype additional_info: list[~azure.mgmt.scvmm.models.ErrorAdditionalInfo] """ _validation = { "code": {"readonly": True}, "message": {"readonly": True}, + "target": {"readonly": True}, "details": {"readonly": True}, + "additional_info": {"readonly": True}, } _attribute_map = { "code": {"key": "code", "type": "str"}, "message": {"key": "message", "type": "str"}, - "details": {"key": "details", "type": "[ErrorDefinition]"}, + "target": {"key": "target", "type": "str"}, + "details": {"key": "details", "type": "[ErrorDetail]"}, + "additional_info": {"key": "additionalInfo", "type": "[ErrorAdditionalInfo]"}, } - def __init__(self, **kwargs): + def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) self.code = None self.message = None + self.target = None self.details = None + self.additional_info = None class ErrorResponse(_serialization.Model): - """Error response. + """Common error response for all Azure Resource Manager APIs to return error details for failed + operations. (This also follows the OData error response format.). - :ivar error: The error details. - :vartype error: ~azure.mgmt.scvmm.models.ErrorDefinition + :ivar error: The error object. + :vartype error: ~azure.mgmt.scvmm.models.ErrorDetail """ _attribute_map = { - "error": {"key": "error", "type": "ErrorDefinition"}, + "error": {"key": "error", "type": "ErrorDetail"}, } - def __init__(self, *, error: Optional["_models.ErrorDefinition"] = None, **kwargs): + def __init__(self, *, error: Optional["_models.ErrorDetail"] = None, **kwargs: Any) -> None: """ - :keyword error: The error details. - :paramtype error: ~azure.mgmt.scvmm.models.ErrorDefinition + :keyword error: The error object. + :paramtype error: ~azure.mgmt.scvmm.models.ErrorDetail """ super().__init__(**kwargs) self.error = error @@ -550,7 +791,7 @@ class ExtendedLocation(_serialization.Model): "name": {"key": "name", "type": "str"}, } - def __init__(self, *, type: Optional[str] = None, name: Optional[str] = None, **kwargs): + def __init__(self, *, type: Optional[str] = None, name: Optional[str] = None, **kwargs: Any) -> None: """ :keyword type: The extended location type. :paramtype type: str @@ -562,27 +803,231 @@ class ExtendedLocation(_serialization.Model): self.name = name +class ProxyResource(Resource): + """The resource model definition for a Azure Resource Manager proxy resource. It will not have + tags and a location. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. E.g. + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.scvmm.models.SystemData + """ + + +class GuestAgent(ProxyResource): + """Defines the GuestAgent. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. E.g. + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.scvmm.models.SystemData + :ivar properties: The resource-specific properties for this resource. + :vartype properties: ~azure.mgmt.scvmm.models.GuestAgentProperties + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "properties": {"key": "properties", "type": "GuestAgentProperties"}, + } + + def __init__(self, *, properties: Optional["_models.GuestAgentProperties"] = None, **kwargs: Any) -> None: + """ + :keyword properties: The resource-specific properties for this resource. + :paramtype properties: ~azure.mgmt.scvmm.models.GuestAgentProperties + """ + super().__init__(**kwargs) + self.properties = properties + + +class GuestAgentListResult(_serialization.Model): + """The response of a GuestAgent list operation. + + 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 server. + + :ivar value: The GuestAgent items on this page. Required. + :vartype value: list[~azure.mgmt.scvmm.models.GuestAgent] + :ivar next_link: The link to the next page of items. + :vartype next_link: str + """ + + _validation = { + "value": {"required": True}, + "next_link": {"readonly": True}, + } + + _attribute_map = { + "value": {"key": "value", "type": "[GuestAgent]"}, + "next_link": {"key": "nextLink", "type": "str"}, + } + + def __init__(self, *, value: List["_models.GuestAgent"], **kwargs: Any) -> None: + """ + :keyword value: The GuestAgent items on this page. Required. + :paramtype value: list[~azure.mgmt.scvmm.models.GuestAgent] + """ + super().__init__(**kwargs) + self.value = value + self.next_link = None + + +class GuestAgentProperties(_serialization.Model): + """Defines the resource properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar uuid: Gets a unique identifier for this resource. + :vartype uuid: str + :ivar credentials: Username / Password Credentials to provision guest agent. + :vartype credentials: ~azure.mgmt.scvmm.models.GuestCredential + :ivar http_proxy_config: HTTP Proxy configuration for the VM. + :vartype http_proxy_config: ~azure.mgmt.scvmm.models.HttpProxyConfiguration + :ivar provisioning_action: Gets or sets the guest agent provisioning action. Known values are: + "install", "uninstall", and "repair". + :vartype provisioning_action: str or ~azure.mgmt.scvmm.models.ProvisioningAction + :ivar status: Gets the guest agent status. + :vartype status: str + :ivar custom_resource_name: Gets the name of the corresponding resource in Kubernetes. + :vartype custom_resource_name: str + :ivar provisioning_state: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Provisioning", "Updating", "Deleting", "Accepted", and "Created". + :vartype provisioning_state: str or ~azure.mgmt.scvmm.models.ProvisioningState + """ + + _validation = { + "uuid": {"readonly": True}, + "status": {"readonly": True}, + "custom_resource_name": {"readonly": True}, + "provisioning_state": {"readonly": True}, + } + + _attribute_map = { + "uuid": {"key": "uuid", "type": "str"}, + "credentials": {"key": "credentials", "type": "GuestCredential"}, + "http_proxy_config": {"key": "httpProxyConfig", "type": "HttpProxyConfiguration"}, + "provisioning_action": {"key": "provisioningAction", "type": "str"}, + "status": {"key": "status", "type": "str"}, + "custom_resource_name": {"key": "customResourceName", "type": "str"}, + "provisioning_state": {"key": "provisioningState", "type": "str"}, + } + + def __init__( + self, + *, + credentials: Optional["_models.GuestCredential"] = None, + http_proxy_config: Optional["_models.HttpProxyConfiguration"] = None, + provisioning_action: Optional[Union[str, "_models.ProvisioningAction"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword credentials: Username / Password Credentials to provision guest agent. + :paramtype credentials: ~azure.mgmt.scvmm.models.GuestCredential + :keyword http_proxy_config: HTTP Proxy configuration for the VM. + :paramtype http_proxy_config: ~azure.mgmt.scvmm.models.HttpProxyConfiguration + :keyword provisioning_action: Gets or sets the guest agent provisioning action. Known values + are: "install", "uninstall", and "repair". + :paramtype provisioning_action: str or ~azure.mgmt.scvmm.models.ProvisioningAction + """ + super().__init__(**kwargs) + self.uuid = None + self.credentials = credentials + self.http_proxy_config = http_proxy_config + self.provisioning_action = provisioning_action + self.status = None + self.custom_resource_name = None + self.provisioning_state = None + + +class GuestCredential(_serialization.Model): + """Username / Password Credentials to connect to guest. + + All required parameters must be populated in order to send to server. + + :ivar username: Gets or sets username to connect with the guest. Required. + :vartype username: str + :ivar password: Gets or sets the password to connect with the guest. Required. + :vartype password: str + """ + + _validation = { + "username": {"required": True}, + "password": {"required": True}, + } + + _attribute_map = { + "username": {"key": "username", "type": "str"}, + "password": {"key": "password", "type": "str"}, + } + + def __init__(self, *, username: str, password: str, **kwargs: Any) -> None: + """ + :keyword username: Gets or sets username to connect with the guest. Required. + :paramtype username: str + :keyword password: Gets or sets the password to connect with the guest. Required. + :paramtype password: str + """ + super().__init__(**kwargs) + self.username = username + self.password = password + + class HardwareProfile(_serialization.Model): """Defines the resource properties. + Variables are only populated by the server, and will be ignored when sending a request. + :ivar memory_mb: MemoryMB is the size of a virtual machine's memory, in MB. :vartype memory_mb: int :ivar cpu_count: Gets or sets the number of vCPUs for the vm. :vartype cpu_count: int :ivar limit_cpu_for_migration: Gets or sets a value indicating whether to enable processor - compatibility mode for live migration of VMs. Known values are: "false" and "true". + compatibility mode for live migration of VMs. Known values are: "true" and "false". :vartype limit_cpu_for_migration: str or ~azure.mgmt.scvmm.models.LimitCpuForMigration :ivar dynamic_memory_enabled: Gets or sets a value indicating whether to enable dynamic memory - or not. Known values are: "false" and "true". + or not. Known values are: "true" and "false". :vartype dynamic_memory_enabled: str or ~azure.mgmt.scvmm.models.DynamicMemoryEnabled :ivar dynamic_memory_max_mb: Gets or sets the max dynamic memory for the vm. :vartype dynamic_memory_max_mb: int :ivar dynamic_memory_min_mb: Gets or sets the min dynamic memory for the vm. :vartype dynamic_memory_min_mb: int - :ivar is_highly_available: Gets highly available property. - :vartype is_highly_available: str + :ivar is_highly_available: Gets highly available property. Known values are: "true" and + "false". + :vartype is_highly_available: str or ~azure.mgmt.scvmm.models.IsHighlyAvailable """ + _validation = { + "is_highly_available": {"readonly": True}, + } + _attribute_map = { "memory_mb": {"key": "memoryMB", "type": "int"}, "cpu_count": {"key": "cpuCount", "type": "int"}, @@ -602,26 +1047,23 @@ class HardwareProfile(_serialization.Model): dynamic_memory_enabled: Optional[Union[str, "_models.DynamicMemoryEnabled"]] = None, dynamic_memory_max_mb: Optional[int] = None, dynamic_memory_min_mb: Optional[int] = None, - is_highly_available: Optional[str] = None, - **kwargs - ): + **kwargs: Any + ) -> None: """ :keyword memory_mb: MemoryMB is the size of a virtual machine's memory, in MB. :paramtype memory_mb: int :keyword cpu_count: Gets or sets the number of vCPUs for the vm. :paramtype cpu_count: int :keyword limit_cpu_for_migration: Gets or sets a value indicating whether to enable processor - compatibility mode for live migration of VMs. Known values are: "false" and "true". + compatibility mode for live migration of VMs. Known values are: "true" and "false". :paramtype limit_cpu_for_migration: str or ~azure.mgmt.scvmm.models.LimitCpuForMigration :keyword dynamic_memory_enabled: Gets or sets a value indicating whether to enable dynamic - memory or not. Known values are: "false" and "true". + memory or not. Known values are: "true" and "false". :paramtype dynamic_memory_enabled: str or ~azure.mgmt.scvmm.models.DynamicMemoryEnabled :keyword dynamic_memory_max_mb: Gets or sets the max dynamic memory for the vm. :paramtype dynamic_memory_max_mb: int :keyword dynamic_memory_min_mb: Gets or sets the min dynamic memory for the vm. :paramtype dynamic_memory_min_mb: int - :keyword is_highly_available: Gets highly available property. - :paramtype is_highly_available: str """ super().__init__(**kwargs) self.memory_mb = memory_mb @@ -630,21 +1072,21 @@ class HardwareProfile(_serialization.Model): self.dynamic_memory_enabled = dynamic_memory_enabled self.dynamic_memory_max_mb = dynamic_memory_max_mb self.dynamic_memory_min_mb = dynamic_memory_min_mb - self.is_highly_available = is_highly_available + self.is_highly_available = None class HardwareProfileUpdate(_serialization.Model): - """Defines the resource properties. + """Defines the resource update properties. :ivar memory_mb: MemoryMB is the size of a virtual machine's memory, in MB. :vartype memory_mb: int :ivar cpu_count: Gets or sets the number of vCPUs for the vm. :vartype cpu_count: int :ivar limit_cpu_for_migration: Gets or sets a value indicating whether to enable processor - compatibility mode for live migration of VMs. Known values are: "false" and "true". + compatibility mode for live migration of VMs. Known values are: "true" and "false". :vartype limit_cpu_for_migration: str or ~azure.mgmt.scvmm.models.LimitCpuForMigration :ivar dynamic_memory_enabled: Gets or sets a value indicating whether to enable dynamic memory - or not. Known values are: "false" and "true". + or not. Known values are: "true" and "false". :vartype dynamic_memory_enabled: str or ~azure.mgmt.scvmm.models.DynamicMemoryEnabled :ivar dynamic_memory_max_mb: Gets or sets the max dynamic memory for the vm. :vartype dynamic_memory_max_mb: int @@ -670,18 +1112,18 @@ class HardwareProfileUpdate(_serialization.Model): dynamic_memory_enabled: Optional[Union[str, "_models.DynamicMemoryEnabled"]] = None, dynamic_memory_max_mb: Optional[int] = None, dynamic_memory_min_mb: Optional[int] = None, - **kwargs - ): + **kwargs: Any + ) -> None: """ :keyword memory_mb: MemoryMB is the size of a virtual machine's memory, in MB. :paramtype memory_mb: int :keyword cpu_count: Gets or sets the number of vCPUs for the vm. :paramtype cpu_count: int :keyword limit_cpu_for_migration: Gets or sets a value indicating whether to enable processor - compatibility mode for live migration of VMs. Known values are: "false" and "true". + compatibility mode for live migration of VMs. Known values are: "true" and "false". :paramtype limit_cpu_for_migration: str or ~azure.mgmt.scvmm.models.LimitCpuForMigration :keyword dynamic_memory_enabled: Gets or sets a value indicating whether to enable dynamic - memory or not. Known values are: "false" and "true". + memory or not. Known values are: "true" and "false". :paramtype dynamic_memory_enabled: str or ~azure.mgmt.scvmm.models.DynamicMemoryEnabled :keyword dynamic_memory_max_mb: Gets or sets the max dynamic memory for the vm. :paramtype dynamic_memory_max_mb: int @@ -697,71 +1139,142 @@ class HardwareProfileUpdate(_serialization.Model): self.dynamic_memory_min_mb = dynamic_memory_min_mb -class Resource(_serialization.Model): - """Common fields that are returned in the response for all Azure Resource Manager resources. +class HttpProxyConfiguration(_serialization.Model): + """HTTP Proxy configuration for the VM. + + :ivar https_proxy: Gets or sets httpsProxy url. + :vartype https_proxy: str + """ + + _attribute_map = { + "https_proxy": {"key": "httpsProxy", "type": "str"}, + } + + def __init__(self, *, https_proxy: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword https_proxy: Gets or sets httpsProxy url. + :paramtype https_proxy: str + """ + super().__init__(**kwargs) + self.https_proxy = https_proxy + + +class InfrastructureProfile(_serialization.Model): # pylint: disable=too-many-instance-attributes + """Specifies the vmmServer infrastructure specific settings for the virtual machine instance. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. - :vartype id: str - :ivar name: The name of the resource. - :vartype name: str - :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or - "Microsoft.Storage/storageAccounts". - :vartype type: str + :ivar inventory_item_id: Gets or sets the inventory Item ID for the resource. + :vartype inventory_item_id: str + :ivar vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. + :vartype vmm_server_id: str + :ivar cloud_id: ARM Id of the cloud resource to use for deploying the vm. + :vartype cloud_id: str + :ivar template_id: ARM Id of the template resource to use for deploying the vm. + :vartype template_id: str + :ivar vm_name: VMName is the name of VM on the SCVmm server. + :vartype vm_name: str + :ivar uuid: Unique ID of the virtual machine. + :vartype uuid: str + :ivar last_restored_vm_checkpoint: Last restored checkpoint in the vm. + :vartype last_restored_vm_checkpoint: ~azure.mgmt.scvmm.models.Checkpoint + :ivar checkpoints: Checkpoints in the vm. + :vartype checkpoints: list[~azure.mgmt.scvmm.models.Checkpoint] + :ivar checkpoint_type: Type of checkpoint supported for the vm. + :vartype checkpoint_type: str + :ivar generation: Gets or sets the generation for the vm. + :vartype generation: int + :ivar bios_guid: Gets or sets the bios guid for the vm. + :vartype bios_guid: str """ _validation = { - "id": {"readonly": True}, - "name": {"readonly": True}, - "type": {"readonly": True}, + "vm_name": {"min_length": 1}, + "last_restored_vm_checkpoint": {"readonly": True}, + "checkpoints": {"readonly": True}, } _attribute_map = { - "id": {"key": "id", "type": "str"}, - "name": {"key": "name", "type": "str"}, - "type": {"key": "type", "type": "str"}, + "inventory_item_id": {"key": "inventoryItemId", "type": "str"}, + "vmm_server_id": {"key": "vmmServerId", "type": "str"}, + "cloud_id": {"key": "cloudId", "type": "str"}, + "template_id": {"key": "templateId", "type": "str"}, + "vm_name": {"key": "vmName", "type": "str"}, + "uuid": {"key": "uuid", "type": "str"}, + "last_restored_vm_checkpoint": {"key": "lastRestoredVMCheckpoint", "type": "Checkpoint"}, + "checkpoints": {"key": "checkpoints", "type": "[Checkpoint]"}, + "checkpoint_type": {"key": "checkpointType", "type": "str"}, + "generation": {"key": "generation", "type": "int"}, + "bios_guid": {"key": "biosGuid", "type": "str"}, } - def __init__(self, **kwargs): - """ """ + def __init__( + self, + *, + inventory_item_id: Optional[str] = None, + vmm_server_id: Optional[str] = None, + cloud_id: Optional[str] = None, + template_id: Optional[str] = None, + vm_name: Optional[str] = None, + uuid: Optional[str] = None, + checkpoint_type: Optional[str] = None, + generation: Optional[int] = None, + bios_guid: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword inventory_item_id: Gets or sets the inventory Item ID for the resource. + :paramtype inventory_item_id: str + :keyword vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. + :paramtype vmm_server_id: str + :keyword cloud_id: ARM Id of the cloud resource to use for deploying the vm. + :paramtype cloud_id: str + :keyword template_id: ARM Id of the template resource to use for deploying the vm. + :paramtype template_id: str + :keyword vm_name: VMName is the name of VM on the SCVmm server. + :paramtype vm_name: str + :keyword uuid: Unique ID of the virtual machine. + :paramtype uuid: str + :keyword checkpoint_type: Type of checkpoint supported for the vm. + :paramtype checkpoint_type: str + :keyword generation: Gets or sets the generation for the vm. + :paramtype generation: int + :keyword bios_guid: Gets or sets the bios guid for the vm. + :paramtype bios_guid: str + """ super().__init__(**kwargs) - self.id = None - self.name = None - self.type = None + self.inventory_item_id = inventory_item_id + self.vmm_server_id = vmm_server_id + self.cloud_id = cloud_id + self.template_id = template_id + self.vm_name = vm_name + self.uuid = uuid + self.last_restored_vm_checkpoint = None + self.checkpoints = None + self.checkpoint_type = checkpoint_type + self.generation = generation + self.bios_guid = bios_guid -class ProxyResource(Resource): - """The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location. +class InfrastructureProfileUpdate(_serialization.Model): + """Specifies the vmmServer infrastructure specific update settings for the virtual machine + instance. - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. - :vartype id: str - :ivar name: The name of the resource. - :vartype name: str - :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or - "Microsoft.Storage/storageAccounts". - :vartype type: str + :ivar checkpoint_type: Type of checkpoint supported for the vm. + :vartype checkpoint_type: str """ - _validation = { - "id": {"readonly": True}, - "name": {"readonly": True}, - "type": {"readonly": True}, - } - _attribute_map = { - "id": {"key": "id", "type": "str"}, - "name": {"key": "name", "type": "str"}, - "type": {"key": "type", "type": "str"}, + "checkpoint_type": {"key": "checkpointType", "type": "str"}, } - def __init__(self, **kwargs): - """ """ + def __init__(self, *, checkpoint_type: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword checkpoint_type: Type of checkpoint supported for the vm. + :paramtype checkpoint_type: str + """ super().__init__(**kwargs) + self.checkpoint_type = checkpoint_type class InventoryItem(ProxyResource): @@ -769,34 +1282,23 @@ class InventoryItem(ProxyResource): 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 id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :ivar id: Fully qualified resource ID for the resource. E.g. + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long :vartype id: str :ivar name: The name of the resource. :vartype name: str :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar system_data: The system data. + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. :vartype system_data: ~azure.mgmt.scvmm.models.SystemData + :ivar properties: The resource-specific properties for this resource. + :vartype properties: ~azure.mgmt.scvmm.models.InventoryItemProperties :ivar kind: Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. :vartype kind: str - :ivar inventory_type: They inventory type. Required. Known values are: "Cloud", - "VirtualNetwork", "VirtualMachineTemplate", and "VirtualMachine". - :vartype inventory_type: str or ~azure.mgmt.scvmm.models.InventoryType - :ivar managed_resource_id: Gets the tracked resource id corresponding to the inventory - resource. - :vartype managed_resource_id: str - :ivar uuid: Gets the UUID (which is assigned by VMM) for the inventory item. - :vartype uuid: str - :ivar inventory_item_name: Gets the Managed Object name in VMM for the inventory item. - :vartype inventory_item_name: str - :ivar provisioning_state: Gets the provisioning state. - :vartype provisioning_state: str """ _validation = { @@ -804,11 +1306,6 @@ class InventoryItem(ProxyResource): "name": {"readonly": True}, "type": {"readonly": True}, "system_data": {"readonly": True}, - "inventory_type": {"required": True}, - "managed_resource_id": {"readonly": True}, - "uuid": {"readonly": True}, - "inventory_item_name": {"readonly": True}, - "provisioning_state": {"readonly": True}, } _attribute_map = { @@ -816,29 +1313,28 @@ class InventoryItem(ProxyResource): "name": {"key": "name", "type": "str"}, "type": {"key": "type", "type": "str"}, "system_data": {"key": "systemData", "type": "SystemData"}, + "properties": {"key": "properties", "type": "InventoryItemProperties"}, "kind": {"key": "kind", "type": "str"}, - "inventory_type": {"key": "properties.inventoryType", "type": "str"}, - "managed_resource_id": {"key": "properties.managedResourceId", "type": "str"}, - "uuid": {"key": "properties.uuid", "type": "str"}, - "inventory_item_name": {"key": "properties.inventoryItemName", "type": "str"}, - "provisioning_state": {"key": "properties.provisioningState", "type": "str"}, } - def __init__(self, *, kind: Optional[str] = None, **kwargs): + def __init__( + self, + *, + properties: Optional["_models.InventoryItemProperties"] = None, + kind: Optional[str] = None, + **kwargs: Any + ) -> None: """ + :keyword properties: The resource-specific properties for this resource. + :paramtype properties: ~azure.mgmt.scvmm.models.InventoryItemProperties :keyword kind: Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. :paramtype kind: str """ super().__init__(**kwargs) - self.system_data = None + self.properties = properties self.kind = kind - self.inventory_type: Optional[str] = None - self.managed_resource_id = None - self.uuid = None - self.inventory_item_name = None - self.provisioning_state = None class InventoryItemDetails(_serialization.Model): @@ -846,7 +1342,7 @@ class InventoryItemDetails(_serialization.Model): :ivar inventory_item_id: Gets or sets the inventory Item ID for the resource. :vartype inventory_item_id: str - :ivar inventory_item_name: Gets or sets the Managed Object name in VMM for the resource. + :ivar inventory_item_name: Gets or sets the Managed Object name in Vmm for the resource. :vartype inventory_item_name: str """ @@ -855,11 +1351,13 @@ class InventoryItemDetails(_serialization.Model): "inventory_item_name": {"key": "inventoryItemName", "type": "str"}, } - def __init__(self, *, inventory_item_id: Optional[str] = None, inventory_item_name: Optional[str] = None, **kwargs): + def __init__( + self, *, inventory_item_id: Optional[str] = None, inventory_item_name: Optional[str] = None, **kwargs: Any + ) -> None: """ :keyword inventory_item_id: Gets or sets the inventory Item ID for the resource. :paramtype inventory_item_id: str - :keyword inventory_item_name: Gets or sets the Managed Object name in VMM for the resource. + :keyword inventory_item_name: Gets or sets the Managed Object name in Vmm for the resource. :paramtype inventory_item_name: str """ super().__init__(**kwargs) @@ -867,39 +1365,40 @@ class InventoryItemDetails(_serialization.Model): self.inventory_item_name = inventory_item_name -class InventoryItemsList(_serialization.Model): - """List of InventoryItems. +class InventoryItemListResult(_serialization.Model): + """The response of a InventoryItem list operation. - All required parameters must be populated in order to send to Azure. + Variables are only populated by the server, and will be ignored when sending a request. - :ivar next_link: Url to follow for getting next page of InventoryItems. - :vartype next_link: str - :ivar value: Array of InventoryItems. Required. + All required parameters must be populated in order to send to server. + + :ivar value: The InventoryItem items on this page. Required. :vartype value: list[~azure.mgmt.scvmm.models.InventoryItem] + :ivar next_link: The link to the next page of items. + :vartype next_link: str """ _validation = { "value": {"required": True}, + "next_link": {"readonly": True}, } _attribute_map = { - "next_link": {"key": "nextLink", "type": "str"}, "value": {"key": "value", "type": "[InventoryItem]"}, + "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, *, value: List["_models.InventoryItem"], next_link: Optional[str] = None, **kwargs): + def __init__(self, *, value: List["_models.InventoryItem"], **kwargs: Any) -> None: """ - :keyword next_link: Url to follow for getting next page of InventoryItems. - :paramtype next_link: str - :keyword value: Array of InventoryItems. Required. + :keyword value: The InventoryItem items on this page. Required. :paramtype value: list[~azure.mgmt.scvmm.models.InventoryItem] """ super().__init__(**kwargs) - self.next_link = next_link self.value = value + self.next_link = None -class NetworkInterfaces(_serialization.Model): # pylint: disable=too-many-instance-attributes +class NetworkInterface(_serialization.Model): # pylint: disable=too-many-instance-attributes """Network Interface model. Variables are only populated by the server, and will be ignored when sending a request. @@ -909,17 +1408,17 @@ class NetworkInterfaces(_serialization.Model): # pylint: disable=too-many-insta :ivar display_name: Gets the display name of the network interface as shown in the vmmServer. This is the fallback label for a NIC when the name is not set. :vartype display_name: str - :ivar ipv4_addresses: Gets or sets the nic ipv4 addresses. + :ivar ipv4_addresses: Gets the nic ipv4 addresses. :vartype ipv4_addresses: list[str] - :ivar ipv6_addresses: Gets or sets the nic ipv6 addresses. + :ivar ipv6_addresses: Gets the nic ipv6 addresses. :vartype ipv6_addresses: list[str] :ivar mac_address: Gets or sets the nic MAC address. :vartype mac_address: str :ivar virtual_network_id: Gets or sets the ARM Id of the Microsoft.ScVmm/virtualNetwork resource to connect the nic. :vartype virtual_network_id: str - :ivar network_name: Gets or sets the name of the virtual network in vmmServer that the nic is - connected to. + :ivar network_name: Gets the name of the virtual network in vmmServer that the nic is connected + to. :vartype network_name: str :ivar ipv4_address_type: Gets or sets the ipv4 address type. Known values are: "Dynamic" and "Static". @@ -965,8 +1464,8 @@ class NetworkInterfaces(_serialization.Model): # pylint: disable=too-many-insta ipv6_address_type: Optional[Union[str, "_models.AllocationMethod"]] = None, mac_address_type: Optional[Union[str, "_models.AllocationMethod"]] = None, nic_id: Optional[str] = None, - **kwargs - ): + **kwargs: Any + ) -> None: """ :keyword name: Gets or sets the name of the network interface. :paramtype name: str @@ -1001,8 +1500,8 @@ class NetworkInterfaces(_serialization.Model): # pylint: disable=too-many-insta self.nic_id = nic_id -class NetworkInterfacesUpdate(_serialization.Model): - """Network Interface model. +class NetworkInterfaceUpdate(_serialization.Model): + """Network Interface Update model. :ivar name: Gets or sets the name of the network interface. :vartype name: str @@ -1044,8 +1543,8 @@ class NetworkInterfacesUpdate(_serialization.Model): ipv6_address_type: Optional[Union[str, "_models.AllocationMethod"]] = None, mac_address_type: Optional[Union[str, "_models.AllocationMethod"]] = None, nic_id: Optional[str] = None, - **kwargs - ): + **kwargs: Any + ) -> None: """ :keyword name: Gets or sets the name of the network interface. :paramtype name: str @@ -1081,46 +1580,169 @@ class NetworkProfile(_serialization.Model): :ivar network_interfaces: Gets or sets the list of network interfaces associated with the virtual machine. - :vartype network_interfaces: list[~azure.mgmt.scvmm.models.NetworkInterfaces] + :vartype network_interfaces: list[~azure.mgmt.scvmm.models.NetworkInterface] """ _attribute_map = { - "network_interfaces": {"key": "networkInterfaces", "type": "[NetworkInterfaces]"}, + "network_interfaces": {"key": "networkInterfaces", "type": "[NetworkInterface]"}, } - def __init__(self, *, network_interfaces: Optional[List["_models.NetworkInterfaces"]] = None, **kwargs): + def __init__(self, *, network_interfaces: Optional[List["_models.NetworkInterface"]] = None, **kwargs: Any) -> None: """ :keyword network_interfaces: Gets or sets the list of network interfaces associated with the virtual machine. - :paramtype network_interfaces: list[~azure.mgmt.scvmm.models.NetworkInterfaces] + :paramtype network_interfaces: list[~azure.mgmt.scvmm.models.NetworkInterface] """ super().__init__(**kwargs) self.network_interfaces = network_interfaces class NetworkProfileUpdate(_serialization.Model): - """Defines the resource properties. + """Defines the resource update properties. :ivar network_interfaces: Gets or sets the list of network interfaces associated with the virtual machine. - :vartype network_interfaces: list[~azure.mgmt.scvmm.models.NetworkInterfacesUpdate] + :vartype network_interfaces: list[~azure.mgmt.scvmm.models.NetworkInterfaceUpdate] """ _attribute_map = { - "network_interfaces": {"key": "networkInterfaces", "type": "[NetworkInterfacesUpdate]"}, + "network_interfaces": {"key": "networkInterfaces", "type": "[NetworkInterfaceUpdate]"}, } - def __init__(self, *, network_interfaces: Optional[List["_models.NetworkInterfacesUpdate"]] = None, **kwargs): + def __init__( + self, *, network_interfaces: Optional[List["_models.NetworkInterfaceUpdate"]] = None, **kwargs: Any + ) -> None: """ :keyword network_interfaces: Gets or sets the list of network interfaces associated with the virtual machine. - :paramtype network_interfaces: list[~azure.mgmt.scvmm.models.NetworkInterfacesUpdate] + :paramtype network_interfaces: list[~azure.mgmt.scvmm.models.NetworkInterfaceUpdate] """ super().__init__(**kwargs) self.network_interfaces = network_interfaces -class OsProfile(_serialization.Model): +class Operation(_serialization.Model): + """Details of a REST API operation, returned from the Resource Provider Operations API. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: The name of the operation, as per Resource-Based Access Control (RBAC). Examples: + "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action". + :vartype name: str + :ivar is_data_action: Whether the operation applies to data-plane. This is "true" for + data-plane operations and "false" for ARM/control-plane operations. + :vartype is_data_action: bool + :ivar display: Localized display information for this particular operation. + :vartype display: ~azure.mgmt.scvmm.models.OperationDisplay + :ivar origin: The intended executor of the operation; as in Resource Based Access Control + (RBAC) and audit logs UX. Default value is "user,system". Known values are: "user", "system", + and "user,system". + :vartype origin: str or ~azure.mgmt.scvmm.models.Origin + :ivar action_type: Enum. Indicates the action type. "Internal" refers to actions that are for + internal only APIs. "Internal" + :vartype action_type: str or ~azure.mgmt.scvmm.models.ActionType + """ + + _validation = { + "name": {"readonly": True}, + "is_data_action": {"readonly": True}, + "origin": {"readonly": True}, + "action_type": {"readonly": True}, + } + + _attribute_map = { + "name": {"key": "name", "type": "str"}, + "is_data_action": {"key": "isDataAction", "type": "bool"}, + "display": {"key": "display", "type": "OperationDisplay"}, + "origin": {"key": "origin", "type": "str"}, + "action_type": {"key": "actionType", "type": "str"}, + } + + def __init__(self, *, display: Optional["_models.OperationDisplay"] = None, **kwargs: Any) -> None: + """ + :keyword display: Localized display information for this particular operation. + :paramtype display: ~azure.mgmt.scvmm.models.OperationDisplay + """ + super().__init__(**kwargs) + self.name = None + self.is_data_action = None + self.display = display + self.origin = None + self.action_type = None + + +class OperationDisplay(_serialization.Model): + """Localized display information for this particular operation. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar provider: The localized friendly form of the resource provider name, e.g. "Microsoft + Monitoring Insights" or "Microsoft Compute". + :vartype provider: str + :ivar resource: The localized friendly name of the resource type related to this operation. + E.g. "Virtual Machines" or "Job Schedule Collections". + :vartype resource: str + :ivar operation: The concise, localized friendly name for the operation; suitable for + dropdowns. E.g. "Create or Update Virtual Machine", "Restart Virtual Machine". + :vartype operation: str + :ivar description: The short, localized friendly description of the operation; suitable for + tool tips and detailed views. + :vartype description: str + """ + + _validation = { + "provider": {"readonly": True}, + "resource": {"readonly": True}, + "operation": {"readonly": True}, + "description": {"readonly": True}, + } + + _attribute_map = { + "provider": {"key": "provider", "type": "str"}, + "resource": {"key": "resource", "type": "str"}, + "operation": {"key": "operation", "type": "str"}, + "description": {"key": "description", "type": "str"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.provider = None + self.resource = None + self.operation = None + self.description = None + + +class OperationListResult(_serialization.Model): + """A list of REST API operations supported by an Azure Resource Provider. It contains an URL link + to get the next set of results. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of operations supported by the resource provider. + :vartype value: list[~azure.mgmt.scvmm.models.Operation] + :ivar next_link: URL to get the next set of operation list results (if there are any). + :vartype next_link: str + """ + + _validation = { + "value": {"readonly": True}, + "next_link": {"readonly": True}, + } + + _attribute_map = { + "value": {"key": "value", "type": "[Operation]"}, + "next_link": {"key": "nextLink", "type": "str"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.value = None + self.next_link = None + + +class OsProfileForVmInstance(_serialization.Model): """Defines the resource properties. Variables are only populated by the server, and will be ignored when sending a request. @@ -1129,26 +1751,31 @@ class OsProfile(_serialization.Model): :vartype admin_password: str :ivar computer_name: Gets or sets computer name. :vartype computer_name: str - :ivar os_type: Gets or sets the type of the os. Known values are: "Windows", "Linux", and - "Other". + :ivar os_type: Gets the type of the os. Known values are: "Windows", "Linux", and "Other". :vartype os_type: str or ~azure.mgmt.scvmm.models.OsType - :ivar os_name: Gets or sets os name. - :vartype os_name: str + :ivar os_sku: Gets os sku. + :vartype os_sku: str + :ivar os_version: Gets os version. + :vartype os_version: str """ _validation = { "os_type": {"readonly": True}, - "os_name": {"readonly": True}, + "os_sku": {"readonly": True}, + "os_version": {"readonly": True}, } _attribute_map = { "admin_password": {"key": "adminPassword", "type": "str"}, "computer_name": {"key": "computerName", "type": "str"}, "os_type": {"key": "osType", "type": "str"}, - "os_name": {"key": "osName", "type": "str"}, + "os_sku": {"key": "osSku", "type": "str"}, + "os_version": {"key": "osVersion", "type": "str"}, } - def __init__(self, *, admin_password: Optional[str] = None, computer_name: Optional[str] = None, **kwargs): + def __init__( + self, *, admin_password: Optional[str] = None, computer_name: Optional[str] = None, **kwargs: Any + ) -> None: """ :keyword admin_password: Admin password of the virtual machine. :paramtype admin_password: str @@ -1159,144 +1786,8 @@ class OsProfile(_serialization.Model): self.admin_password = admin_password self.computer_name = computer_name self.os_type = None - self.os_name = None - - -class ResourcePatch(_serialization.Model): - """Object containing tags updates for patch operations. - - :ivar tags: Resource tags. - :vartype tags: dict[str, str] - """ - - _attribute_map = { - "tags": {"key": "tags", "type": "{str}"}, - } - - def __init__(self, *, tags: Optional[Dict[str, str]] = None, **kwargs): - """ - :keyword tags: Resource tags. - :paramtype tags: dict[str, str] - """ - super().__init__(**kwargs) - self.tags = tags - - -class ResourceProviderOperation(_serialization.Model): - """Results of the request to list operations. - - :ivar is_data_action: Indicates whether the operation applies to data-plane. - :vartype is_data_action: str - :ivar name: Operation name, in format of {provider}/{resource}/{operation}. - :vartype name: str - :ivar display: Display metadata associated with the operation. - :vartype display: ~azure.mgmt.scvmm.models.ResourceProviderOperationDisplay - """ - - _attribute_map = { - "is_data_action": {"key": "isDataAction", "type": "str"}, - "name": {"key": "name", "type": "str"}, - "display": {"key": "display", "type": "ResourceProviderOperationDisplay"}, - } - - def __init__( - self, - *, - is_data_action: Optional[str] = None, - name: Optional[str] = None, - display: Optional["_models.ResourceProviderOperationDisplay"] = None, - **kwargs - ): - """ - :keyword is_data_action: Indicates whether the operation applies to data-plane. - :paramtype is_data_action: str - :keyword name: Operation name, in format of {provider}/{resource}/{operation}. - :paramtype name: str - :keyword display: Display metadata associated with the operation. - :paramtype display: ~azure.mgmt.scvmm.models.ResourceProviderOperationDisplay - """ - super().__init__(**kwargs) - self.is_data_action = is_data_action - self.name = name - self.display = display - - -class ResourceProviderOperationDisplay(_serialization.Model): - """Display metadata associated with the operation. - - :ivar provider: The resource provider. - :vartype provider: str - :ivar resource: Resource on which the operation is performed. - :vartype resource: str - :ivar operation: Type of operation: read, write, delete, etc. - :vartype operation: str - :ivar description: Description of this operation. - :vartype description: str - """ - - _attribute_map = { - "provider": {"key": "provider", "type": "str"}, - "resource": {"key": "resource", "type": "str"}, - "operation": {"key": "operation", "type": "str"}, - "description": {"key": "description", "type": "str"}, - } - - def __init__( - self, - *, - provider: Optional[str] = None, - resource: Optional[str] = None, - operation: Optional[str] = None, - description: Optional[str] = None, - **kwargs - ): - """ - :keyword provider: The resource provider. - :paramtype provider: str - :keyword resource: Resource on which the operation is performed. - :paramtype resource: str - :keyword operation: Type of operation: read, write, delete, etc. - :paramtype operation: str - :keyword description: Description of this operation. - :paramtype description: str - """ - super().__init__(**kwargs) - self.provider = provider - self.resource = resource - self.operation = operation - self.description = description - - -class ResourceProviderOperationList(_serialization.Model): - """Results of the request to list operations. - - :ivar value: List of Operations. - :vartype value: list[~azure.mgmt.scvmm.models.ResourceProviderOperation] - :ivar next_link: Url to follow for getting next page of resources. - :vartype next_link: str - """ - - _attribute_map = { - "value": {"key": "value", "type": "[ResourceProviderOperation]"}, - "next_link": {"key": "nextLink", "type": "str"}, - } - - def __init__( - self, - *, - value: Optional[List["_models.ResourceProviderOperation"]] = None, - next_link: Optional[str] = None, - **kwargs - ): - """ - :keyword value: List of Operations. - :paramtype value: list[~azure.mgmt.scvmm.models.ResourceProviderOperation] - :keyword next_link: Url to follow for getting next page of resources. - :paramtype next_link: str - """ - super().__init__(**kwargs) - self.value = value - self.next_link = next_link + self.os_sku = None + self.os_version = None class StopVirtualMachineOptions(_serialization.Model): @@ -1304,20 +1795,20 @@ class StopVirtualMachineOptions(_serialization.Model): :ivar skip_shutdown: Gets or sets a value indicating whether to request non-graceful VM shutdown. True value for this flag indicates non-graceful shutdown whereas false indicates - otherwise. Defaults to false. - :vartype skip_shutdown: bool + otherwise. Defaults to false. Known values are: "true" and "false". + :vartype skip_shutdown: str or ~azure.mgmt.scvmm.models.SkipShutdown """ _attribute_map = { - "skip_shutdown": {"key": "skipShutdown", "type": "bool"}, + "skip_shutdown": {"key": "skipShutdown", "type": "str"}, } - def __init__(self, *, skip_shutdown: bool = False, **kwargs): + def __init__(self, *, skip_shutdown: Union[str, "_models.SkipShutdown"] = "false", **kwargs: Any) -> None: """ :keyword skip_shutdown: Gets or sets a value indicating whether to request non-graceful VM shutdown. True value for this flag indicates non-graceful shutdown whereas false indicates - otherwise. Defaults to false. - :paramtype skip_shutdown: bool + otherwise. Defaults to false. Known values are: "true" and "false". + :paramtype skip_shutdown: str or ~azure.mgmt.scvmm.models.SkipShutdown """ super().__init__(**kwargs) self.skip_shutdown = skip_shutdown @@ -1334,7 +1825,7 @@ class StorageProfile(_serialization.Model): "disks": {"key": "disks", "type": "[VirtualDisk]"}, } - def __init__(self, *, disks: Optional[List["_models.VirtualDisk"]] = None, **kwargs): + def __init__(self, *, disks: Optional[List["_models.VirtualDisk"]] = None, **kwargs: Any) -> None: """ :keyword disks: Gets or sets the list of virtual disks associated with the virtual machine. :paramtype disks: list[~azure.mgmt.scvmm.models.VirtualDisk] @@ -1344,7 +1835,7 @@ class StorageProfile(_serialization.Model): class StorageProfileUpdate(_serialization.Model): - """Defines the resource properties. + """Defines the resource update properties. :ivar disks: Gets or sets the list of virtual disks associated with the virtual machine. :vartype disks: list[~azure.mgmt.scvmm.models.VirtualDiskUpdate] @@ -1354,7 +1845,7 @@ class StorageProfileUpdate(_serialization.Model): "disks": {"key": "disks", "type": "[VirtualDiskUpdate]"}, } - def __init__(self, *, disks: Optional[List["_models.VirtualDiskUpdate"]] = None, **kwargs): + def __init__(self, *, disks: Optional[List["_models.VirtualDiskUpdate"]] = None, **kwargs: Any) -> None: """ :keyword disks: Gets or sets the list of virtual disks associated with the virtual machine. :paramtype disks: list[~azure.mgmt.scvmm.models.VirtualDiskUpdate] @@ -1363,7 +1854,7 @@ class StorageProfileUpdate(_serialization.Model): self.disks = disks -class StorageQoSPolicy(_serialization.Model): +class StorageQosPolicy(_serialization.Model): """The StorageQoSPolicy definition. :ivar name: The name of the policy. @@ -1398,8 +1889,8 @@ class StorageQoSPolicy(_serialization.Model): iops_minimum: Optional[int] = None, bandwidth_limit: Optional[int] = None, policy_id: Optional[str] = None, - **kwargs - ): + **kwargs: Any + ) -> None: """ :keyword name: The name of the policy. :paramtype name: str @@ -1423,7 +1914,7 @@ class StorageQoSPolicy(_serialization.Model): self.policy_id = policy_id -class StorageQoSPolicyDetails(_serialization.Model): +class StorageQosPolicyDetails(_serialization.Model): """The StorageQoSPolicyDetails definition. :ivar name: The name of the policy. @@ -1438,8 +1929,12 @@ class StorageQoSPolicyDetails(_serialization.Model): } def __init__( - self, *, name: Optional[str] = None, id: Optional[str] = None, **kwargs # pylint: disable=redefined-builtin - ): + self, + *, + name: Optional[str] = None, + id: Optional[str] = None, # pylint: disable=redefined-builtin + **kwargs: Any + ) -> None: """ :keyword name: The name of the policy. :paramtype name: str @@ -1488,8 +1983,8 @@ class SystemData(_serialization.Model): last_modified_by: Optional[str] = None, last_modified_by_type: Optional[Union[str, "_models.CreatedByType"]] = None, last_modified_at: Optional[datetime.datetime] = None, - **kwargs - ): + **kwargs: Any + ) -> None: """ :keyword created_by: The identity that created the resource. :paramtype created_by: str @@ -1529,7 +2024,7 @@ class VirtualDisk(_serialization.Model): # pylint: disable=too-many-instance-at :vartype disk_id: str :ivar disk_size_gb: Gets or sets the disk total size. :vartype disk_size_gb: int - :ivar max_disk_size_gb: Gets or sets the max disk size. + :ivar max_disk_size_gb: Gets the max disk size. :vartype max_disk_size_gb: int :ivar bus: Gets or sets the disk bus. :vartype bus: int @@ -1539,16 +2034,16 @@ class VirtualDisk(_serialization.Model): # pylint: disable=too-many-instance-at :vartype bus_type: str :ivar vhd_type: Gets or sets the disk vhd type. :vartype vhd_type: str - :ivar volume_type: Gets or sets the disk volume type. + :ivar volume_type: Gets the disk volume type. :vartype volume_type: str :ivar vhd_format_type: Gets the disk vhd format type. :vartype vhd_format_type: str :ivar template_disk_id: Gets or sets the disk id in the template. :vartype template_disk_id: str - :ivar storage_qo_s_policy: The QoS policy for the disk. - :vartype storage_qo_s_policy: ~azure.mgmt.scvmm.models.StorageQoSPolicyDetails - :ivar create_diff_disk: Gets or sets a value indicating diff disk. Known values are: "false" - and "true". + :ivar storage_qos_policy: The QoS policy for the disk. + :vartype storage_qos_policy: ~azure.mgmt.scvmm.models.StorageQosPolicyDetails + :ivar create_diff_disk: Gets or sets a value indicating diff disk. Known values are: "true" and + "false". :vartype create_diff_disk: str or ~azure.mgmt.scvmm.models.CreateDiffDisk """ @@ -1572,7 +2067,7 @@ class VirtualDisk(_serialization.Model): # pylint: disable=too-many-instance-at "volume_type": {"key": "volumeType", "type": "str"}, "vhd_format_type": {"key": "vhdFormatType", "type": "str"}, "template_disk_id": {"key": "templateDiskId", "type": "str"}, - "storage_qo_s_policy": {"key": "storageQoSPolicy", "type": "StorageQoSPolicyDetails"}, + "storage_qos_policy": {"key": "storageQoSPolicy", "type": "StorageQosPolicyDetails"}, "create_diff_disk": {"key": "createDiffDisk", "type": "str"}, } @@ -1587,10 +2082,10 @@ class VirtualDisk(_serialization.Model): # pylint: disable=too-many-instance-at bus_type: Optional[str] = None, vhd_type: Optional[str] = None, template_disk_id: Optional[str] = None, - storage_qo_s_policy: Optional["_models.StorageQoSPolicyDetails"] = None, + storage_qos_policy: Optional["_models.StorageQosPolicyDetails"] = None, create_diff_disk: Optional[Union[str, "_models.CreateDiffDisk"]] = None, - **kwargs - ): + **kwargs: Any + ) -> None: """ :keyword name: Gets or sets the name of the disk. :paramtype name: str @@ -1608,10 +2103,10 @@ class VirtualDisk(_serialization.Model): # pylint: disable=too-many-instance-at :paramtype vhd_type: str :keyword template_disk_id: Gets or sets the disk id in the template. :paramtype template_disk_id: str - :keyword storage_qo_s_policy: The QoS policy for the disk. - :paramtype storage_qo_s_policy: ~azure.mgmt.scvmm.models.StorageQoSPolicyDetails - :keyword create_diff_disk: Gets or sets a value indicating diff disk. Known values are: "false" - and "true". + :keyword storage_qos_policy: The QoS policy for the disk. + :paramtype storage_qos_policy: ~azure.mgmt.scvmm.models.StorageQosPolicyDetails + :keyword create_diff_disk: Gets or sets a value indicating diff disk. Known values are: "true" + and "false". :paramtype create_diff_disk: str or ~azure.mgmt.scvmm.models.CreateDiffDisk """ super().__init__(**kwargs) @@ -1627,12 +2122,12 @@ class VirtualDisk(_serialization.Model): # pylint: disable=too-many-instance-at self.volume_type = None self.vhd_format_type = None self.template_disk_id = template_disk_id - self.storage_qo_s_policy = storage_qo_s_policy + self.storage_qos_policy = storage_qos_policy self.create_diff_disk = create_diff_disk class VirtualDiskUpdate(_serialization.Model): - """Virtual disk model. + """Virtual Disk Update model. :ivar name: Gets or sets the name of the disk. :vartype name: str @@ -1648,8 +2143,8 @@ class VirtualDiskUpdate(_serialization.Model): :vartype bus_type: str :ivar vhd_type: Gets or sets the disk vhd type. :vartype vhd_type: str - :ivar storage_qo_s_policy: The QoS policy for the disk. - :vartype storage_qo_s_policy: ~azure.mgmt.scvmm.models.StorageQoSPolicyDetails + :ivar storage_qos_policy: The QoS policy for the disk. + :vartype storage_qos_policy: ~azure.mgmt.scvmm.models.StorageQosPolicyDetails """ _attribute_map = { @@ -1660,7 +2155,7 @@ class VirtualDiskUpdate(_serialization.Model): "lun": {"key": "lun", "type": "int"}, "bus_type": {"key": "busType", "type": "str"}, "vhd_type": {"key": "vhdType", "type": "str"}, - "storage_qo_s_policy": {"key": "storageQoSPolicy", "type": "StorageQoSPolicyDetails"}, + "storage_qos_policy": {"key": "storageQoSPolicy", "type": "StorageQosPolicyDetails"}, } def __init__( @@ -1673,9 +2168,9 @@ class VirtualDiskUpdate(_serialization.Model): lun: Optional[int] = None, bus_type: Optional[str] = None, vhd_type: Optional[str] = None, - storage_qo_s_policy: Optional["_models.StorageQoSPolicyDetails"] = None, - **kwargs - ): + storage_qos_policy: Optional["_models.StorageQosPolicyDetails"] = None, + **kwargs: Any + ) -> None: """ :keyword name: Gets or sets the name of the disk. :paramtype name: str @@ -1691,8 +2186,8 @@ class VirtualDiskUpdate(_serialization.Model): :paramtype bus_type: str :keyword vhd_type: Gets or sets the disk vhd type. :paramtype vhd_type: str - :keyword storage_qo_s_policy: The QoS policy for the disk. - :paramtype storage_qo_s_policy: ~azure.mgmt.scvmm.models.StorageQoSPolicyDetails + :keyword storage_qos_policy: The QoS policy for the disk. + :paramtype storage_qos_policy: ~azure.mgmt.scvmm.models.StorageQosPolicyDetails """ super().__init__(**kwargs) self.name = name @@ -1702,184 +2197,7 @@ class VirtualDiskUpdate(_serialization.Model): self.lun = lun self.bus_type = bus_type self.vhd_type = vhd_type - self.storage_qo_s_policy = storage_qo_s_policy - - -class VirtualMachine(_serialization.Model): # pylint: disable=too-many-instance-attributes - """The VirtualMachines resource definition. - - 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 id: Resource Id. - :vartype id: str - :ivar name: Resource Name. - :vartype name: str - :ivar type: Resource Type. - :vartype type: str - :ivar location: Gets or sets the location. Required. - :vartype location: str - :ivar tags: Resource tags. - :vartype tags: dict[str, str] - :ivar system_data: The system data. - :vartype system_data: ~azure.mgmt.scvmm.models.SystemData - :ivar extended_location: The extended location. Required. - :vartype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation - :ivar inventory_item_id: Gets or sets the inventory Item ID for the resource. - :vartype inventory_item_id: str - :ivar vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. - :vartype vmm_server_id: str - :ivar cloud_id: ARM Id of the cloud resource to use for deploying the vm. - :vartype cloud_id: str - :ivar template_id: ARM Id of the template resource to use for deploying the vm. - :vartype template_id: str - :ivar checkpoint_type: Type of checkpoint supported for the vm. - :vartype checkpoint_type: str - :ivar checkpoints: Checkpoints in the vm. - :vartype checkpoints: list[~azure.mgmt.scvmm.models.Checkpoint] - :ivar availability_sets: Availability Sets in vm. - :vartype availability_sets: list[~azure.mgmt.scvmm.models.AvailabilitySetListItem] - :ivar os_profile: OS properties. - :vartype os_profile: ~azure.mgmt.scvmm.models.OsProfile - :ivar hardware_profile: Hardware properties. - :vartype hardware_profile: ~azure.mgmt.scvmm.models.HardwareProfile - :ivar network_profile: Network properties. - :vartype network_profile: ~azure.mgmt.scvmm.models.NetworkProfile - :ivar storage_profile: Storage properties. - :vartype storage_profile: ~azure.mgmt.scvmm.models.StorageProfile - :ivar vm_name: VMName is the name of VM on the SCVMM server. - :vartype vm_name: str - :ivar uuid: Unique ID of the virtual machine. - :vartype uuid: str - :ivar generation: Gets or sets the generation for the vm. - :vartype generation: int - :ivar power_state: Gets the power state of the virtual machine. - :vartype power_state: str - :ivar provisioning_state: Gets or sets the provisioning state. - :vartype provisioning_state: str - """ - - _validation = { - "id": {"readonly": True}, - "name": {"readonly": True}, - "type": {"readonly": True}, - "location": {"required": True}, - "system_data": {"readonly": True}, - "extended_location": {"required": True}, - "vm_name": {"min_length": 1}, - "power_state": {"readonly": True}, - "provisioning_state": {"readonly": True}, - } - - _attribute_map = { - "id": {"key": "id", "type": "str"}, - "name": {"key": "name", "type": "str"}, - "type": {"key": "type", "type": "str"}, - "location": {"key": "location", "type": "str"}, - "tags": {"key": "tags", "type": "{str}"}, - "system_data": {"key": "systemData", "type": "SystemData"}, - "extended_location": {"key": "extendedLocation", "type": "ExtendedLocation"}, - "inventory_item_id": {"key": "properties.inventoryItemId", "type": "str"}, - "vmm_server_id": {"key": "properties.vmmServerId", "type": "str"}, - "cloud_id": {"key": "properties.cloudId", "type": "str"}, - "template_id": {"key": "properties.templateId", "type": "str"}, - "checkpoint_type": {"key": "properties.checkpointType", "type": "str"}, - "checkpoints": {"key": "properties.checkpoints", "type": "[Checkpoint]"}, - "availability_sets": {"key": "properties.availabilitySets", "type": "[AvailabilitySetListItem]"}, - "os_profile": {"key": "properties.osProfile", "type": "OsProfile"}, - "hardware_profile": {"key": "properties.hardwareProfile", "type": "HardwareProfile"}, - "network_profile": {"key": "properties.networkProfile", "type": "NetworkProfile"}, - "storage_profile": {"key": "properties.storageProfile", "type": "StorageProfile"}, - "vm_name": {"key": "properties.vmName", "type": "str"}, - "uuid": {"key": "properties.uuid", "type": "str"}, - "generation": {"key": "properties.generation", "type": "int"}, - "power_state": {"key": "properties.powerState", "type": "str"}, - "provisioning_state": {"key": "properties.provisioningState", "type": "str"}, - } - - def __init__( - self, - *, - location: str, - extended_location: "_models.ExtendedLocation", - tags: Optional[Dict[str, str]] = None, - inventory_item_id: Optional[str] = None, - vmm_server_id: Optional[str] = None, - cloud_id: Optional[str] = None, - template_id: Optional[str] = None, - checkpoint_type: Optional[str] = None, - checkpoints: Optional[List["_models.Checkpoint"]] = None, - availability_sets: Optional[List["_models.AvailabilitySetListItem"]] = None, - os_profile: Optional["_models.OsProfile"] = None, - hardware_profile: Optional["_models.HardwareProfile"] = None, - network_profile: Optional["_models.NetworkProfile"] = None, - storage_profile: Optional["_models.StorageProfile"] = None, - vm_name: Optional[str] = None, - uuid: Optional[str] = None, - generation: Optional[int] = None, - **kwargs - ): - """ - :keyword location: Gets or sets the location. Required. - :paramtype location: str - :keyword tags: Resource tags. - :paramtype tags: dict[str, str] - :keyword extended_location: The extended location. Required. - :paramtype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation - :keyword inventory_item_id: Gets or sets the inventory Item ID for the resource. - :paramtype inventory_item_id: str - :keyword vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. - :paramtype vmm_server_id: str - :keyword cloud_id: ARM Id of the cloud resource to use for deploying the vm. - :paramtype cloud_id: str - :keyword template_id: ARM Id of the template resource to use for deploying the vm. - :paramtype template_id: str - :keyword checkpoint_type: Type of checkpoint supported for the vm. - :paramtype checkpoint_type: str - :keyword checkpoints: Checkpoints in the vm. - :paramtype checkpoints: list[~azure.mgmt.scvmm.models.Checkpoint] - :keyword availability_sets: Availability Sets in vm. - :paramtype availability_sets: list[~azure.mgmt.scvmm.models.AvailabilitySetListItem] - :keyword os_profile: OS properties. - :paramtype os_profile: ~azure.mgmt.scvmm.models.OsProfile - :keyword hardware_profile: Hardware properties. - :paramtype hardware_profile: ~azure.mgmt.scvmm.models.HardwareProfile - :keyword network_profile: Network properties. - :paramtype network_profile: ~azure.mgmt.scvmm.models.NetworkProfile - :keyword storage_profile: Storage properties. - :paramtype storage_profile: ~azure.mgmt.scvmm.models.StorageProfile - :keyword vm_name: VMName is the name of VM on the SCVMM server. - :paramtype vm_name: str - :keyword uuid: Unique ID of the virtual machine. - :paramtype uuid: str - :keyword generation: Gets or sets the generation for the vm. - :paramtype generation: int - """ - super().__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.location = location - self.tags = tags - self.system_data = None - self.extended_location = extended_location - self.inventory_item_id = inventory_item_id - self.vmm_server_id = vmm_server_id - self.cloud_id = cloud_id - self.template_id = template_id - self.checkpoint_type = checkpoint_type - self.checkpoints = checkpoints - self.availability_sets = availability_sets - self.os_profile = os_profile - self.hardware_profile = hardware_profile - self.network_profile = network_profile - self.storage_profile = storage_profile - self.vm_name = vm_name - self.uuid = uuid - self.generation = generation - self.power_state = None - self.provisioning_state = None + self.storage_qos_policy = storage_qos_policy class VirtualMachineCreateCheckpoint(_serialization.Model): @@ -1896,7 +2214,7 @@ class VirtualMachineCreateCheckpoint(_serialization.Model): "description": {"key": "description", "type": "str"}, } - def __init__(self, *, name: Optional[str] = None, description: Optional[str] = None, **kwargs): + def __init__(self, *, name: Optional[str] = None, description: Optional[str] = None, **kwargs: Any) -> None: """ :keyword name: Name of the checkpoint. :paramtype name: str @@ -1919,7 +2237,7 @@ class VirtualMachineDeleteCheckpoint(_serialization.Model): "id": {"key": "id", "type": "str"}, } - def __init__(self, *, id: Optional[str] = None, **kwargs): # pylint: disable=redefined-builtin + def __init__(self, *, id: Optional[str] = None, **kwargs: Any) -> None: # pylint: disable=redefined-builtin """ :keyword id: ID of the checkpoint to be deleted. :paramtype id: str @@ -1928,36 +2246,286 @@ class VirtualMachineDeleteCheckpoint(_serialization.Model): self.id = id -class VirtualMachineInventoryItem(InventoryItemProperties): +class VirtualMachineInstance(ProxyResource): + """Define the virtualMachineInstance. + + 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 server. + + :ivar id: Fully qualified resource ID for the resource. E.g. + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.scvmm.models.SystemData + :ivar properties: The resource-specific properties for this resource. + :vartype properties: ~azure.mgmt.scvmm.models.VirtualMachineInstanceProperties + :ivar extended_location: Gets or sets the extended location. Required. + :vartype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "extended_location": {"required": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "properties": {"key": "properties", "type": "VirtualMachineInstanceProperties"}, + "extended_location": {"key": "extendedLocation", "type": "ExtendedLocation"}, + } + + def __init__( + self, + *, + extended_location: "_models.ExtendedLocation", + properties: Optional["_models.VirtualMachineInstanceProperties"] = None, + **kwargs: Any + ) -> None: + """ + :keyword properties: The resource-specific properties for this resource. + :paramtype properties: ~azure.mgmt.scvmm.models.VirtualMachineInstanceProperties + :keyword extended_location: Gets or sets the extended location. Required. + :paramtype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation + """ + super().__init__(**kwargs) + self.properties = properties + self.extended_location = extended_location + + +class VirtualMachineInstanceListResult(_serialization.Model): + """The response of a VirtualMachineInstance list operation. + + 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 server. + + :ivar value: The VirtualMachineInstance items on this page. Required. + :vartype value: list[~azure.mgmt.scvmm.models.VirtualMachineInstance] + :ivar next_link: The link to the next page of items. + :vartype next_link: str + """ + + _validation = { + "value": {"required": True}, + "next_link": {"readonly": True}, + } + + _attribute_map = { + "value": {"key": "value", "type": "[VirtualMachineInstance]"}, + "next_link": {"key": "nextLink", "type": "str"}, + } + + def __init__(self, *, value: List["_models.VirtualMachineInstance"], **kwargs: Any) -> None: + """ + :keyword value: The VirtualMachineInstance items on this page. Required. + :paramtype value: list[~azure.mgmt.scvmm.models.VirtualMachineInstance] + """ + super().__init__(**kwargs) + self.value = value + self.next_link = None + + +class VirtualMachineInstanceProperties(_serialization.Model): + """Defines the resource properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar availability_sets: Availability Sets in vm. + :vartype availability_sets: list[~azure.mgmt.scvmm.models.AvailabilitySetListItem] + :ivar os_profile: OS properties. + :vartype os_profile: ~azure.mgmt.scvmm.models.OsProfileForVmInstance + :ivar hardware_profile: Hardware properties. + :vartype hardware_profile: ~azure.mgmt.scvmm.models.HardwareProfile + :ivar network_profile: Network properties. + :vartype network_profile: ~azure.mgmt.scvmm.models.NetworkProfile + :ivar storage_profile: Storage properties. + :vartype storage_profile: ~azure.mgmt.scvmm.models.StorageProfile + :ivar infrastructure_profile: Gets the infrastructure profile. + :vartype infrastructure_profile: ~azure.mgmt.scvmm.models.InfrastructureProfile + :ivar power_state: Gets the power state of the virtual machine. + :vartype power_state: str + :ivar provisioning_state: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Provisioning", "Updating", "Deleting", "Accepted", and "Created". + :vartype provisioning_state: str or ~azure.mgmt.scvmm.models.ProvisioningState + """ + + _validation = { + "power_state": {"readonly": True}, + "provisioning_state": {"readonly": True}, + } + + _attribute_map = { + "availability_sets": {"key": "availabilitySets", "type": "[AvailabilitySetListItem]"}, + "os_profile": {"key": "osProfile", "type": "OsProfileForVmInstance"}, + "hardware_profile": {"key": "hardwareProfile", "type": "HardwareProfile"}, + "network_profile": {"key": "networkProfile", "type": "NetworkProfile"}, + "storage_profile": {"key": "storageProfile", "type": "StorageProfile"}, + "infrastructure_profile": {"key": "infrastructureProfile", "type": "InfrastructureProfile"}, + "power_state": {"key": "powerState", "type": "str"}, + "provisioning_state": {"key": "provisioningState", "type": "str"}, + } + + def __init__( + self, + *, + availability_sets: Optional[List["_models.AvailabilitySetListItem"]] = None, + os_profile: Optional["_models.OsProfileForVmInstance"] = None, + hardware_profile: Optional["_models.HardwareProfile"] = None, + network_profile: Optional["_models.NetworkProfile"] = None, + storage_profile: Optional["_models.StorageProfile"] = None, + infrastructure_profile: Optional["_models.InfrastructureProfile"] = None, + **kwargs: Any + ) -> None: + """ + :keyword availability_sets: Availability Sets in vm. + :paramtype availability_sets: list[~azure.mgmt.scvmm.models.AvailabilitySetListItem] + :keyword os_profile: OS properties. + :paramtype os_profile: ~azure.mgmt.scvmm.models.OsProfileForVmInstance + :keyword hardware_profile: Hardware properties. + :paramtype hardware_profile: ~azure.mgmt.scvmm.models.HardwareProfile + :keyword network_profile: Network properties. + :paramtype network_profile: ~azure.mgmt.scvmm.models.NetworkProfile + :keyword storage_profile: Storage properties. + :paramtype storage_profile: ~azure.mgmt.scvmm.models.StorageProfile + :keyword infrastructure_profile: Gets the infrastructure profile. + :paramtype infrastructure_profile: ~azure.mgmt.scvmm.models.InfrastructureProfile + """ + super().__init__(**kwargs) + self.availability_sets = availability_sets + self.os_profile = os_profile + self.hardware_profile = hardware_profile + self.network_profile = network_profile + self.storage_profile = storage_profile + self.infrastructure_profile = infrastructure_profile + self.power_state = None + self.provisioning_state = None + + +class VirtualMachineInstanceUpdate(_serialization.Model): + """The type used for update operations of the VirtualMachineInstance. + + :ivar properties: The update properties of the VirtualMachineInstance. + :vartype properties: ~azure.mgmt.scvmm.models.VirtualMachineInstanceUpdateProperties + """ + + _attribute_map = { + "properties": {"key": "properties", "type": "VirtualMachineInstanceUpdateProperties"}, + } + + def __init__( + self, *, properties: Optional["_models.VirtualMachineInstanceUpdateProperties"] = None, **kwargs: Any + ) -> None: + """ + :keyword properties: The update properties of the VirtualMachineInstance. + :paramtype properties: ~azure.mgmt.scvmm.models.VirtualMachineInstanceUpdateProperties + """ + super().__init__(**kwargs) + self.properties = properties + + +class VirtualMachineInstanceUpdateProperties(_serialization.Model): + """Virtual Machine Instance Properties Update model. + + :ivar availability_sets: Availability Sets in vm. + :vartype availability_sets: list[~azure.mgmt.scvmm.models.AvailabilitySetListItem] + :ivar hardware_profile: Hardware properties. + :vartype hardware_profile: ~azure.mgmt.scvmm.models.HardwareProfileUpdate + :ivar network_profile: Network properties. + :vartype network_profile: ~azure.mgmt.scvmm.models.NetworkProfileUpdate + :ivar storage_profile: Storage properties. + :vartype storage_profile: ~azure.mgmt.scvmm.models.StorageProfileUpdate + :ivar infrastructure_profile: Gets the infrastructure profile. + :vartype infrastructure_profile: ~azure.mgmt.scvmm.models.InfrastructureProfileUpdate + """ + + _attribute_map = { + "availability_sets": {"key": "availabilitySets", "type": "[AvailabilitySetListItem]"}, + "hardware_profile": {"key": "hardwareProfile", "type": "HardwareProfileUpdate"}, + "network_profile": {"key": "networkProfile", "type": "NetworkProfileUpdate"}, + "storage_profile": {"key": "storageProfile", "type": "StorageProfileUpdate"}, + "infrastructure_profile": {"key": "infrastructureProfile", "type": "InfrastructureProfileUpdate"}, + } + + def __init__( + self, + *, + availability_sets: Optional[List["_models.AvailabilitySetListItem"]] = None, + hardware_profile: Optional["_models.HardwareProfileUpdate"] = None, + network_profile: Optional["_models.NetworkProfileUpdate"] = None, + storage_profile: Optional["_models.StorageProfileUpdate"] = None, + infrastructure_profile: Optional["_models.InfrastructureProfileUpdate"] = None, + **kwargs: Any + ) -> None: + """ + :keyword availability_sets: Availability Sets in vm. + :paramtype availability_sets: list[~azure.mgmt.scvmm.models.AvailabilitySetListItem] + :keyword hardware_profile: Hardware properties. + :paramtype hardware_profile: ~azure.mgmt.scvmm.models.HardwareProfileUpdate + :keyword network_profile: Network properties. + :paramtype network_profile: ~azure.mgmt.scvmm.models.NetworkProfileUpdate + :keyword storage_profile: Storage properties. + :paramtype storage_profile: ~azure.mgmt.scvmm.models.StorageProfileUpdate + :keyword infrastructure_profile: Gets the infrastructure profile. + :paramtype infrastructure_profile: ~azure.mgmt.scvmm.models.InfrastructureProfileUpdate + """ + super().__init__(**kwargs) + self.availability_sets = availability_sets + self.hardware_profile = hardware_profile + self.network_profile = network_profile + self.storage_profile = storage_profile + self.infrastructure_profile = infrastructure_profile + + +class VirtualMachineInventoryItem(InventoryItemProperties): # pylint: disable=too-many-instance-attributes """The Virtual machine inventory item. 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. + All required parameters must be populated in order to send to server. :ivar inventory_type: They inventory type. Required. Known values are: "Cloud", - "VirtualNetwork", "VirtualMachineTemplate", and "VirtualMachine". + "VirtualNetwork", "VirtualMachine", and "VirtualMachineTemplate". :vartype inventory_type: str or ~azure.mgmt.scvmm.models.InventoryType :ivar managed_resource_id: Gets the tracked resource id corresponding to the inventory resource. :vartype managed_resource_id: str - :ivar uuid: Gets the UUID (which is assigned by VMM) for the inventory item. + :ivar uuid: Gets the UUID (which is assigned by Vmm) for the inventory item. :vartype uuid: str - :ivar inventory_item_name: Gets the Managed Object name in VMM for the inventory item. + :ivar inventory_item_name: Gets the Managed Object name in Vmm for the inventory item. :vartype inventory_item_name: str - :ivar provisioning_state: Gets the provisioning state. - :vartype provisioning_state: str - :ivar os_type: Gets or sets the type of the os. Known values are: "Windows", "Linux", and - "Other". + :ivar provisioning_state: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Provisioning", "Updating", "Deleting", "Accepted", and "Created". + :vartype provisioning_state: str or ~azure.mgmt.scvmm.models.ProvisioningState + :ivar os_type: Gets the type of the os. Known values are: "Windows", "Linux", and "Other". :vartype os_type: str or ~azure.mgmt.scvmm.models.OsType - :ivar os_name: Gets or sets os name. + :ivar os_name: Gets os name. :vartype os_name: str + :ivar os_version: Gets os version. + :vartype os_version: str :ivar power_state: Gets the power state of the virtual machine. :vartype power_state: str :ivar ip_addresses: Gets or sets the nic ip addresses. :vartype ip_addresses: list[str] :ivar cloud: Cloud inventory resource details where the VM is present. :vartype cloud: ~azure.mgmt.scvmm.models.InventoryItemDetails + :ivar bios_guid: Gets the bios guid. + :vartype bios_guid: str + :ivar managed_machine_resource_id: Gets the tracked resource id corresponding to the inventory + resource. + :vartype managed_machine_resource_id: str """ _validation = { @@ -1968,7 +2536,10 @@ class VirtualMachineInventoryItem(InventoryItemProperties): "provisioning_state": {"readonly": True}, "os_type": {"readonly": True}, "os_name": {"readonly": True}, + "os_version": {"readonly": True}, "power_state": {"readonly": True}, + "bios_guid": {"readonly": True}, + "managed_machine_resource_id": {"readonly": True}, } _attribute_map = { @@ -1979,9 +2550,12 @@ class VirtualMachineInventoryItem(InventoryItemProperties): "provisioning_state": {"key": "provisioningState", "type": "str"}, "os_type": {"key": "osType", "type": "str"}, "os_name": {"key": "osName", "type": "str"}, + "os_version": {"key": "osVersion", "type": "str"}, "power_state": {"key": "powerState", "type": "str"}, "ip_addresses": {"key": "ipAddresses", "type": "[str]"}, "cloud": {"key": "cloud", "type": "InventoryItemDetails"}, + "bios_guid": {"key": "biosGuid", "type": "str"}, + "managed_machine_resource_id": {"key": "managedMachineResourceId", "type": "str"}, } def __init__( @@ -1989,8 +2563,8 @@ class VirtualMachineInventoryItem(InventoryItemProperties): *, ip_addresses: Optional[List[str]] = None, cloud: Optional["_models.InventoryItemDetails"] = None, - **kwargs - ): + **kwargs: Any + ) -> None: """ :keyword ip_addresses: Gets or sets the nic ip addresses. :paramtype ip_addresses: list[str] @@ -2001,37 +2575,12 @@ class VirtualMachineInventoryItem(InventoryItemProperties): self.inventory_type: str = "VirtualMachine" self.os_type = None self.os_name = None + self.os_version = None self.power_state = None self.ip_addresses = ip_addresses self.cloud = cloud - - -class VirtualMachineListResult(_serialization.Model): - """List of VirtualMachines. - - :ivar value: List of VirtualMachines. - :vartype value: list[~azure.mgmt.scvmm.models.VirtualMachine] - :ivar next_link: Url to follow for getting next page of resources. - :vartype next_link: str - """ - - _attribute_map = { - "value": {"key": "value", "type": "[VirtualMachine]"}, - "next_link": {"key": "nextLink", "type": "str"}, - } - - def __init__( - self, *, value: Optional[List["_models.VirtualMachine"]] = None, next_link: Optional[str] = None, **kwargs - ): - """ - :keyword value: List of VirtualMachines. - :paramtype value: list[~azure.mgmt.scvmm.models.VirtualMachine] - :keyword next_link: Url to follow for getting next page of resources. - :paramtype next_link: str - """ - super().__init__(**kwargs) - self.value = value - self.next_link = next_link + self.bios_guid = None + self.managed_machine_resource_id = None class VirtualMachineRestoreCheckpoint(_serialization.Model): @@ -2045,7 +2594,7 @@ class VirtualMachineRestoreCheckpoint(_serialization.Model): "id": {"key": "id", "type": "str"}, } - def __init__(self, *, id: Optional[str] = None, **kwargs): # pylint: disable=redefined-builtin + def __init__(self, *, id: Optional[str] = None, **kwargs: Any) -> None: # pylint: disable=redefined-builtin """ :keyword id: ID of the checkpoint to be restored to. :paramtype id: str @@ -2054,173 +2603,76 @@ class VirtualMachineRestoreCheckpoint(_serialization.Model): self.id = id -class VirtualMachineTemplate(_serialization.Model): # pylint: disable=too-many-instance-attributes +class VirtualMachineTemplate(TrackedResource): """The VirtualMachineTemplates resource definition. 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. + All required parameters must be populated in order to send to server. - :ivar id: Resource Id. + :ivar id: Fully qualified resource ID for the resource. E.g. + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long :vartype id: str - :ivar name: Resource Name. + :ivar name: The name of the resource. :vartype name: str - :ivar type: Resource Type. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar location: Gets or sets the location. Required. - :vartype location: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.scvmm.models.SystemData :ivar tags: Resource tags. :vartype tags: dict[str, str] - :ivar system_data: The system data. - :vartype system_data: ~azure.mgmt.scvmm.models.SystemData + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str + :ivar properties: The resource-specific properties for this resource. + :vartype properties: ~azure.mgmt.scvmm.models.VirtualMachineTemplateProperties :ivar extended_location: The extended location. Required. :vartype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation - :ivar inventory_item_id: Gets or sets the inventory Item ID for the resource. - :vartype inventory_item_id: str - :ivar uuid: Unique ID of the virtual machine template. - :vartype uuid: str - :ivar vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. - :vartype vmm_server_id: str - :ivar os_type: Gets or sets the type of the os. Known values are: "Windows", "Linux", and - "Other". - :vartype os_type: str or ~azure.mgmt.scvmm.models.OsType - :ivar os_name: Gets or sets os name. - :vartype os_name: str - :ivar computer_name: Gets or sets computer name. - :vartype computer_name: str - :ivar memory_mb: MemoryMB is the desired size of a virtual machine's memory, in MB. - :vartype memory_mb: int - :ivar cpu_count: Gets or sets the desired number of vCPUs for the vm. - :vartype cpu_count: int - :ivar limit_cpu_for_migration: Gets or sets a value indicating whether to enable processor - compatibility mode for live migration of VMs. Known values are: "false" and "true". - :vartype limit_cpu_for_migration: str or ~azure.mgmt.scvmm.models.LimitCpuForMigration - :ivar dynamic_memory_enabled: Gets or sets a value indicating whether to enable dynamic memory - or not. Known values are: "false" and "true". - :vartype dynamic_memory_enabled: str or ~azure.mgmt.scvmm.models.DynamicMemoryEnabled - :ivar is_customizable: Gets or sets a value indicating whether the vm template is customizable - or not. Known values are: "false" and "true". - :vartype is_customizable: str or ~azure.mgmt.scvmm.models.IsCustomizable - :ivar dynamic_memory_max_mb: Gets or sets the max dynamic memory for the vm. - :vartype dynamic_memory_max_mb: int - :ivar dynamic_memory_min_mb: Gets or sets the min dynamic memory for the vm. - :vartype dynamic_memory_min_mb: int - :ivar is_highly_available: Gets highly available property. - :vartype is_highly_available: str - :ivar generation: Gets or sets the generation for the vm. - :vartype generation: int - :ivar network_interfaces: Gets or sets the network interfaces of the template. - :vartype network_interfaces: list[~azure.mgmt.scvmm.models.NetworkInterfaces] - :ivar disks: Gets or sets the disks of the template. - :vartype disks: list[~azure.mgmt.scvmm.models.VirtualDisk] - :ivar provisioning_state: Gets or sets the provisioning state. - :vartype provisioning_state: str """ _validation = { "id": {"readonly": True}, "name": {"readonly": True}, "type": {"readonly": True}, - "location": {"required": True}, "system_data": {"readonly": True}, + "location": {"required": True}, "extended_location": {"required": True}, - "uuid": {"min_length": 1}, - "os_type": {"readonly": True}, - "os_name": {"readonly": True}, - "computer_name": {"readonly": True}, - "memory_mb": {"readonly": True}, - "cpu_count": {"readonly": True}, - "limit_cpu_for_migration": {"readonly": True}, - "dynamic_memory_enabled": {"readonly": True}, - "is_customizable": {"readonly": True}, - "dynamic_memory_max_mb": {"readonly": True}, - "dynamic_memory_min_mb": {"readonly": True}, - "is_highly_available": {"readonly": True}, - "generation": {"readonly": True}, - "network_interfaces": {"readonly": True}, - "disks": {"readonly": True}, - "provisioning_state": {"readonly": True}, } _attribute_map = { "id": {"key": "id", "type": "str"}, "name": {"key": "name", "type": "str"}, "type": {"key": "type", "type": "str"}, - "location": {"key": "location", "type": "str"}, - "tags": {"key": "tags", "type": "{str}"}, "system_data": {"key": "systemData", "type": "SystemData"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + "properties": {"key": "properties", "type": "VirtualMachineTemplateProperties"}, "extended_location": {"key": "extendedLocation", "type": "ExtendedLocation"}, - "inventory_item_id": {"key": "properties.inventoryItemId", "type": "str"}, - "uuid": {"key": "properties.uuid", "type": "str"}, - "vmm_server_id": {"key": "properties.vmmServerId", "type": "str"}, - "os_type": {"key": "properties.osType", "type": "str"}, - "os_name": {"key": "properties.osName", "type": "str"}, - "computer_name": {"key": "properties.computerName", "type": "str"}, - "memory_mb": {"key": "properties.memoryMB", "type": "int"}, - "cpu_count": {"key": "properties.cpuCount", "type": "int"}, - "limit_cpu_for_migration": {"key": "properties.limitCpuForMigration", "type": "str"}, - "dynamic_memory_enabled": {"key": "properties.dynamicMemoryEnabled", "type": "str"}, - "is_customizable": {"key": "properties.isCustomizable", "type": "str"}, - "dynamic_memory_max_mb": {"key": "properties.dynamicMemoryMaxMB", "type": "int"}, - "dynamic_memory_min_mb": {"key": "properties.dynamicMemoryMinMB", "type": "int"}, - "is_highly_available": {"key": "properties.isHighlyAvailable", "type": "str"}, - "generation": {"key": "properties.generation", "type": "int"}, - "network_interfaces": {"key": "properties.networkInterfaces", "type": "[NetworkInterfaces]"}, - "disks": {"key": "properties.disks", "type": "[VirtualDisk]"}, - "provisioning_state": {"key": "properties.provisioningState", "type": "str"}, } - def __init__( # pylint: disable=too-many-locals + def __init__( self, *, location: str, extended_location: "_models.ExtendedLocation", tags: Optional[Dict[str, str]] = None, - inventory_item_id: Optional[str] = None, - uuid: Optional[str] = None, - vmm_server_id: Optional[str] = None, - **kwargs - ): + properties: Optional["_models.VirtualMachineTemplateProperties"] = None, + **kwargs: Any + ) -> None: """ - :keyword location: Gets or sets the location. Required. - :paramtype location: str :keyword tags: Resource tags. :paramtype tags: dict[str, str] + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + :keyword properties: The resource-specific properties for this resource. + :paramtype properties: ~azure.mgmt.scvmm.models.VirtualMachineTemplateProperties :keyword extended_location: The extended location. Required. :paramtype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation - :keyword inventory_item_id: Gets or sets the inventory Item ID for the resource. - :paramtype inventory_item_id: str - :keyword uuid: Unique ID of the virtual machine template. - :paramtype uuid: str - :keyword vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. - :paramtype vmm_server_id: str """ - super().__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.location = location - self.tags = tags - self.system_data = None + super().__init__(tags=tags, location=location, **kwargs) + self.properties = properties self.extended_location = extended_location - self.inventory_item_id = inventory_item_id - self.uuid = uuid - self.vmm_server_id = vmm_server_id - self.os_type = None - self.os_name = None - self.computer_name = None - self.memory_mb = None - self.cpu_count = None - self.limit_cpu_for_migration = None - self.dynamic_memory_enabled = None - self.is_customizable = None - self.dynamic_memory_max_mb = None - self.dynamic_memory_min_mb = None - self.is_highly_available = None - self.generation = None - self.network_interfaces = None - self.disks = None - self.provisioning_state = None class VirtualMachineTemplateInventoryItem(InventoryItemProperties): @@ -2228,28 +2680,28 @@ class VirtualMachineTemplateInventoryItem(InventoryItemProperties): 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. + All required parameters must be populated in order to send to server. :ivar inventory_type: They inventory type. Required. Known values are: "Cloud", - "VirtualNetwork", "VirtualMachineTemplate", and "VirtualMachine". + "VirtualNetwork", "VirtualMachine", and "VirtualMachineTemplate". :vartype inventory_type: str or ~azure.mgmt.scvmm.models.InventoryType :ivar managed_resource_id: Gets the tracked resource id corresponding to the inventory resource. :vartype managed_resource_id: str - :ivar uuid: Gets the UUID (which is assigned by VMM) for the inventory item. + :ivar uuid: Gets the UUID (which is assigned by Vmm) for the inventory item. :vartype uuid: str - :ivar inventory_item_name: Gets the Managed Object name in VMM for the inventory item. + :ivar inventory_item_name: Gets the Managed Object name in Vmm for the inventory item. :vartype inventory_item_name: str - :ivar provisioning_state: Gets the provisioning state. - :vartype provisioning_state: str - :ivar cpu_count: Gets or sets the desired number of vCPUs for the vm. + :ivar provisioning_state: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Provisioning", "Updating", "Deleting", "Accepted", and "Created". + :vartype provisioning_state: str or ~azure.mgmt.scvmm.models.ProvisioningState + :ivar cpu_count: Gets the desired number of vCPUs for the vm. :vartype cpu_count: int :ivar memory_mb: MemoryMB is the desired size of a virtual machine's memory, in MB. :vartype memory_mb: int - :ivar os_type: Gets or sets the type of the os. Known values are: "Windows", "Linux", and - "Other". + :ivar os_type: Gets the type of the os. Known values are: "Windows", "Linux", and "Other". :vartype os_type: str or ~azure.mgmt.scvmm.models.OsType - :ivar os_name: Gets or sets os name. + :ivar os_name: Gets os name. :vartype os_name: str """ @@ -2277,7 +2729,7 @@ class VirtualMachineTemplateInventoryItem(InventoryItemProperties): "os_name": {"key": "osName", "type": "str"}, } - def __init__(self, **kwargs): + def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) self.inventory_type: str = "VirtualMachineTemplate" @@ -2288,173 +2740,229 @@ class VirtualMachineTemplateInventoryItem(InventoryItemProperties): class VirtualMachineTemplateListResult(_serialization.Model): - """List of VirtualMachineTemplates. + """The response of a VirtualMachineTemplate list operation. - :ivar value: List of VirtualMachineTemplates. + 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 server. + + :ivar value: The VirtualMachineTemplate items on this page. Required. :vartype value: list[~azure.mgmt.scvmm.models.VirtualMachineTemplate] - :ivar next_link: Url to follow for getting next page of resources. + :ivar next_link: The link to the next page of items. :vartype next_link: str """ + _validation = { + "value": {"required": True}, + "next_link": {"readonly": True}, + } + _attribute_map = { "value": {"key": "value", "type": "[VirtualMachineTemplate]"}, "next_link": {"key": "nextLink", "type": "str"}, } - def __init__( - self, - *, - value: Optional[List["_models.VirtualMachineTemplate"]] = None, - next_link: Optional[str] = None, - **kwargs - ): + def __init__(self, *, value: List["_models.VirtualMachineTemplate"], **kwargs: Any) -> None: """ - :keyword value: List of VirtualMachineTemplates. + :keyword value: The VirtualMachineTemplate items on this page. Required. :paramtype value: list[~azure.mgmt.scvmm.models.VirtualMachineTemplate] - :keyword next_link: Url to follow for getting next page of resources. - :paramtype next_link: str """ super().__init__(**kwargs) self.value = value - self.next_link = next_link + self.next_link = None -class VirtualMachineUpdate(_serialization.Model): - """Defines the virtualMachineUpdate. +class VirtualMachineTemplateProperties(_serialization.Model): # pylint: disable=too-many-instance-attributes + """Defines the resource properties. - :ivar properties: Defines the resource properties. - :vartype properties: ~azure.mgmt.scvmm.models.VirtualMachineUpdateProperties - :ivar tags: Gets or sets the Resource tags. + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar inventory_item_id: Gets or sets the inventory Item ID for the resource. + :vartype inventory_item_id: str + :ivar uuid: Unique ID of the virtual machine template. + :vartype uuid: str + :ivar vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. + :vartype vmm_server_id: str + :ivar os_type: Gets the type of the os. Known values are: "Windows", "Linux", and "Other". + :vartype os_type: str or ~azure.mgmt.scvmm.models.OsType + :ivar os_name: Gets os name. + :vartype os_name: str + :ivar computer_name: Gets computer name. + :vartype computer_name: str + :ivar memory_mb: MemoryMB is the desired size of a virtual machine's memory, in MB. + :vartype memory_mb: int + :ivar cpu_count: Gets the desired number of vCPUs for the vm. + :vartype cpu_count: int + :ivar limit_cpu_for_migration: Gets a value indicating whether to enable processor + compatibility mode for live migration of VMs. Known values are: "true" and "false". + :vartype limit_cpu_for_migration: str or ~azure.mgmt.scvmm.models.LimitCpuForMigration + :ivar dynamic_memory_enabled: Gets a value indicating whether to enable dynamic memory or not. + Known values are: "true" and "false". + :vartype dynamic_memory_enabled: str or ~azure.mgmt.scvmm.models.DynamicMemoryEnabled + :ivar is_customizable: Gets a value indicating whether the vm template is customizable or not. + Known values are: "true" and "false". + :vartype is_customizable: str or ~azure.mgmt.scvmm.models.IsCustomizable + :ivar dynamic_memory_max_mb: Gets the max dynamic memory for the vm. + :vartype dynamic_memory_max_mb: int + :ivar dynamic_memory_min_mb: Gets the min dynamic memory for the vm. + :vartype dynamic_memory_min_mb: int + :ivar is_highly_available: Gets highly available property. Known values are: "true" and + "false". + :vartype is_highly_available: str or ~azure.mgmt.scvmm.models.IsHighlyAvailable + :ivar generation: Gets the generation for the vm. + :vartype generation: int + :ivar network_interfaces: Gets the network interfaces of the template. + :vartype network_interfaces: list[~azure.mgmt.scvmm.models.NetworkInterface] + :ivar disks: Gets the disks of the template. + :vartype disks: list[~azure.mgmt.scvmm.models.VirtualDisk] + :ivar provisioning_state: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Provisioning", "Updating", "Deleting", "Accepted", and "Created". + :vartype provisioning_state: str or ~azure.mgmt.scvmm.models.ProvisioningState + """ + + _validation = { + "uuid": {"pattern": r"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"}, + "os_type": {"readonly": True}, + "os_name": {"readonly": True}, + "computer_name": {"readonly": True}, + "memory_mb": {"readonly": True}, + "cpu_count": {"readonly": True}, + "limit_cpu_for_migration": {"readonly": True}, + "dynamic_memory_enabled": {"readonly": True}, + "is_customizable": {"readonly": True}, + "dynamic_memory_max_mb": {"readonly": True}, + "dynamic_memory_min_mb": {"readonly": True}, + "is_highly_available": {"readonly": True}, + "generation": {"readonly": True}, + "network_interfaces": {"readonly": True}, + "disks": {"readonly": True}, + "provisioning_state": {"readonly": True}, + } + + _attribute_map = { + "inventory_item_id": {"key": "inventoryItemId", "type": "str"}, + "uuid": {"key": "uuid", "type": "str"}, + "vmm_server_id": {"key": "vmmServerId", "type": "str"}, + "os_type": {"key": "osType", "type": "str"}, + "os_name": {"key": "osName", "type": "str"}, + "computer_name": {"key": "computerName", "type": "str"}, + "memory_mb": {"key": "memoryMB", "type": "int"}, + "cpu_count": {"key": "cpuCount", "type": "int"}, + "limit_cpu_for_migration": {"key": "limitCpuForMigration", "type": "str"}, + "dynamic_memory_enabled": {"key": "dynamicMemoryEnabled", "type": "str"}, + "is_customizable": {"key": "isCustomizable", "type": "str"}, + "dynamic_memory_max_mb": {"key": "dynamicMemoryMaxMB", "type": "int"}, + "dynamic_memory_min_mb": {"key": "dynamicMemoryMinMB", "type": "int"}, + "is_highly_available": {"key": "isHighlyAvailable", "type": "str"}, + "generation": {"key": "generation", "type": "int"}, + "network_interfaces": {"key": "networkInterfaces", "type": "[NetworkInterface]"}, + "disks": {"key": "disks", "type": "[VirtualDisk]"}, + "provisioning_state": {"key": "provisioningState", "type": "str"}, + } + + def __init__( + self, + *, + inventory_item_id: Optional[str] = None, + uuid: Optional[str] = None, + vmm_server_id: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword inventory_item_id: Gets or sets the inventory Item ID for the resource. + :paramtype inventory_item_id: str + :keyword uuid: Unique ID of the virtual machine template. + :paramtype uuid: str + :keyword vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. + :paramtype vmm_server_id: str + """ + super().__init__(**kwargs) + self.inventory_item_id = inventory_item_id + self.uuid = uuid + self.vmm_server_id = vmm_server_id + self.os_type = None + self.os_name = None + self.computer_name = None + self.memory_mb = None + self.cpu_count = None + self.limit_cpu_for_migration = None + self.dynamic_memory_enabled = None + self.is_customizable = None + self.dynamic_memory_max_mb = None + self.dynamic_memory_min_mb = None + self.is_highly_available = None + self.generation = None + self.network_interfaces = None + self.disks = None + self.provisioning_state = None + + +class VirtualMachineTemplateTagsUpdate(_serialization.Model): + """The type used for updating tags in VirtualMachineTemplate resources. + + :ivar tags: Resource tags. :vartype tags: dict[str, str] """ _attribute_map = { - "properties": {"key": "properties", "type": "VirtualMachineUpdateProperties"}, "tags": {"key": "tags", "type": "{str}"}, } - def __init__( - self, - *, - properties: Optional["_models.VirtualMachineUpdateProperties"] = None, - tags: Optional[Dict[str, str]] = None, - **kwargs - ): + def __init__(self, *, tags: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: """ - :keyword properties: Defines the resource properties. - :paramtype properties: ~azure.mgmt.scvmm.models.VirtualMachineUpdateProperties - :keyword tags: Gets or sets the Resource tags. + :keyword tags: Resource tags. :paramtype tags: dict[str, str] """ super().__init__(**kwargs) - self.properties = properties self.tags = tags -class VirtualMachineUpdateProperties(_serialization.Model): - """Defines the resource properties. - - :ivar hardware_profile: Defines the resource properties. - :vartype hardware_profile: ~azure.mgmt.scvmm.models.HardwareProfileUpdate - :ivar storage_profile: Defines the resource properties. - :vartype storage_profile: ~azure.mgmt.scvmm.models.StorageProfileUpdate - :ivar network_profile: Defines the resource properties. - :vartype network_profile: ~azure.mgmt.scvmm.models.NetworkProfileUpdate - :ivar availability_sets: Availability Sets in vm. - :vartype availability_sets: list[~azure.mgmt.scvmm.models.AvailabilitySetListItem] - """ - - _attribute_map = { - "hardware_profile": {"key": "hardwareProfile", "type": "HardwareProfileUpdate"}, - "storage_profile": {"key": "storageProfile", "type": "StorageProfileUpdate"}, - "network_profile": {"key": "networkProfile", "type": "NetworkProfileUpdate"}, - "availability_sets": {"key": "availabilitySets", "type": "[AvailabilitySetListItem]"}, - } - - def __init__( - self, - *, - hardware_profile: Optional["_models.HardwareProfileUpdate"] = None, - storage_profile: Optional["_models.StorageProfileUpdate"] = None, - network_profile: Optional["_models.NetworkProfileUpdate"] = None, - availability_sets: Optional[List["_models.AvailabilitySetListItem"]] = None, - **kwargs - ): - """ - :keyword hardware_profile: Defines the resource properties. - :paramtype hardware_profile: ~azure.mgmt.scvmm.models.HardwareProfileUpdate - :keyword storage_profile: Defines the resource properties. - :paramtype storage_profile: ~azure.mgmt.scvmm.models.StorageProfileUpdate - :keyword network_profile: Defines the resource properties. - :paramtype network_profile: ~azure.mgmt.scvmm.models.NetworkProfileUpdate - :keyword availability_sets: Availability Sets in vm. - :paramtype availability_sets: list[~azure.mgmt.scvmm.models.AvailabilitySetListItem] - """ - super().__init__(**kwargs) - self.hardware_profile = hardware_profile - self.storage_profile = storage_profile - self.network_profile = network_profile - self.availability_sets = availability_sets - - -class VirtualNetwork(_serialization.Model): # pylint: disable=too-many-instance-attributes +class VirtualNetwork(TrackedResource): """The VirtualNetworks resource definition. 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. + All required parameters must be populated in order to send to server. - :ivar id: Resource Id. + :ivar id: Fully qualified resource ID for the resource. E.g. + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long :vartype id: str - :ivar name: Resource Name. + :ivar name: The name of the resource. :vartype name: str - :ivar type: Resource Type. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar location: Gets or sets the location. Required. - :vartype location: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.scvmm.models.SystemData :ivar tags: Resource tags. :vartype tags: dict[str, str] - :ivar system_data: The system data. - :vartype system_data: ~azure.mgmt.scvmm.models.SystemData + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str + :ivar properties: The resource-specific properties for this resource. + :vartype properties: ~azure.mgmt.scvmm.models.VirtualNetworkProperties :ivar extended_location: The extended location. Required. :vartype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation - :ivar inventory_item_id: Gets or sets the inventory Item ID for the resource. - :vartype inventory_item_id: str - :ivar uuid: Unique ID of the virtual network. - :vartype uuid: str - :ivar vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. - :vartype vmm_server_id: str - :ivar network_name: Name of the virtual network in vmmServer. - :vartype network_name: str - :ivar provisioning_state: Gets or sets the provisioning state. - :vartype provisioning_state: str """ _validation = { "id": {"readonly": True}, "name": {"readonly": True}, "type": {"readonly": True}, - "location": {"required": True}, "system_data": {"readonly": True}, + "location": {"required": True}, "extended_location": {"required": True}, - "uuid": {"min_length": 1}, - "network_name": {"readonly": True}, - "provisioning_state": {"readonly": True}, } _attribute_map = { "id": {"key": "id", "type": "str"}, "name": {"key": "name", "type": "str"}, "type": {"key": "type", "type": "str"}, - "location": {"key": "location", "type": "str"}, - "tags": {"key": "tags", "type": "{str}"}, "system_data": {"key": "systemData", "type": "SystemData"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + "properties": {"key": "properties", "type": "VirtualNetworkProperties"}, "extended_location": {"key": "extendedLocation", "type": "ExtendedLocation"}, - "inventory_item_id": {"key": "properties.inventoryItemId", "type": "str"}, - "uuid": {"key": "properties.uuid", "type": "str"}, - "vmm_server_id": {"key": "properties.vmmServerId", "type": "str"}, - "network_name": {"key": "properties.networkName", "type": "str"}, - "provisioning_state": {"key": "properties.provisioningState", "type": "str"}, } def __init__( @@ -2463,38 +2971,22 @@ class VirtualNetwork(_serialization.Model): # pylint: disable=too-many-instance location: str, extended_location: "_models.ExtendedLocation", tags: Optional[Dict[str, str]] = None, - inventory_item_id: Optional[str] = None, - uuid: Optional[str] = None, - vmm_server_id: Optional[str] = None, - **kwargs - ): + properties: Optional["_models.VirtualNetworkProperties"] = None, + **kwargs: Any + ) -> None: """ - :keyword location: Gets or sets the location. Required. - :paramtype location: str :keyword tags: Resource tags. :paramtype tags: dict[str, str] + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + :keyword properties: The resource-specific properties for this resource. + :paramtype properties: ~azure.mgmt.scvmm.models.VirtualNetworkProperties :keyword extended_location: The extended location. Required. :paramtype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation - :keyword inventory_item_id: Gets or sets the inventory Item ID for the resource. - :paramtype inventory_item_id: str - :keyword uuid: Unique ID of the virtual network. - :paramtype uuid: str - :keyword vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. - :paramtype vmm_server_id: str """ - super().__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.location = location - self.tags = tags - self.system_data = None + super().__init__(tags=tags, location=location, **kwargs) + self.properties = properties self.extended_location = extended_location - self.inventory_item_id = inventory_item_id - self.uuid = uuid - self.vmm_server_id = vmm_server_id - self.network_name = None - self.provisioning_state = None class VirtualNetworkInventoryItem(InventoryItemProperties): @@ -2502,20 +2994,21 @@ class VirtualNetworkInventoryItem(InventoryItemProperties): 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. + All required parameters must be populated in order to send to server. :ivar inventory_type: They inventory type. Required. Known values are: "Cloud", - "VirtualNetwork", "VirtualMachineTemplate", and "VirtualMachine". + "VirtualNetwork", "VirtualMachine", and "VirtualMachineTemplate". :vartype inventory_type: str or ~azure.mgmt.scvmm.models.InventoryType :ivar managed_resource_id: Gets the tracked resource id corresponding to the inventory resource. :vartype managed_resource_id: str - :ivar uuid: Gets the UUID (which is assigned by VMM) for the inventory item. + :ivar uuid: Gets the UUID (which is assigned by Vmm) for the inventory item. :vartype uuid: str - :ivar inventory_item_name: Gets the Managed Object name in VMM for the inventory item. + :ivar inventory_item_name: Gets the Managed Object name in Vmm for the inventory item. :vartype inventory_item_name: str - :ivar provisioning_state: Gets the provisioning state. - :vartype provisioning_state: str + :ivar provisioning_state: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Provisioning", "Updating", "Deleting", "Accepted", and "Created". + :vartype provisioning_state: str or ~azure.mgmt.scvmm.models.ProvisioningState """ _validation = { @@ -2534,87 +3027,395 @@ class VirtualNetworkInventoryItem(InventoryItemProperties): "provisioning_state": {"key": "provisioningState", "type": "str"}, } - def __init__(self, **kwargs): + def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) self.inventory_type: str = "VirtualNetwork" class VirtualNetworkListResult(_serialization.Model): - """List of VirtualNetworks. + """The response of a VirtualNetwork list operation. - :ivar value: List of VirtualNetworks. + 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 server. + + :ivar value: The VirtualNetwork items on this page. Required. :vartype value: list[~azure.mgmt.scvmm.models.VirtualNetwork] - :ivar next_link: Url to follow for getting next page of resources. + :ivar next_link: The link to the next page of items. :vartype next_link: str """ + _validation = { + "value": {"required": True}, + "next_link": {"readonly": True}, + } + _attribute_map = { "value": {"key": "value", "type": "[VirtualNetwork]"}, "next_link": {"key": "nextLink", "type": "str"}, } - def __init__( - self, *, value: Optional[List["_models.VirtualNetwork"]] = None, next_link: Optional[str] = None, **kwargs - ): + def __init__(self, *, value: List["_models.VirtualNetwork"], **kwargs: Any) -> None: """ - :keyword value: List of VirtualNetworks. + :keyword value: The VirtualNetwork items on this page. Required. :paramtype value: list[~azure.mgmt.scvmm.models.VirtualNetwork] - :keyword next_link: Url to follow for getting next page of resources. - :paramtype next_link: str """ super().__init__(**kwargs) self.value = value - self.next_link = next_link + self.next_link = None -class VMMServer(_serialization.Model): # pylint: disable=too-many-instance-attributes - """The VmmServers resource definition. +class VirtualNetworkProperties(_serialization.Model): + """Defines the resource properties. 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 inventory_item_id: Gets or sets the inventory Item ID for the resource. + :vartype inventory_item_id: str + :ivar uuid: Unique ID of the virtual network. + :vartype uuid: str + :ivar vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. + :vartype vmm_server_id: str + :ivar network_name: Name of the virtual network in vmmServer. + :vartype network_name: str + :ivar provisioning_state: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Provisioning", "Updating", "Deleting", "Accepted", and "Created". + :vartype provisioning_state: str or ~azure.mgmt.scvmm.models.ProvisioningState + """ + + _validation = { + "uuid": {"pattern": r"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"}, + "network_name": {"readonly": True}, + "provisioning_state": {"readonly": True}, + } + + _attribute_map = { + "inventory_item_id": {"key": "inventoryItemId", "type": "str"}, + "uuid": {"key": "uuid", "type": "str"}, + "vmm_server_id": {"key": "vmmServerId", "type": "str"}, + "network_name": {"key": "networkName", "type": "str"}, + "provisioning_state": {"key": "provisioningState", "type": "str"}, + } + + def __init__( + self, + *, + inventory_item_id: Optional[str] = None, + uuid: Optional[str] = None, + vmm_server_id: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword inventory_item_id: Gets or sets the inventory Item ID for the resource. + :paramtype inventory_item_id: str + :keyword uuid: Unique ID of the virtual network. + :paramtype uuid: str + :keyword vmm_server_id: ARM Id of the vmmServer resource in which this resource resides. + :paramtype vmm_server_id: str + """ + super().__init__(**kwargs) + self.inventory_item_id = inventory_item_id + self.uuid = uuid + self.vmm_server_id = vmm_server_id + self.network_name = None + self.provisioning_state = None + + +class VirtualNetworkTagsUpdate(_serialization.Model): + """The type used for updating tags in VirtualNetwork resources. - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource Name. - :vartype name: str - :ivar type: Resource Type. - :vartype type: str - :ivar location: Gets or sets the location. Required. - :vartype location: str :ivar tags: Resource tags. :vartype tags: dict[str, str] - :ivar system_data: The system data. + """ + + _attribute_map = { + "tags": {"key": "tags", "type": "{str}"}, + } + + def __init__(self, *, tags: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: + """ + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + """ + super().__init__(**kwargs) + self.tags = tags + + +class VmInstanceHybridIdentityMetadata(ProxyResource): + """Defines the HybridIdentityMetadata. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. E.g. + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. :vartype system_data: ~azure.mgmt.scvmm.models.SystemData - :ivar extended_location: The extended location. Required. - :vartype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation - :ivar credentials: Credentials to connect to VMMServer. - :vartype credentials: ~azure.mgmt.scvmm.models.VMMServerPropertiesCredentials - :ivar fqdn: Fqdn is the hostname/ip of the vmmServer. Required. - :vartype fqdn: str - :ivar port: Port is the port on which the vmmServer is listening. - :vartype port: int - :ivar connection_status: Gets or sets the connection status to the vmmServer. - :vartype connection_status: str - :ivar error_message: Gets or sets any error message if connection to vmmServer is having any - issue. - :vartype error_message: str - :ivar uuid: Unique ID of vmmServer. - :vartype uuid: str - :ivar version: Version is the version of the vmmSever. - :vartype version: str - :ivar provisioning_state: Gets or sets the provisioning state. - :vartype provisioning_state: str + :ivar properties: The resource-specific properties for this resource. + :vartype properties: ~azure.mgmt.scvmm.models.VmInstanceHybridIdentityMetadataProperties """ _validation = { "id": {"readonly": True}, "name": {"readonly": True}, "type": {"readonly": True}, - "location": {"required": True}, "system_data": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "properties": {"key": "properties", "type": "VmInstanceHybridIdentityMetadataProperties"}, + } + + def __init__( + self, *, properties: Optional["_models.VmInstanceHybridIdentityMetadataProperties"] = None, **kwargs: Any + ) -> None: + """ + :keyword properties: The resource-specific properties for this resource. + :paramtype properties: ~azure.mgmt.scvmm.models.VmInstanceHybridIdentityMetadataProperties + """ + super().__init__(**kwargs) + self.properties = properties + + +class VmInstanceHybridIdentityMetadataListResult(_serialization.Model): # pylint: disable=name-too-long + """The response of a VmInstanceHybridIdentityMetadata list operation. + + 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 server. + + :ivar value: The VmInstanceHybridIdentityMetadata items on this page. Required. + :vartype value: list[~azure.mgmt.scvmm.models.VmInstanceHybridIdentityMetadata] + :ivar next_link: The link to the next page of items. + :vartype next_link: str + """ + + _validation = { + "value": {"required": True}, + "next_link": {"readonly": True}, + } + + _attribute_map = { + "value": {"key": "value", "type": "[VmInstanceHybridIdentityMetadata]"}, + "next_link": {"key": "nextLink", "type": "str"}, + } + + def __init__(self, *, value: List["_models.VmInstanceHybridIdentityMetadata"], **kwargs: Any) -> None: + """ + :keyword value: The VmInstanceHybridIdentityMetadata items on this page. Required. + :paramtype value: list[~azure.mgmt.scvmm.models.VmInstanceHybridIdentityMetadata] + """ + super().__init__(**kwargs) + self.value = value + self.next_link = None + + +class VmInstanceHybridIdentityMetadataProperties(_serialization.Model): # pylint: disable=name-too-long + """Describes the properties of Hybrid Identity Metadata for a Virtual Machine. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar resource_uid: The unique identifier for the resource. + :vartype resource_uid: str + :ivar public_key: Gets or sets the Public Key. + :vartype public_key: str + :ivar provisioning_state: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Provisioning", "Updating", "Deleting", "Accepted", and "Created". + :vartype provisioning_state: str or ~azure.mgmt.scvmm.models.ProvisioningState + """ + + _validation = { + "provisioning_state": {"readonly": True}, + } + + _attribute_map = { + "resource_uid": {"key": "resourceUid", "type": "str"}, + "public_key": {"key": "publicKey", "type": "str"}, + "provisioning_state": {"key": "provisioningState", "type": "str"}, + } + + def __init__(self, *, resource_uid: Optional[str] = None, public_key: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword resource_uid: The unique identifier for the resource. + :paramtype resource_uid: str + :keyword public_key: Gets or sets the Public Key. + :paramtype public_key: str + """ + super().__init__(**kwargs) + self.resource_uid = resource_uid + self.public_key = public_key + self.provisioning_state = None + + +class VmmCredential(_serialization.Model): + """Credentials to connect to VmmServer. + + :ivar username: Username to use to connect to VmmServer. + :vartype username: str + :ivar password: Password to use to connect to VmmServer. + :vartype password: str + """ + + _attribute_map = { + "username": {"key": "username", "type": "str"}, + "password": {"key": "password", "type": "str"}, + } + + def __init__(self, *, username: Optional[str] = None, password: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword username: Username to use to connect to VmmServer. + :paramtype username: str + :keyword password: Password to use to connect to VmmServer. + :paramtype password: str + """ + super().__init__(**kwargs) + self.username = username + self.password = password + + +class VmmServer(TrackedResource): + """The VmmServers resource definition. + + 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 server. + + :ivar id: Fully qualified resource ID for the resource. E.g. + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.scvmm.models.SystemData + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str + :ivar properties: The resource-specific properties for this resource. + :vartype properties: ~azure.mgmt.scvmm.models.VmmServerProperties + :ivar extended_location: The extended location. Required. + :vartype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "location": {"required": True}, "extended_location": {"required": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + "properties": {"key": "properties", "type": "VmmServerProperties"}, + "extended_location": {"key": "extendedLocation", "type": "ExtendedLocation"}, + } + + def __init__( + self, + *, + location: str, + extended_location: "_models.ExtendedLocation", + tags: Optional[Dict[str, str]] = None, + properties: Optional["_models.VmmServerProperties"] = None, + **kwargs: Any + ) -> None: + """ + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + :keyword properties: The resource-specific properties for this resource. + :paramtype properties: ~azure.mgmt.scvmm.models.VmmServerProperties + :keyword extended_location: The extended location. Required. + :paramtype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation + """ + super().__init__(tags=tags, location=location, **kwargs) + self.properties = properties + self.extended_location = extended_location + + +class VmmServerListResult(_serialization.Model): + """The response of a VmmServer list operation. + + 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 server. + + :ivar value: The VmmServer items on this page. Required. + :vartype value: list[~azure.mgmt.scvmm.models.VmmServer] + :ivar next_link: The link to the next page of items. + :vartype next_link: str + """ + + _validation = { + "value": {"required": True}, + "next_link": {"readonly": True}, + } + + _attribute_map = { + "value": {"key": "value", "type": "[VmmServer]"}, + "next_link": {"key": "nextLink", "type": "str"}, + } + + def __init__(self, *, value: List["_models.VmmServer"], **kwargs: Any) -> None: + """ + :keyword value: The VmmServer items on this page. Required. + :paramtype value: list[~azure.mgmt.scvmm.models.VmmServer] + """ + super().__init__(**kwargs) + self.value = value + self.next_link = None + + +class VmmServerProperties(_serialization.Model): + """Defines the resource properties. + + 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 server. + + :ivar credentials: Credentials to connect to VmmServer. + :vartype credentials: ~azure.mgmt.scvmm.models.VmmCredential + :ivar fqdn: Fqdn is the hostname/ip of the vmmServer. Required. + :vartype fqdn: str + :ivar port: Port is the port on which the vmmServer is listening. + :vartype port: int + :ivar connection_status: Gets the connection status to the vmmServer. + :vartype connection_status: str + :ivar error_message: Gets any error message if connection to vmmServer is having any issue. + :vartype error_message: str + :ivar uuid: Unique ID of vmmServer. + :vartype uuid: str + :ivar version: Version is the version of the vmmSever. + :vartype version: str + :ivar provisioning_state: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Provisioning", "Updating", "Deleting", "Accepted", and "Created". + :vartype provisioning_state: str or ~azure.mgmt.scvmm.models.ProvisioningState + """ + + _validation = { "fqdn": {"required": True, "min_length": 1}, "port": {"maximum": 65535, "minimum": 1}, "connection_status": {"readonly": True}, @@ -2625,56 +3426,33 @@ class VMMServer(_serialization.Model): # pylint: disable=too-many-instance-attr } _attribute_map = { - "id": {"key": "id", "type": "str"}, - "name": {"key": "name", "type": "str"}, - "type": {"key": "type", "type": "str"}, - "location": {"key": "location", "type": "str"}, - "tags": {"key": "tags", "type": "{str}"}, - "system_data": {"key": "systemData", "type": "SystemData"}, - "extended_location": {"key": "extendedLocation", "type": "ExtendedLocation"}, - "credentials": {"key": "properties.credentials", "type": "VMMServerPropertiesCredentials"}, - "fqdn": {"key": "properties.fqdn", "type": "str"}, - "port": {"key": "properties.port", "type": "int"}, - "connection_status": {"key": "properties.connectionStatus", "type": "str"}, - "error_message": {"key": "properties.errorMessage", "type": "str"}, - "uuid": {"key": "properties.uuid", "type": "str"}, - "version": {"key": "properties.version", "type": "str"}, - "provisioning_state": {"key": "properties.provisioningState", "type": "str"}, + "credentials": {"key": "credentials", "type": "VmmCredential"}, + "fqdn": {"key": "fqdn", "type": "str"}, + "port": {"key": "port", "type": "int"}, + "connection_status": {"key": "connectionStatus", "type": "str"}, + "error_message": {"key": "errorMessage", "type": "str"}, + "uuid": {"key": "uuid", "type": "str"}, + "version": {"key": "version", "type": "str"}, + "provisioning_state": {"key": "provisioningState", "type": "str"}, } def __init__( self, *, - location: str, - extended_location: "_models.ExtendedLocation", fqdn: str, - tags: Optional[Dict[str, str]] = None, - credentials: Optional["_models.VMMServerPropertiesCredentials"] = None, + credentials: Optional["_models.VmmCredential"] = None, port: Optional[int] = None, - **kwargs - ): + **kwargs: Any + ) -> None: """ - :keyword location: Gets or sets the location. Required. - :paramtype location: str - :keyword tags: Resource tags. - :paramtype tags: dict[str, str] - :keyword extended_location: The extended location. Required. - :paramtype extended_location: ~azure.mgmt.scvmm.models.ExtendedLocation - :keyword credentials: Credentials to connect to VMMServer. - :paramtype credentials: ~azure.mgmt.scvmm.models.VMMServerPropertiesCredentials + :keyword credentials: Credentials to connect to VmmServer. + :paramtype credentials: ~azure.mgmt.scvmm.models.VmmCredential :keyword fqdn: Fqdn is the hostname/ip of the vmmServer. Required. :paramtype fqdn: str :keyword port: Port is the port on which the vmmServer is listening. :paramtype port: int """ super().__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.location = location - self.tags = tags - self.system_data = None - self.extended_location = extended_location self.credentials = credentials self.fqdn = fqdn self.port = port @@ -2685,53 +3463,21 @@ class VMMServer(_serialization.Model): # pylint: disable=too-many-instance-attr self.provisioning_state = None -class VMMServerListResult(_serialization.Model): - """List of VmmServers. +class VmmServerTagsUpdate(_serialization.Model): + """The type used for updating tags in VmmServer resources. - :ivar value: List of VmmServers. - :vartype value: list[~azure.mgmt.scvmm.models.VMMServer] - :ivar next_link: Url to follow for getting next page of resources. - :vartype next_link: str + :ivar tags: Resource tags. + :vartype tags: dict[str, str] """ _attribute_map = { - "value": {"key": "value", "type": "[VMMServer]"}, - "next_link": {"key": "nextLink", "type": "str"}, + "tags": {"key": "tags", "type": "{str}"}, } - def __init__(self, *, value: Optional[List["_models.VMMServer"]] = None, next_link: Optional[str] = None, **kwargs): + def __init__(self, *, tags: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: """ - :keyword value: List of VmmServers. - :paramtype value: list[~azure.mgmt.scvmm.models.VMMServer] - :keyword next_link: Url to follow for getting next page of resources. - :paramtype next_link: str + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] """ super().__init__(**kwargs) - self.value = value - self.next_link = next_link - - -class VMMServerPropertiesCredentials(_serialization.Model): - """Credentials to connect to VMMServer. - - :ivar username: Username to use to connect to VMMServer. - :vartype username: str - :ivar password: Credentials to use to connect to VMMServer. - :vartype password: str - """ - - _attribute_map = { - "username": {"key": "username", "type": "str"}, - "password": {"key": "password", "type": "str"}, - } - - def __init__(self, *, username: Optional[str] = None, password: Optional[str] = None, **kwargs): - """ - :keyword username: Username to use to connect to VMMServer. - :paramtype username: str - :keyword password: Credentials to use to connect to VMMServer. - :paramtype password: str - """ - super().__init__(**kwargs) - self.username = username - self.password = password + self.tags = tags diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/models/_sc_vmm_mgmt_client_enums.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/models/_sc_vmm_mgmt_client_enums.py new file mode 100644 index 00000000000..d0f52d2bb88 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/models/_sc_vmm_mgmt_client_enums.py @@ -0,0 +1,174 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from enum import Enum +from azure.core import CaseInsensitiveEnumMeta + + +class ActionType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs.""" + + INTERNAL = "Internal" + + +class AllocationMethod(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Network address allocation method.""" + + DYNAMIC = "Dynamic" + """Dynamically allocated address.""" + STATIC = "Static" + """Statically allocated address.""" + + +class CreatedByType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The type of identity that created the resource.""" + + USER = "User" + APPLICATION = "Application" + MANAGED_IDENTITY = "ManagedIdentity" + KEY = "Key" + + +class CreateDiffDisk(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Create diff disk.""" + + TRUE = "true" + """Enable create diff disk.""" + FALSE = "false" + """Disable create diff disk.""" + + +class DeleteFromHost(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """DeleteFromHost.""" + + TRUE = "true" + """Enable delete from host.""" + FALSE = "false" + """Disable delete from host.""" + + +class DynamicMemoryEnabled(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Dynamic memory enabled.""" + + TRUE = "true" + """Enable dynamic memory.""" + FALSE = "false" + """Disable dynamic memory.""" + + +class ForceDelete(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """ForceDelete.""" + + TRUE = "true" + """Enable force delete.""" + FALSE = "false" + """Disable force delete.""" + + +class InventoryType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The inventory type.""" + + CLOUD = "Cloud" + """Cloud inventory type""" + VIRTUAL_NETWORK = "VirtualNetwork" + """VirtualNetwork inventory type""" + VIRTUAL_MACHINE = "VirtualMachine" + """VirtualMachine inventory type""" + VIRTUAL_MACHINE_TEMPLATE = "VirtualMachineTemplate" + """VirtualMachineTemplate inventory type""" + + +class IsCustomizable(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Customizable.""" + + TRUE = "true" + """Enable customizable.""" + FALSE = "false" + """Disable customizable.""" + + +class IsHighlyAvailable(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Highly available.""" + + TRUE = "true" + """Enable highly available.""" + FALSE = "false" + """Disable highly available.""" + + +class LimitCpuForMigration(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Limit CPU for migration.""" + + TRUE = "true" + """Enable limit CPU for migration.""" + FALSE = "false" + """Disable limit CPU for migration.""" + + +class Origin(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit + logs UX. Default value is "user,system". + """ + + USER = "user" + SYSTEM = "system" + USER_SYSTEM = "user,system" + + +class OsType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Virtual machine operating system type.""" + + WINDOWS = "Windows" + """Windows operating system.""" + LINUX = "Linux" + """Linux operating system.""" + OTHER = "Other" + """Other operating system.""" + + +class ProvisioningAction(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Guest agent provisioning action.""" + + INSTALL = "install" + """Install guest agent.""" + UNINSTALL = "uninstall" + """Uninstall guest agent.""" + REPAIR = "repair" + """Repair guest agent.""" + + +class ProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The provisioning state of the resource.""" + + SUCCEEDED = "Succeeded" + """Resource has been created.""" + FAILED = "Failed" + """Resource creation failed.""" + CANCELED = "Canceled" + """Resource creation was canceled.""" + PROVISIONING = "Provisioning" + """The resource is provisioning.""" + UPDATING = "Updating" + """The resource is updating.""" + DELETING = "Deleting" + """The resource is being deleted.""" + ACCEPTED = "Accepted" + """The resource has been accepted.""" + CREATED = "Created" + """The resource was created.""" + + +class SkipShutdown(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Gets or sets a value indicating whether to request non-graceful VM shutdown. True value for + this flag indicates non-graceful shutdown whereas false indicates otherwise. Defaults to false. + """ + + TRUE = "true" + """Enable skip shutdown.""" + FALSE = "false" + """Disable skip shutdown.""" diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/models/_scvmm_enums.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/models/_scvmm_enums.py deleted file mode 100644 index 5546a5c0543..00000000000 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/models/_scvmm_enums.py +++ /dev/null @@ -1,73 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from enum import Enum -from azure.core import CaseInsensitiveEnumMeta - - -class AllocationMethod(str, Enum, metaclass=CaseInsensitiveEnumMeta): - """Allocation method.""" - - DYNAMIC = "Dynamic" - STATIC = "Static" - - -class CreatedByType(str, Enum, metaclass=CaseInsensitiveEnumMeta): - """The type of identity that created the resource.""" - - USER = "User" - APPLICATION = "Application" - MANAGED_IDENTITY = "ManagedIdentity" - KEY = "Key" - - -class CreateDiffDisk(str, Enum, metaclass=CaseInsensitiveEnumMeta): - """Gets or sets a value indicating diff disk.""" - - FALSE = "false" - TRUE = "true" - - -class DynamicMemoryEnabled(str, Enum, metaclass=CaseInsensitiveEnumMeta): - """Gets or sets a value indicating whether to enable dynamic memory or not.""" - - FALSE = "false" - TRUE = "true" - - -class InventoryType(str, Enum, metaclass=CaseInsensitiveEnumMeta): - """The inventory type.""" - - CLOUD = "Cloud" - VIRTUAL_NETWORK = "VirtualNetwork" - VIRTUAL_MACHINE_TEMPLATE = "VirtualMachineTemplate" - VIRTUAL_MACHINE = "VirtualMachine" - - -class IsCustomizable(str, Enum, metaclass=CaseInsensitiveEnumMeta): - """Gets or sets a value indicating whether the vm template is customizable or not.""" - - FALSE = "false" - TRUE = "true" - - -class LimitCpuForMigration(str, Enum, metaclass=CaseInsensitiveEnumMeta): - """Gets or sets a value indicating whether to enable processor compatibility mode for live - migration of VMs. - """ - - FALSE = "false" - TRUE = "true" - - -class OsType(str, Enum, metaclass=CaseInsensitiveEnumMeta): - """Defines the different types of VM guest operating systems.""" - - WINDOWS = "Windows" - LINUX = "Linux" - OTHER = "Other" diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/__init__.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/__init__.py index 69f4eb5e8c3..b8f71f095a0 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/__init__.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/__init__.py @@ -6,13 +6,15 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from ._vmm_servers_operations import VmmServersOperations +from ._virtual_machine_instances_operations import VirtualMachineInstancesOperations +from ._guest_agents_operations import GuestAgentsOperations +from ._vm_instance_hybrid_identity_metadatas_operations import VmInstanceHybridIdentityMetadatasOperations from ._operations import Operations -from ._clouds_operations import CloudsOperations -from ._virtual_networks_operations import VirtualNetworksOperations -from ._virtual_machines_operations import VirtualMachinesOperations -from ._virtual_machine_templates_operations import VirtualMachineTemplatesOperations from ._availability_sets_operations import AvailabilitySetsOperations +from ._clouds_operations import CloudsOperations +from ._virtual_machine_templates_operations import VirtualMachineTemplatesOperations +from ._virtual_networks_operations import VirtualNetworksOperations +from ._vmm_servers_operations import VmmServersOperations from ._inventory_items_operations import InventoryItemsOperations from ._patch import __all__ as _patch_all @@ -20,13 +22,15 @@ from ._patch import * # pylint: disable=unused-wildcard-import from ._patch import patch_sdk as _patch_sdk __all__ = [ - "VmmServersOperations", + "VirtualMachineInstancesOperations", + "GuestAgentsOperations", + "VmInstanceHybridIdentityMetadatasOperations", "Operations", - "CloudsOperations", - "VirtualNetworksOperations", - "VirtualMachinesOperations", - "VirtualMachineTemplatesOperations", "AvailabilitySetsOperations", + "CloudsOperations", + "VirtualMachineTemplatesOperations", + "VirtualNetworksOperations", + "VmmServersOperations", "InventoryItemsOperations", ] __all__.extend([p for p in _patch_all if p not in __all__]) diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_availability_sets_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_availability_sets_operations.py index 8e5bdbe2c5e..78032b3519e 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_availability_sets_operations.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_availability_sets_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +6,9 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from io import IOBase import sys -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Optional, Type, TypeVar, Union, cast, overload import urllib.parse from azure.core.exceptions import ( @@ -30,12 +31,12 @@ from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models from .._serialization import Serializer -from .._vendor import _convert_request, _format_url_section +from .._vendor import _convert_request -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -43,29 +44,90 @@ _SERIALIZER = Serializer() _SERIALIZER.client_side_validation = False -def build_get_request( - resource_group_name: str, availability_set_name: str, subscription_id: str, **kwargs: Any -) -> HttpRequest: +def build_list_by_subscription_request(subscription_id: str, **kwargs: Any) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/availabilitySets") + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_list_by_resource_group_request(resource_group_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets", ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "availabilitySetName": _SERIALIZER.url("availability_set_name", availability_set_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_get_request( + resource_group_name: str, availability_set_resource_name: str, subscription_id: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetResourceName}", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "availabilitySetResourceName": _SERIALIZER.url( + "availability_set_resource_name", + availability_set_resource_name, + "str", + max_length=54, + min_length=1, + pattern=r"[a-zA-Z0-9-_\.]", + ), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -77,29 +139,36 @@ def build_get_request( def build_create_or_update_request( - resource_group_name: str, availability_set_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, availability_set_resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetResourceName}", ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "availabilitySetName": _SERIALIZER.url("availability_set_name", availability_set_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "availabilitySetResourceName": _SERIALIZER.url( + "availability_set_resource_name", + availability_set_resource_name, + "str", + max_length=54, + min_length=1, + pattern=r"[a-zA-Z0-9-_\.]", + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -112,70 +181,37 @@ def build_create_or_update_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_delete_request( - resource_group_name: str, - availability_set_name: str, - subscription_id: str, - *, - force: Optional[bool] = None, - **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}", - ) # pylint: disable=line-too-long - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "availabilitySetName": _SERIALIZER.url("availability_set_name", availability_set_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - if force is not None: - _params["force"] = _SERIALIZER.query("force", force, "bool") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) - - def build_update_request( - resource_group_name: str, availability_set_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, availability_set_resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetResourceName}", ) # pylint: disable=line-too-long path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "availabilitySetName": _SERIALIZER.url("availability_set_name", availability_set_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "availabilitySetResourceName": _SERIALIZER.url( + "availability_set_resource_name", + availability_set_resource_name, + "str", + max_length=54, + min_length=1, + pattern=r"[a-zA-Z0-9-_\.]", + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -188,60 +224,51 @@ def build_update_request( return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs) -def build_list_by_resource_group_request(resource_group_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest: +def build_delete_request( + resource_group_name: str, + availability_set_resource_name: str, + subscription_id: str, + *, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any +) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetResourceName}", ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "availabilitySetResourceName": _SERIALIZER.url( + "availability_set_resource_name", + availability_set_resource_name, + "str", + max_length=54, + min_length=1, + pattern=r"[a-zA-Z0-9-_\.]", + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if force is not None: + _params["force"] = _SERIALIZER.query("force", force, "str") # Construct headers _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_list_by_subscription_request(subscription_id: str, **kwargs: Any) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/availabilitySets") - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) class AvailabilitySetsOperations: @@ -250,7 +277,7 @@ class AvailabilitySetsOperations: **DO NOT** instantiate this class directly. Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.SCVMM`'s + :class:`~azure.mgmt.scvmm.ScVmmMgmtClient`'s :attr:`availability_sets` attribute. """ @@ -264,21 +291,185 @@ class AvailabilitySetsOperations: self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def get(self, resource_group_name: str, availability_set_name: str, **kwargs: Any) -> _models.AvailabilitySet: + def list_by_subscription(self, **kwargs: Any) -> Iterable["_models.AvailabilitySet"]: + """Implements GET AvailabilitySets in a subscription. + + List of AvailabilitySets in a subscription. + + :return: An iterator like instance of either AvailabilitySet or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.AvailabilitySet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.AvailabilitySetListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("AvailabilitySetListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + + @distributed_trace + def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> Iterable["_models.AvailabilitySet"]: + """Implements GET AvailabilitySets in a resource group. + + List of AvailabilitySets in a resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :return: An iterator like instance of either AvailabilitySet or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.AvailabilitySet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.AvailabilitySetListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_resource_group_request( + resource_group_name=resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("AvailabilitySetListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + + @distributed_trace + def get( + self, resource_group_name: str, availability_set_resource_name: str, **kwargs: Any + ) -> _models.AvailabilitySet: """Gets an AvailabilitySet. Implements AvailabilitySet GET method. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :keyword callable cls: A custom type or function that will be passed the direct response + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str :return: AvailabilitySet or the result of cls(response) :rtype: ~azure.mgmt.scvmm.models.AvailabilitySet :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -289,25 +480,23 @@ class AvailabilitySetsOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.AvailabilitySet] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( resource_group_name=resource_group_name, - availability_set_name=availability_set_name, + availability_set_resource_name=availability_set_resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -320,22 +509,18 @@ class AvailabilitySetsOperations: deserialized = self._deserialize("AvailabilitySet", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}" - } + return deserialized # type: ignore def _create_or_update_initial( self, resource_group_name: str, - availability_set_name: str, - body: Union[_models.AvailabilitySet, IO], + availability_set_resource_name: str, + resource: Union[_models.AvailabilitySet, IO[bytes]], **kwargs: Any ) -> _models.AvailabilitySet: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -346,37 +531,35 @@ class AvailabilitySetsOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.AvailabilitySet] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None _content = None - if isinstance(body, (IO, bytes)): - _content = body + if isinstance(resource, (IOBase, bytes)): + _content = resource else: - _json = self._serialize.body(body, "AvailabilitySet") + _json = self._serialize.body(resource, "AvailabilitySet") - request = build_create_or_update_request( + _request = build_create_or_update_request( resource_group_name=resource_group_name, - availability_set_name=availability_set_name, + availability_set_resource_name=availability_set_resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_or_update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -394,6 +577,7 @@ class AvailabilitySetsOperations: response_headers["Azure-AsyncOperation"] = self._deserialize( "str", response.headers.get("Azure-AsyncOperation") ) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) deserialized = self._deserialize("AvailabilitySet", pipeline_response) @@ -402,16 +586,12 @@ class AvailabilitySetsOperations: return deserialized # type: ignore - _create_or_update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}" - } - @overload def begin_create_or_update( self, resource_group_name: str, - availability_set_name: str, - body: _models.AvailabilitySet, + availability_set_resource_name: str, + resource: _models.AvailabilitySet, *, content_type: str = "application/json", **kwargs: Any @@ -420,23 +600,16 @@ class AvailabilitySetsOperations: Onboards the ScVmm availability set as an Azure resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :param body: Request payload. Required. - :type body: ~azure.mgmt.scvmm.models.AvailabilitySet + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.AvailabilitySet :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: 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 AvailabilitySet or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] @@ -447,8 +620,8 @@ class AvailabilitySetsOperations: def begin_create_or_update( self, resource_group_name: str, - availability_set_name: str, - body: IO, + availability_set_resource_name: str, + resource: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -457,23 +630,16 @@ class AvailabilitySetsOperations: Onboards the ScVmm availability set as an Azure resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :param body: Request payload. Required. - :type body: IO + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: 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 AvailabilitySet or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] @@ -484,31 +650,22 @@ class AvailabilitySetsOperations: def begin_create_or_update( self, resource_group_name: str, - availability_set_name: str, - body: Union[_models.AvailabilitySet, IO], + availability_set_resource_name: str, + resource: Union[_models.AvailabilitySet, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.AvailabilitySet]: """Implements AvailabilitySets PUT method. Onboards the ScVmm availability set as an Azure resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :param body: Request payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.AvailabilitySet or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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. + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str + :param resource: Resource create parameters. Is either a AvailabilitySet type or a IO[bytes] + type. Required. + :type resource: ~azure.mgmt.scvmm.models.AvailabilitySet or IO[bytes] :return: An instance of LROPoller that returns either AvailabilitySet or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] @@ -517,9 +674,7 @@ class AvailabilitySetsOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.AvailabilitySet] = kwargs.pop("cls", None) polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) @@ -528,8 +683,8 @@ class AvailabilitySetsOperations: if cont_token is None: raw_result = self._create_or_update_initial( resource_group_name=resource_group_name, - availability_set_name=availability_set_name, - body=body, + availability_set_resource_name=availability_set_resource_name, + resource=resource, api_version=api_version, content_type=content_type, cls=lambda x, y, z: x, @@ -542,7 +697,7 @@ class AvailabilitySetsOperations: def get_long_running_output(pipeline_response): deserialized = self._deserialize("AvailabilitySet", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -554,22 +709,227 @@ class AvailabilitySetsOperations: else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.AvailabilitySet].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore + return LROPoller[_models.AvailabilitySet]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - begin_create_or_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}" - } + def _update_initial( + self, + resource_group_name: str, + availability_set_resource_name: str, + properties: Union[_models.AvailabilitySetTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> Optional[_models.AvailabilitySet]: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Optional[_models.AvailabilitySet]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(properties, (IOBase, bytes)): + _content = properties + else: + _json = self._serialize.body(properties, "AvailabilitySetTagsUpdate") + + _request = build_update_request( + resource_group_name=resource_group_name, + availability_set_resource_name=availability_set_resource_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = None + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("AvailabilitySet", pipeline_response) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_update( + self, + resource_group_name: str, + availability_set_resource_name: str, + properties: _models.AvailabilitySetTagsUpdate, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.AvailabilitySet]: + """Implements the AvailabilitySets PATCH method. + + Updates the AvailabilitySets resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str + :param properties: The resource properties to be updated. Required. + :type properties: ~azure.mgmt.scvmm.models.AvailabilitySetTagsUpdate + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either AvailabilitySet or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_update( + self, + resource_group_name: str, + availability_set_resource_name: str, + properties: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.AvailabilitySet]: + """Implements the AvailabilitySets PATCH method. + + Updates the AvailabilitySets resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str + :param properties: The resource properties to be updated. Required. + :type properties: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either AvailabilitySet or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def begin_update( + self, + resource_group_name: str, + availability_set_resource_name: str, + properties: Union[_models.AvailabilitySetTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.AvailabilitySet]: + """Implements the AvailabilitySets PATCH method. + + Updates the AvailabilitySets resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str + :param properties: The resource properties to be updated. Is either a AvailabilitySetTagsUpdate + type or a IO[bytes] type. Required. + :type properties: ~azure.mgmt.scvmm.models.AvailabilitySetTagsUpdate or IO[bytes] + :return: An instance of LROPoller that returns either AvailabilitySet or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.AvailabilitySet] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._update_initial( + resource_group_name=resource_group_name, + availability_set_resource_name=availability_set_resource_name, + properties=properties, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("AvailabilitySet", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.AvailabilitySet].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.AvailabilitySet]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _delete_initial( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, availability_set_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + availability_set_resource_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> None: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -580,31 +940,29 @@ class AvailabilitySetsOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( resource_group_name=resource_group_name, - availability_set_name=availability_set_name, + availability_set_resource_name=availability_set_resource_name, subscription_id=self._config.subscription_id, force=force, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response - if response.status_code not in [200, 202, 204]: + if response.status_code not in [202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) @@ -614,37 +972,32 @@ class AvailabilitySetsOperations: response_headers["Azure-AsyncOperation"] = self._deserialize( "str", response.headers.get("Azure-AsyncOperation") ) + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) if cls: - return cls(pipeline_response, None, response_headers) - - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}" - } + return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace def begin_delete( - self, resource_group_name: str, availability_set_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + availability_set_resource_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> LROPoller[None]: """Implements AvailabilitySet DELETE method. Deregisters the ScVmm availability set from Azure. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :param force: Forces the resource to be deleted from azure. The corresponding CR would be - attempted to be deleted too. Default value is None. - :type force: bool - :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. + :param availability_set_resource_name: Name of the AvailabilitySet. Required. + :type availability_set_resource_name: str + :param force: Forces the resource to be deleted. Known values are: "true" and "false". Default + value is None. + :type force: str or ~azure.mgmt.scvmm.models.ForceDelete :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: @@ -652,9 +1005,7 @@ class AvailabilitySetsOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) @@ -662,7 +1013,7 @@ class AvailabilitySetsOperations: if cont_token is None: raw_result = self._delete_initial( # type: ignore resource_group_name=resource_group_name, - availability_set_name=availability_set_name, + availability_set_resource_name=availability_set_resource_name, force=force, api_version=api_version, cls=lambda x, y, z: x, @@ -674,432 +1025,21 @@ class AvailabilitySetsOperations: def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) - elif polling is False: - polling_method = cast(PollingMethod, 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, - ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}" - } - - def _update_initial( - self, - resource_group_name: str, - availability_set_name: str, - body: Union[_models.ResourcePatch, IO], - **kwargs: Any - ) -> Optional[_models.AvailabilitySet]: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.AvailabilitySet]] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - _json = self._serialize.body(body, "ResourcePatch") - - request = build_update_request( - resource_group_name=resource_group_name, - availability_set_name=availability_set_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._update_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 201, 202]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("AvailabilitySet", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("AvailabilitySet", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}" - } - - @overload - def begin_update( - self, - resource_group_name: str, - availability_set_name: str, - body: _models.ResourcePatch, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[_models.AvailabilitySet]: - """Implements the AvailabilitySets PATCH method. - - Updates the AvailabilitySets resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :param body: AvailabilitySets patch payload. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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 AvailabilitySet or the result of - cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - def begin_update( - self, - resource_group_name: str, - availability_set_name: str, - body: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[_models.AvailabilitySet]: - """Implements the AvailabilitySets PATCH method. - - Updates the AvailabilitySets resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :param body: AvailabilitySets patch payload. Required. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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 AvailabilitySet or the result of - cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace - def begin_update( - self, - resource_group_name: str, - availability_set_name: str, - body: Union[_models.ResourcePatch, IO], - **kwargs: Any - ) -> LROPoller[_models.AvailabilitySet]: - """Implements the AvailabilitySets PATCH method. - - Updates the AvailabilitySets resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param availability_set_name: Name of the AvailabilitySet. Required. - :type availability_set_name: str - :param body: AvailabilitySets patch payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 AvailabilitySet or the result of - cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.AvailabilitySet] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.AvailabilitySet] = kwargs.pop("cls", None) - polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = self._update_initial( - resource_group_name=resource_group_name, - availability_set_name=availability_set_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize("AvailabilitySet", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast( - PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) ) elif polling is False: polling_method = cast(PollingMethod, NoPolling()) else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[None].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets/{availabilitySetName}" - } - - @distributed_trace - def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> Iterable["_models.AvailabilitySet"]: - """Implements GET AvailabilitySets in a resource group. - - List of AvailabilitySets in a resource group. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either AvailabilitySet or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.AvailabilitySet] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.AvailabilitySetListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_resource_group_request( - resource_group_name=resource_group_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_resource_group.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("AvailabilitySetListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) - - list_by_resource_group.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/availabilitySets" - } - - @distributed_trace - def list_by_subscription(self, **kwargs: Any) -> Iterable["_models.AvailabilitySet"]: - """Implements GET AvailabilitySets in a subscription. - - List of AvailabilitySets in a subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either AvailabilitySet or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.AvailabilitySet] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.AvailabilitySetListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_subscription_request( - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_subscription.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("AvailabilitySetListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) - - list_by_subscription.metadata = { - "url": "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/availabilitySets" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_clouds_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_clouds_operations.py index a8bfcc164ab..8009c732148 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_clouds_operations.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_clouds_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +6,9 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from io import IOBase import sys -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Optional, Type, TypeVar, Union, cast, overload import urllib.parse from azure.core.exceptions import ( @@ -30,12 +31,12 @@ from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models from .._serialization import Serializer -from .._vendor import _convert_request, _format_url_section +from .._vendor import _convert_request -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -43,27 +44,85 @@ _SERIALIZER = Serializer() _SERIALIZER.client_side_validation = False -def build_get_request(resource_group_name: str, cloud_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest: +def build_list_by_subscription_request(subscription_id: str, **kwargs: Any) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/clouds") + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_list_by_resource_group_request(resource_group_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds", ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "cloudName": _SERIALIZER.url("cloud_name", cloud_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_get_request( + resource_group_name: str, cloud_resource_name: str, subscription_id: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudResourceName}", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "cloudResourceName": _SERIALIZER.url( + "cloud_resource_name", cloud_resource_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -75,29 +134,31 @@ def build_get_request(resource_group_name: str, cloud_name: str, subscription_id def build_create_or_update_request( - resource_group_name: str, cloud_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, cloud_resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudResourceName}", ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "cloudName": _SERIALIZER.url("cloud_name", cloud_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "cloudResourceName": _SERIALIZER.url( + "cloud_resource_name", cloud_resource_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -110,63 +171,32 @@ def build_create_or_update_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_delete_request( - resource_group_name: str, cloud_name: str, subscription_id: str, *, force: Optional[bool] = None, **kwargs: Any +def build_update_request( + resource_group_name: str, cloud_resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}", - ) # pylint: disable=line-too-long - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "cloudName": _SERIALIZER.url("cloud_name", cloud_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - if force is not None: - _params["force"] = _SERIALIZER.query("force", force, "bool") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_update_request(resource_group_name: str, cloud_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudResourceName}", ) # pylint: disable=line-too-long path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "cloudName": _SERIALIZER.url("cloud_name", cloud_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "cloudResourceName": _SERIALIZER.url( + "cloud_resource_name", cloud_resource_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -179,60 +209,46 @@ def build_update_request(resource_group_name: str, cloud_name: str, subscription return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs) -def build_list_by_resource_group_request(resource_group_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest: +def build_delete_request( + resource_group_name: str, + cloud_resource_name: str, + subscription_id: str, + *, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any +) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudResourceName}", ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "cloudResourceName": _SERIALIZER.url( + "cloud_resource_name", cloud_resource_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if force is not None: + _params["force"] = _SERIALIZER.query("force", force, "str") # Construct headers _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_list_by_subscription_request(subscription_id: str, **kwargs: Any) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/clouds") - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) class CloudsOperations: @@ -241,7 +257,7 @@ class CloudsOperations: **DO NOT** instantiate this class directly. Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.SCVMM`'s + :class:`~azure.mgmt.scvmm.ScVmmMgmtClient`'s :attr:`clouds` attribute. """ @@ -255,21 +271,183 @@ class CloudsOperations: self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def get(self, resource_group_name: str, cloud_name: str, **kwargs: Any) -> _models.Cloud: + def list_by_subscription(self, **kwargs: Any) -> Iterable["_models.Cloud"]: + """Implements GET Clouds in a subscription. + + List of Clouds in a subscription. + + :return: An iterator like instance of either Cloud or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.Cloud] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.CloudListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("CloudListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + + @distributed_trace + def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> Iterable["_models.Cloud"]: + """Implements GET Clouds in a resource group. + + List of Clouds in a resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :return: An iterator like instance of either Cloud or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.Cloud] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.CloudListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_resource_group_request( + resource_group_name=resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("CloudListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + + @distributed_trace + def get(self, resource_group_name: str, cloud_resource_name: str, **kwargs: Any) -> _models.Cloud: """Gets a Cloud. Implements Cloud GET method. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :keyword callable cls: A custom type or function that will be passed the direct response + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str :return: Cloud or the result of cls(response) :rtype: ~azure.mgmt.scvmm.models.Cloud :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -280,25 +458,23 @@ class CloudsOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.Cloud] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( resource_group_name=resource_group_name, - cloud_name=cloud_name, + cloud_resource_name=cloud_resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -311,18 +487,18 @@ class CloudsOperations: deserialized = self._deserialize("Cloud", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}" - } + return deserialized # type: ignore def _create_or_update_initial( - self, resource_group_name: str, cloud_name: str, body: Union[_models.Cloud, IO], **kwargs: Any + self, + resource_group_name: str, + cloud_resource_name: str, + resource: Union[_models.Cloud, IO[bytes]], + **kwargs: Any ) -> _models.Cloud: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -333,37 +509,35 @@ class CloudsOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.Cloud] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None _content = None - if isinstance(body, (IO, bytes)): - _content = body + if isinstance(resource, (IOBase, bytes)): + _content = resource else: - _json = self._serialize.body(body, "Cloud") + _json = self._serialize.body(resource, "Cloud") - request = build_create_or_update_request( + _request = build_create_or_update_request( resource_group_name=resource_group_name, - cloud_name=cloud_name, + cloud_resource_name=cloud_resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_or_update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -373,27 +547,26 @@ class CloudsOperations: error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + response_headers = {} if response.status_code == 200: deserialized = self._deserialize("Cloud", pipeline_response) if response.status_code == 201: + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + deserialized = self._deserialize("Cloud", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore - _create_or_update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}" - } - @overload def begin_create_or_update( self, resource_group_name: str, - cloud_name: str, - body: _models.Cloud, + cloud_resource_name: str, + resource: _models.Cloud, *, content_type: str = "application/json", **kwargs: Any @@ -402,23 +575,16 @@ class CloudsOperations: Onboards the ScVmm fabric cloud as an Azure cloud resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :param body: Request payload. Required. - :type body: ~azure.mgmt.scvmm.models.Cloud + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.Cloud :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: 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 Cloud or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.Cloud] :raises ~azure.core.exceptions.HttpResponseError: @@ -428,8 +594,8 @@ class CloudsOperations: def begin_create_or_update( self, resource_group_name: str, - cloud_name: str, - body: IO, + cloud_resource_name: str, + resource: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -438,23 +604,16 @@ class CloudsOperations: Onboards the ScVmm fabric cloud as an Azure cloud resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :param body: Request payload. Required. - :type body: IO + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: 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 Cloud or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.Cloud] :raises ~azure.core.exceptions.HttpResponseError: @@ -462,29 +621,24 @@ class CloudsOperations: @distributed_trace def begin_create_or_update( - self, resource_group_name: str, cloud_name: str, body: Union[_models.Cloud, IO], **kwargs: Any + self, + resource_group_name: str, + cloud_resource_name: str, + resource: Union[_models.Cloud, IO[bytes]], + **kwargs: Any ) -> LROPoller[_models.Cloud]: """Implements Clouds PUT method. Onboards the ScVmm fabric cloud as an Azure cloud resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :param body: Request payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.Cloud or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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. + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str + :param resource: Resource create parameters. Is either a Cloud type or a IO[bytes] type. + Required. + :type resource: ~azure.mgmt.scvmm.models.Cloud or IO[bytes] :return: An instance of LROPoller that returns either Cloud or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.Cloud] :raises ~azure.core.exceptions.HttpResponseError: @@ -492,9 +646,7 @@ class CloudsOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.Cloud] = kwargs.pop("cls", None) polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) @@ -503,8 +655,8 @@ class CloudsOperations: if cont_token is None: raw_result = self._create_or_update_initial( resource_group_name=resource_group_name, - cloud_name=cloud_name, - body=body, + cloud_resource_name=cloud_resource_name, + resource=resource, api_version=api_version, content_type=content_type, cls=lambda x, y, z: x, @@ -517,7 +669,7 @@ class CloudsOperations: def get_long_running_output(pipeline_response): deserialized = self._deserialize("Cloud", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -529,22 +681,224 @@ class CloudsOperations: else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.Cloud].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore + return LROPoller[_models.Cloud]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - begin_create_or_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}" - } + def _update_initial( + self, + resource_group_name: str, + cloud_resource_name: str, + properties: Union[_models.CloudTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> Optional[_models.Cloud]: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Optional[_models.Cloud]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(properties, (IOBase, bytes)): + _content = properties + else: + _json = self._serialize.body(properties, "CloudTagsUpdate") + + _request = build_update_request( + resource_group_name=resource_group_name, + cloud_resource_name=cloud_resource_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = None + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("Cloud", pipeline_response) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_update( + self, + resource_group_name: str, + cloud_resource_name: str, + properties: _models.CloudTagsUpdate, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.Cloud]: + """Implements the Clouds PATCH method. + + Updates the Clouds resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str + :param properties: The resource properties to be updated. Required. + :type properties: ~azure.mgmt.scvmm.models.CloudTagsUpdate + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either Cloud or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.Cloud] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_update( + self, + resource_group_name: str, + cloud_resource_name: str, + properties: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.Cloud]: + """Implements the Clouds PATCH method. + + Updates the Clouds resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str + :param properties: The resource properties to be updated. Required. + :type properties: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either Cloud or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.Cloud] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def begin_update( + self, + resource_group_name: str, + cloud_resource_name: str, + properties: Union[_models.CloudTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.Cloud]: + """Implements the Clouds PATCH method. + + Updates the Clouds resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str + :param properties: The resource properties to be updated. Is either a CloudTagsUpdate type or a + IO[bytes] type. Required. + :type properties: ~azure.mgmt.scvmm.models.CloudTagsUpdate or IO[bytes] + :return: An instance of LROPoller that returns either Cloud or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.Cloud] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.Cloud] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._update_initial( + resource_group_name=resource_group_name, + cloud_resource_name=cloud_resource_name, + properties=properties, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("Cloud", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.Cloud].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.Cloud]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _delete_initial( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, cloud_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + cloud_resource_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> None: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -555,65 +909,61 @@ class CloudsOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( resource_group_name=resource_group_name, - cloud_name=cloud_name, + cloud_resource_name=cloud_resource_name, subscription_id=self._config.subscription_id, force=force, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response - if response.status_code not in [200, 202, 204]: + if response.status_code not in [202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - if cls: - return cls(pipeline_response, None, {}) + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}" - } + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace def begin_delete( - self, resource_group_name: str, cloud_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + cloud_resource_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> LROPoller[None]: """Implements Cloud resource DELETE method. Deregisters the ScVmm fabric cloud from Azure. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :param force: Forces the resource to be deleted from azure. The corresponding CR would be - attempted to be deleted too. Default value is None. - :type force: bool - :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. + :param cloud_resource_name: Name of the Cloud. Required. + :type cloud_resource_name: str + :param force: Forces the resource to be deleted. Known values are: "true" and "false". Default + value is None. + :type force: str or ~azure.mgmt.scvmm.models.ForceDelete :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: @@ -621,9 +971,7 @@ class CloudsOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) @@ -631,7 +979,7 @@ class CloudsOperations: if cont_token is None: raw_result = self._delete_initial( # type: ignore resource_group_name=resource_group_name, - cloud_name=cloud_name, + cloud_resource_name=cloud_resource_name, force=force, api_version=api_version, cls=lambda x, y, z: x, @@ -643,7 +991,7 @@ class CloudsOperations: def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast( @@ -654,410 +1002,10 @@ class CloudsOperations: else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[None].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}" - } - - def _update_initial( - self, resource_group_name: str, cloud_name: str, body: Union[_models.ResourcePatch, IO], **kwargs: Any - ) -> Optional[_models.Cloud]: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Cloud]] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - _json = self._serialize.body(body, "ResourcePatch") - - request = build_update_request( - resource_group_name=resource_group_name, - cloud_name=cloud_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._update_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 201, 202]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Cloud", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("Cloud", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}" - } - - @overload - def begin_update( - self, - resource_group_name: str, - cloud_name: str, - body: _models.ResourcePatch, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[_models.Cloud]: - """Implements the Clouds PATCH method. - - Updates the Clouds resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :param body: Clouds patch payload. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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 Cloud or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.Cloud] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - def begin_update( - self, - resource_group_name: str, - cloud_name: str, - body: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[_models.Cloud]: - """Implements the Clouds PATCH method. - - Updates the Clouds resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :param body: Clouds patch payload. Required. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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 Cloud or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.Cloud] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace - def begin_update( - self, resource_group_name: str, cloud_name: str, body: Union[_models.ResourcePatch, IO], **kwargs: Any - ) -> LROPoller[_models.Cloud]: - """Implements the Clouds PATCH method. - - Updates the Clouds resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param cloud_name: Name of the Cloud. Required. - :type cloud_name: str - :param body: Clouds patch payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 Cloud or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.Cloud] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.Cloud] = kwargs.pop("cls", None) - polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = self._update_initial( - resource_group_name=resource_group_name, - cloud_name=cloud_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Cloud", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - if polling is True: - polling_method: PollingMethod = cast( - PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) - ) - elif polling is False: - polling_method = cast(PollingMethod, 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, - ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds/{cloudName}" - } - - @distributed_trace - def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> Iterable["_models.Cloud"]: - """Implements GET Clouds in a resource group. - - List of Clouds in a resource group. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either Cloud or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.Cloud] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.CloudListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_resource_group_request( - resource_group_name=resource_group_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_resource_group.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("CloudListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) - - list_by_resource_group.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/clouds" - } - - @distributed_trace - def list_by_subscription(self, **kwargs: Any) -> Iterable["_models.Cloud"]: - """Implements GET Clouds in a subscription. - - List of Clouds in a subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either Cloud or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.Cloud] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.CloudListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_subscription_request( - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_subscription.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("CloudListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) - - list_by_subscription.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/clouds"} + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_guest_agents_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_guest_agents_operations.py new file mode 100644 index 00000000000..4b14b6d0862 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_guest_agents_operations.py @@ -0,0 +1,532 @@ +# pylint: disable=too-many-lines,too-many-statements +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from io import IOBase +import sys +from typing import Any, Callable, Dict, IO, Iterable, Optional, Type, TypeVar, Union, cast, overload +import urllib.parse + +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpResponse +from azure.core.polling import LROPoller, NoPolling, PollingMethod +from azure.core.rest import HttpRequest +from azure.core.tracing.decorator import distributed_trace +from azure.core.utils import case_insensitive_dict +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.arm_polling import ARMPolling + +from .. import models as _models +from .._serialization import Serializer +from .._vendor import _convert_request + +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping +else: + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +_SERIALIZER = Serializer() +_SERIALIZER.client_side_validation = False + + +def build_list_by_virtual_machine_instance_request( # pylint: disable=name-too-long + resource_uri: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default/guestAgents" + ) + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_get_request(resource_uri: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default/guestAgents/default" + ) # pylint: disable=line-too-long + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_create_request(resource_uri: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default/guestAgents/default" + ) # pylint: disable=line-too-long + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_delete_request(resource_uri: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default/guestAgents/default" + ) # pylint: disable=line-too-long + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) + + +class GuestAgentsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.scvmm.ScVmmMgmtClient`'s + :attr:`guest_agents` attribute. + """ + + models = _models + + def __init__(self, *args, **kwargs): + input_args = list(args) + self._client = input_args.pop(0) if input_args else kwargs.pop("client") + self._config = input_args.pop(0) if input_args else kwargs.pop("config") + self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @distributed_trace + def list_by_virtual_machine_instance(self, resource_uri: str, **kwargs: Any) -> Iterable["_models.GuestAgent"]: + """Implements GET GuestAgent in a vm. + + Returns the list of GuestAgent of the given vm. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :return: An iterator like instance of either GuestAgent or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.GuestAgent] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.GuestAgentListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_virtual_machine_instance_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("GuestAgentListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + + @distributed_trace + def get(self, resource_uri: str, **kwargs: Any) -> _models.GuestAgent: + """Gets GuestAgent. + + Implements GuestAgent GET method. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :return: GuestAgent or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.GuestAgent + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.GuestAgent] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("GuestAgent", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + def _create_initial( + self, resource_uri: str, resource: Union[_models.GuestAgent, IO[bytes]], **kwargs: Any + ) -> _models.GuestAgent: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.GuestAgent] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(resource, (IOBase, bytes)): + _content = resource + else: + _json = self._serialize.body(resource, "GuestAgent") + + _request = build_create_request( + resource_uri=resource_uri, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("GuestAgent", pipeline_response) + + if response.status_code == 201: + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + deserialized = self._deserialize("GuestAgent", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_create( + self, resource_uri: str, resource: _models.GuestAgent, *, content_type: str = "application/json", **kwargs: Any + ) -> LROPoller[_models.GuestAgent]: + """Implements GuestAgent PUT method. + + Create Or Update GuestAgent. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.GuestAgent + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either GuestAgent or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.GuestAgent] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_create( + self, resource_uri: str, resource: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> LROPoller[_models.GuestAgent]: + """Implements GuestAgent PUT method. + + Create Or Update GuestAgent. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either GuestAgent or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.GuestAgent] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def begin_create( + self, resource_uri: str, resource: Union[_models.GuestAgent, IO[bytes]], **kwargs: Any + ) -> LROPoller[_models.GuestAgent]: + """Implements GuestAgent PUT method. + + Create Or Update GuestAgent. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param resource: Resource create parameters. Is either a GuestAgent type or a IO[bytes] type. + Required. + :type resource: ~azure.mgmt.scvmm.models.GuestAgent or IO[bytes] + :return: An instance of LROPoller that returns either GuestAgent or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.GuestAgent] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.GuestAgent] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._create_initial( + resource_uri=resource_uri, + resource=resource, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("GuestAgent", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.GuestAgent].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.GuestAgent]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + @distributed_trace + def delete(self, resource_uri: str, **kwargs: Any) -> None: # pylint: disable=inconsistent-return-statements + """Deletes a GuestAgent resource. + + Implements GuestAgent DELETE method. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :return: None or the result of cls(response) + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + + _request = build_delete_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_inventory_items_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_inventory_items_operations.py index 2a513f9a784..158fdd3b4ff 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_inventory_items_operations.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_inventory_items_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +6,9 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from io import IOBase import sys -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, overload +from typing import Any, Callable, Dict, IO, Iterable, Optional, Type, TypeVar, Union, overload import urllib.parse from azure.core.exceptions import ( @@ -28,12 +29,12 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models from .._serialization import Serializer -from .._vendor import _convert_request, _format_url_section +from .._vendor import _convert_request -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -41,31 +42,122 @@ _SERIALIZER = Serializer() _SERIALIZER.client_side_validation = False -def build_create_request( - resource_group_name: str, vmm_server_name: str, inventory_item_name: str, subscription_id: str, **kwargs: Any +def build_list_by_vmm_server_request( + resource_group_name: str, vmm_server_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "vmmServerName": _SERIALIZER.url( + "vmm_server_name", vmm_server_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_get_request( + resource_group_name: str, + vmm_server_name: str, + inventory_item_resource_name: str, + subscription_id: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems/{inventoryItemResourceName}", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "vmmServerName": _SERIALIZER.url( + "vmm_server_name", vmm_server_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), + "inventoryItemResourceName": _SERIALIZER.url( + "inventory_item_resource_name", + inventory_item_resource_name, + "str", + pattern=r"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + ), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_create_request( + resource_group_name: str, + vmm_server_name: str, + inventory_item_resource_name: str, + subscription_id: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems/{inventoryItemName}", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems/{inventoryItemResourceName}", ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "vmmServerName": _SERIALIZER.url("vmm_server_name", vmm_server_name, "str"), - "inventoryItemName": _SERIALIZER.url("inventory_item_name", inventory_item_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "vmmServerName": _SERIALIZER.url( + "vmm_server_name", vmm_server_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), + "inventoryItemResourceName": _SERIALIZER.url( + "inventory_item_resource_name", + inventory_item_resource_name, + "str", + pattern=r"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -78,64 +170,41 @@ def build_create_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_get_request( - resource_group_name: str, vmm_server_name: str, inventory_item_name: str, subscription_id: str, **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems/{inventoryItemName}", - ) # pylint: disable=line-too-long - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "vmmServerName": _SERIALIZER.url("vmm_server_name", vmm_server_name, "str"), - "inventoryItemName": _SERIALIZER.url("inventory_item_name", inventory_item_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) - - def build_delete_request( - resource_group_name: str, vmm_server_name: str, inventory_item_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, + vmm_server_name: str, + inventory_item_resource_name: str, + subscription_id: str, + **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems/{inventoryItemName}", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems/{inventoryItemResourceName}", ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "vmmServerName": _SERIALIZER.url("vmm_server_name", vmm_server_name, "str"), - "inventoryItemName": _SERIALIZER.url("inventory_item_name", inventory_item_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "vmmServerName": _SERIALIZER.url( + "vmm_server_name", vmm_server_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), + "inventoryItemResourceName": _SERIALIZER.url( + "inventory_item_resource_name", + inventory_item_resource_name, + "str", + pattern=r"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -146,46 +215,13 @@ def build_delete_request( return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) -def build_list_by_vmm_server_request( - resource_group_name: str, vmm_server_name: str, subscription_id: str, **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems", - ) # pylint: disable=line-too-long - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "vmmServerName": _SERIALIZER.url("vmm_server_name", vmm_server_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) - - class InventoryItemsOperations: """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.SCVMM`'s + :class:`~azure.mgmt.scvmm.ScVmmMgmtClient`'s :attr:`inventory_items` attribute. """ @@ -198,314 +234,19 @@ class InventoryItemsOperations: self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") - @overload - def create( - self, - resource_group_name: str, - vmm_server_name: str, - inventory_item_name: str, - body: Optional[_models.InventoryItem] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> _models.InventoryItem: - """Implements InventoryItem PUT method. - - Create Or Update InventoryItem. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param inventory_item_name: Name of the inventoryItem. Required. - :type inventory_item_name: str - :param body: Request payload. Default value is None. - :type body: ~azure.mgmt.scvmm.models.InventoryItem - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: InventoryItem or the result of cls(response) - :rtype: ~azure.mgmt.scvmm.models.InventoryItem - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - def create( - self, - resource_group_name: str, - vmm_server_name: str, - inventory_item_name: str, - body: Optional[IO] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> _models.InventoryItem: - """Implements InventoryItem PUT method. - - Create Or Update InventoryItem. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param inventory_item_name: Name of the inventoryItem. Required. - :type inventory_item_name: str - :param body: Request payload. Default value is None. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: InventoryItem or the result of cls(response) - :rtype: ~azure.mgmt.scvmm.models.InventoryItem - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace - def create( - self, - resource_group_name: str, - vmm_server_name: str, - inventory_item_name: str, - body: Optional[Union[_models.InventoryItem, IO]] = None, - **kwargs: Any - ) -> _models.InventoryItem: - """Implements InventoryItem PUT method. - - Create Or Update InventoryItem. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param inventory_item_name: Name of the inventoryItem. Required. - :type inventory_item_name: str - :param body: Request payload. Is either a model type or a IO type. Default value is None. - :type body: ~azure.mgmt.scvmm.models.InventoryItem or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: InventoryItem or the result of cls(response) - :rtype: ~azure.mgmt.scvmm.models.InventoryItem - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.InventoryItem] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - if body is not None: - _json = self._serialize.body(body, "InventoryItem") - else: - _json = None - - request = build_create_request( - resource_group_name=resource_group_name, - vmm_server_name=vmm_server_name, - inventory_item_name=inventory_item_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self.create.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize("InventoryItem", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems/{inventoryItemName}" - } - - @distributed_trace - def get( - self, resource_group_name: str, vmm_server_name: str, inventory_item_name: str, **kwargs: Any - ) -> _models.InventoryItem: - """Implements GET InventoryItem method. - - Shows an inventory item. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param inventory_item_name: Name of the inventoryItem. Required. - :type inventory_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: InventoryItem or the result of cls(response) - :rtype: ~azure.mgmt.scvmm.models.InventoryItem - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.InventoryItem] = kwargs.pop("cls", None) - - request = build_get_request( - resource_group_name=resource_group_name, - vmm_server_name=vmm_server_name, - inventory_item_name=inventory_item_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.get.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize("InventoryItem", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems/{inventoryItemName}" - } - - @distributed_trace - def delete( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, vmm_server_name: str, inventory_item_name: str, **kwargs: Any - ) -> None: - """Implements inventoryItem DELETE method. - - Deletes an inventoryItem. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param inventory_item_name: Name of the inventoryItem. Required. - :type inventory_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None or the result of cls(response) - :rtype: None - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[None] = kwargs.pop("cls", None) - - request = build_delete_request( - resource_group_name=resource_group_name, - vmm_server_name=vmm_server_name, - inventory_item_name=inventory_item_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.delete.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 204]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems/{inventoryItemName}" - } - @distributed_trace def list_by_vmm_server( self, resource_group_name: str, vmm_server_name: str, **kwargs: Any ) -> Iterable["_models.InventoryItem"]: """Implements GET for the list of Inventory Items in the VMMServer. - Returns the list of inventoryItems in the given VMMServer. + Returns the list of inventoryItems in the given VmmServer. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. + :param vmm_server_name: Name of the VmmServer. Required. :type vmm_server_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either InventoryItem or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.InventoryItem] :raises ~azure.core.exceptions.HttpResponseError: @@ -513,12 +254,10 @@ class InventoryItemsOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.InventoryItemsList] = kwargs.pop("cls", None) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.InventoryItemListResult] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -529,17 +268,16 @@ class InventoryItemsOperations: def prepare_request(next_link=None): if not next_link: - request = build_list_by_vmm_server_request( + _request = build_list_by_vmm_server_request( resource_group_name=resource_group_name, vmm_server_name=vmm_server_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_vmm_server.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -551,26 +289,27 @@ class InventoryItemsOperations: } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): - deserialized = self._deserialize("InventoryItemsList", pipeline_response) + deserialized = self._deserialize("InventoryItemListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -583,6 +322,278 @@ class InventoryItemsOperations: return ItemPaged(get_next, extract_data) - list_by_vmm_server.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}/inventoryItems" - } + @distributed_trace + def get( + self, resource_group_name: str, vmm_server_name: str, inventory_item_resource_name: str, **kwargs: Any + ) -> _models.InventoryItem: + """Implements GET InventoryItem method. + + Shows an inventory item. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param inventory_item_resource_name: Name of the inventoryItem. Required. + :type inventory_item_resource_name: str + :return: InventoryItem or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.InventoryItem + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.InventoryItem] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_group_name=resource_group_name, + vmm_server_name=vmm_server_name, + inventory_item_resource_name=inventory_item_resource_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("InventoryItem", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + @overload + def create( + self, + resource_group_name: str, + vmm_server_name: str, + inventory_item_resource_name: str, + resource: _models.InventoryItem, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.InventoryItem: + """Implements InventoryItem PUT method. + + Create Or Update InventoryItem. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param inventory_item_resource_name: Name of the inventoryItem. Required. + :type inventory_item_resource_name: str + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.InventoryItem + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: InventoryItem or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.InventoryItem + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def create( + self, + resource_group_name: str, + vmm_server_name: str, + inventory_item_resource_name: str, + resource: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.InventoryItem: + """Implements InventoryItem PUT method. + + Create Or Update InventoryItem. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param inventory_item_resource_name: Name of the inventoryItem. Required. + :type inventory_item_resource_name: str + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: InventoryItem or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.InventoryItem + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def create( + self, + resource_group_name: str, + vmm_server_name: str, + inventory_item_resource_name: str, + resource: Union[_models.InventoryItem, IO[bytes]], + **kwargs: Any + ) -> _models.InventoryItem: + """Implements InventoryItem PUT method. + + Create Or Update InventoryItem. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param inventory_item_resource_name: Name of the inventoryItem. Required. + :type inventory_item_resource_name: str + :param resource: Resource create parameters. Is either a InventoryItem type or a IO[bytes] + type. Required. + :type resource: ~azure.mgmt.scvmm.models.InventoryItem or IO[bytes] + :return: InventoryItem or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.InventoryItem + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.InventoryItem] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(resource, (IOBase, bytes)): + _content = resource + else: + _json = self._serialize.body(resource, "InventoryItem") + + _request = build_create_request( + resource_group_name=resource_group_name, + vmm_server_name=vmm_server_name, + inventory_item_resource_name=inventory_item_resource_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize("InventoryItem", pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize("InventoryItem", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + @distributed_trace + def delete( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, vmm_server_name: str, inventory_item_resource_name: str, **kwargs: Any + ) -> None: + """Implements inventoryItem DELETE method. + + Deletes an inventoryItem. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param inventory_item_resource_name: Name of the inventoryItem. Required. + :type inventory_item_resource_name: str + :return: None or the result of cls(response) + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + + _request = build_delete_request( + resource_group_name=resource_group_name, + vmm_server_name=vmm_server_name, + inventory_item_resource_name=inventory_item_resource_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_operations.py index 9309903e2e3..123cb5f8b41 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_operations.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,7 +7,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- import sys -from typing import Any, Callable, Dict, Iterable, Optional, TypeVar +from typing import Any, Callable, Dict, Iterable, Optional, Type, TypeVar import urllib.parse from azure.core.exceptions import ( @@ -30,10 +30,10 @@ from .. import models as _models from .._serialization import Serializer from .._vendor import _convert_request -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -45,9 +45,7 @@ def build_list_request(**kwargs: Any) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -68,7 +66,7 @@ class Operations: **DO NOT** instantiate this class directly. Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.SCVMM`'s + :class:`~azure.mgmt.scvmm.ScVmmMgmtClient`'s :attr:`operations` attribute. """ @@ -82,24 +80,20 @@ class Operations: self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def list(self, **kwargs: Any) -> Iterable["_models.ResourceProviderOperation"]: - """Returns list of all operations. + def list(self, **kwargs: Any) -> Iterable["_models.Operation"]: + """List the operations for the provider. - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either ResourceProviderOperation or the result of - cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.ResourceProviderOperation] + :return: An iterator like instance of either Operation or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.Operation] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.ResourceProviderOperationList] = kwargs.pop("cls", None) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.OperationListResult] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -110,14 +104,13 @@ class Operations: def prepare_request(next_link=None): if not next_link: - request = build_list_request( + _request = build_list_request( api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -129,26 +122,27 @@ class Operations: } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): - deserialized = self._deserialize("ResourceProviderOperationList", pipeline_response) + deserialized = self._deserialize("OperationListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -160,5 +154,3 @@ class Operations: return pipeline_response return ItemPaged(get_next, extract_data) - - list.metadata = {"url": "/providers/Microsoft.ScVmm/operations"} diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_virtual_machine_instances_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_virtual_machine_instances_operations.py new file mode 100644 index 00000000000..1ab3c410885 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_virtual_machine_instances_operations.py @@ -0,0 +1,1838 @@ +# pylint: disable=too-many-lines,too-many-statements +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from io import IOBase +import sys +from typing import Any, Callable, Dict, IO, Iterable, Optional, Type, TypeVar, Union, cast, overload +import urllib.parse + +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpResponse +from azure.core.polling import LROPoller, NoPolling, PollingMethod +from azure.core.rest import HttpRequest +from azure.core.tracing.decorator import distributed_trace +from azure.core.utils import case_insensitive_dict +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.arm_polling import ARMPolling + +from .. import models as _models +from .._serialization import Serializer +from .._vendor import _convert_request + +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping +else: + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +_SERIALIZER = Serializer() +_SERIALIZER.client_side_validation = False + + +def build_list_request(resource_uri: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances") + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_get_request(resource_uri: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default") + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_create_or_update_request(resource_uri: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default") + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_update_request(resource_uri: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default") + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_delete_request( + resource_uri: str, + *, + force: Optional[Union[str, _models.ForceDelete]] = None, + delete_from_host: Optional[Union[str, _models.DeleteFromHost]] = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default") + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if force is not None: + _params["force"] = _SERIALIZER.query("force", force, "str") + if delete_from_host is not None: + _params["deleteFromHost"] = _SERIALIZER.query("delete_from_host", delete_from_host, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_create_checkpoint_request(resource_uri: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default/createCheckpoint" + ) # pylint: disable=line-too-long + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_delete_checkpoint_request(resource_uri: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default/deleteCheckpoint" + ) # pylint: disable=line-too-long + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_restart_request(resource_uri: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default/restart" + ) + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_restore_checkpoint_request(resource_uri: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default/restoreCheckpoint" + ) # pylint: disable=line-too-long + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_start_request(resource_uri: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default/start") + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_stop_request(resource_uri: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default/stop") + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + +class VirtualMachineInstancesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.scvmm.ScVmmMgmtClient`'s + :attr:`virtual_machine_instances` attribute. + """ + + models = _models + + def __init__(self, *args, **kwargs): + input_args = list(args) + self._client = input_args.pop(0) if input_args else kwargs.pop("client") + self._config = input_args.pop(0) if input_args else kwargs.pop("config") + self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @distributed_trace + def list(self, resource_uri: str, **kwargs: Any) -> Iterable["_models.VirtualMachineInstance"]: + """Implements List virtual machine instances. + + Lists all of the virtual machine instances within the specified parent resource. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :return: An iterator like instance of either VirtualMachineInstance or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VirtualMachineInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VirtualMachineInstanceListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("VirtualMachineInstanceListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + + @distributed_trace + def get(self, resource_uri: str, **kwargs: Any) -> _models.VirtualMachineInstance: + """Gets a virtual machine. + + Retrieves information about a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :return: VirtualMachineInstance or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.VirtualMachineInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VirtualMachineInstance] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("VirtualMachineInstance", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + def _create_or_update_initial( + self, resource_uri: str, resource: Union[_models.VirtualMachineInstance, IO[bytes]], **kwargs: Any + ) -> _models.VirtualMachineInstance: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.VirtualMachineInstance] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(resource, (IOBase, bytes)): + _content = resource + else: + _json = self._serialize.body(resource, "VirtualMachineInstance") + + _request = build_create_or_update_request( + resource_uri=resource_uri, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("VirtualMachineInstance", pipeline_response) + + if response.status_code == 201: + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + deserialized = self._deserialize("VirtualMachineInstance", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_create_or_update( + self, + resource_uri: str, + resource: _models.VirtualMachineInstance, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.VirtualMachineInstance]: + """Implements virtual machine PUT method. + + The operation to create or update a virtual machine instance. Please note some properties can + be set only during virtual machine instance creation. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.VirtualMachineInstance + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either VirtualMachineInstance or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachineInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_create_or_update( + self, resource_uri: str, resource: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> LROPoller[_models.VirtualMachineInstance]: + """Implements virtual machine PUT method. + + The operation to create or update a virtual machine instance. Please note some properties can + be set only during virtual machine instance creation. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either VirtualMachineInstance or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachineInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def begin_create_or_update( + self, resource_uri: str, resource: Union[_models.VirtualMachineInstance, IO[bytes]], **kwargs: Any + ) -> LROPoller[_models.VirtualMachineInstance]: + """Implements virtual machine PUT method. + + The operation to create or update a virtual machine instance. Please note some properties can + be set only during virtual machine instance creation. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param resource: Resource create parameters. Is either a VirtualMachineInstance type or a + IO[bytes] type. Required. + :type resource: ~azure.mgmt.scvmm.models.VirtualMachineInstance or IO[bytes] + :return: An instance of LROPoller that returns either VirtualMachineInstance or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachineInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.VirtualMachineInstance] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._create_or_update_initial( + resource_uri=resource_uri, + resource=resource, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("VirtualMachineInstance", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.VirtualMachineInstance].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.VirtualMachineInstance]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + def _update_initial( + self, resource_uri: str, properties: Union[_models.VirtualMachineInstanceUpdate, IO[bytes]], **kwargs: Any + ) -> Optional[_models.VirtualMachineInstance]: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Optional[_models.VirtualMachineInstance]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(properties, (IOBase, bytes)): + _content = properties + else: + _json = self._serialize.body(properties, "VirtualMachineInstanceUpdate") + + _request = build_update_request( + resource_uri=resource_uri, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = None + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("VirtualMachineInstance", pipeline_response) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_update( + self, + resource_uri: str, + properties: _models.VirtualMachineInstanceUpdate, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.VirtualMachineInstance]: + """Updates a virtual machine. + + The operation to update a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param properties: The resource properties to be updated. Required. + :type properties: ~azure.mgmt.scvmm.models.VirtualMachineInstanceUpdate + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either VirtualMachineInstance or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachineInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_update( + self, resource_uri: str, properties: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> LROPoller[_models.VirtualMachineInstance]: + """Updates a virtual machine. + + The operation to update a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param properties: The resource properties to be updated. Required. + :type properties: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either VirtualMachineInstance or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachineInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def begin_update( + self, resource_uri: str, properties: Union[_models.VirtualMachineInstanceUpdate, IO[bytes]], **kwargs: Any + ) -> LROPoller[_models.VirtualMachineInstance]: + """Updates a virtual machine. + + The operation to update a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param properties: The resource properties to be updated. Is either a + VirtualMachineInstanceUpdate type or a IO[bytes] type. Required. + :type properties: ~azure.mgmt.scvmm.models.VirtualMachineInstanceUpdate or IO[bytes] + :return: An instance of LROPoller that returns either VirtualMachineInstance or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachineInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.VirtualMachineInstance] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._update_initial( + resource_uri=resource_uri, + properties=properties, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("VirtualMachineInstance", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.VirtualMachineInstance].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.VirtualMachineInstance]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + def _delete_initial( # pylint: disable=inconsistent-return-statements + self, + resource_uri: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + delete_from_host: Optional[Union[str, _models.DeleteFromHost]] = None, + **kwargs: Any + ) -> None: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + + _request = build_delete_request( + resource_uri=resource_uri, + force=force, + delete_from_host=delete_from_host, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore + + @distributed_trace + def begin_delete( + self, + resource_uri: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + delete_from_host: Optional[Union[str, _models.DeleteFromHost]] = None, + **kwargs: Any + ) -> LROPoller[None]: + """Deletes an virtual machine. + + The operation to delete a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param force: Forces the resource to be deleted. Known values are: "true" and "false". Default + value is None. + :type force: str or ~azure.mgmt.scvmm.models.ForceDelete + :param delete_from_host: Whether to disable the VM from azure and also delete it from Vmm. + Known values are: "true" and "false". Default value is None. + :type delete_from_host: str or ~azure.mgmt.scvmm.models.DeleteFromHost + :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: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._delete_initial( # type: ignore + resource_uri=resource_uri, + force=force, + delete_from_host=delete_from_host, + api_version=api_version, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + + def _create_checkpoint_initial( # pylint: disable=inconsistent-return-statements + self, resource_uri: str, body: Union[_models.VirtualMachineCreateCheckpoint, IO[bytes]], **kwargs: Any + ) -> None: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(body, (IOBase, bytes)): + _content = body + else: + _json = self._serialize.body(body, "VirtualMachineCreateCheckpoint") + + _request = build_create_checkpoint_request( + resource_uri=resource_uri, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore + + @overload + def begin_create_checkpoint( + self, + resource_uri: str, + body: _models.VirtualMachineCreateCheckpoint, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: + """Implements the operation to creates a checkpoint in a virtual machine instance. + + Creates a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: ~azure.mgmt.scvmm.models.VirtualMachineCreateCheckpoint + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @overload + def begin_create_checkpoint( + self, resource_uri: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> LROPoller[None]: + """Implements the operation to creates a checkpoint in a virtual machine instance. + + Creates a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @distributed_trace + def begin_create_checkpoint( + self, resource_uri: str, body: Union[_models.VirtualMachineCreateCheckpoint, IO[bytes]], **kwargs: Any + ) -> LROPoller[None]: + """Implements the operation to creates a checkpoint in a virtual machine instance. + + Creates a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Is either a VirtualMachineCreateCheckpoint type + or a IO[bytes] type. Required. + :type body: ~azure.mgmt.scvmm.models.VirtualMachineCreateCheckpoint or IO[bytes] + :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: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._create_checkpoint_initial( # type: ignore + resource_uri=resource_uri, + body=body, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + + def _delete_checkpoint_initial( # pylint: disable=inconsistent-return-statements + self, resource_uri: str, body: Union[_models.VirtualMachineDeleteCheckpoint, IO[bytes]], **kwargs: Any + ) -> None: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(body, (IOBase, bytes)): + _content = body + else: + _json = self._serialize.body(body, "VirtualMachineDeleteCheckpoint") + + _request = build_delete_checkpoint_request( + resource_uri=resource_uri, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore + + @overload + def begin_delete_checkpoint( + self, + resource_uri: str, + body: _models.VirtualMachineDeleteCheckpoint, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: + """Implements the operation to delete a checkpoint in a virtual machine instance. + + Deletes a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: ~azure.mgmt.scvmm.models.VirtualMachineDeleteCheckpoint + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @overload + def begin_delete_checkpoint( + self, resource_uri: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> LROPoller[None]: + """Implements the operation to delete a checkpoint in a virtual machine instance. + + Deletes a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @distributed_trace + def begin_delete_checkpoint( + self, resource_uri: str, body: Union[_models.VirtualMachineDeleteCheckpoint, IO[bytes]], **kwargs: Any + ) -> LROPoller[None]: + """Implements the operation to delete a checkpoint in a virtual machine instance. + + Deletes a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Is either a VirtualMachineDeleteCheckpoint type + or a IO[bytes] type. Required. + :type body: ~azure.mgmt.scvmm.models.VirtualMachineDeleteCheckpoint or IO[bytes] + :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: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._delete_checkpoint_initial( # type: ignore + resource_uri=resource_uri, + body=body, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + + def _restart_initial( # pylint: disable=inconsistent-return-statements + self, resource_uri: str, **kwargs: Any + ) -> None: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + + _request = build_restart_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore + + @distributed_trace + def begin_restart(self, resource_uri: str, **kwargs: Any) -> LROPoller[None]: + """Implements the operation to restart a virtual machine. + + The operation to restart a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :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: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._restart_initial( # type: ignore + resource_uri=resource_uri, + api_version=api_version, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + + def _restore_checkpoint_initial( # pylint: disable=inconsistent-return-statements + self, resource_uri: str, body: Union[_models.VirtualMachineRestoreCheckpoint, IO[bytes]], **kwargs: Any + ) -> None: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(body, (IOBase, bytes)): + _content = body + else: + _json = self._serialize.body(body, "VirtualMachineRestoreCheckpoint") + + _request = build_restore_checkpoint_request( + resource_uri=resource_uri, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore + + @overload + def begin_restore_checkpoint( + self, + resource_uri: str, + body: _models.VirtualMachineRestoreCheckpoint, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: + """Implements the operation to restores to a checkpoint in a virtual machine instance. + + Restores to a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: ~azure.mgmt.scvmm.models.VirtualMachineRestoreCheckpoint + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @overload + def begin_restore_checkpoint( + self, resource_uri: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> LROPoller[None]: + """Implements the operation to restores to a checkpoint in a virtual machine instance. + + Restores to a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @distributed_trace + def begin_restore_checkpoint( + self, resource_uri: str, body: Union[_models.VirtualMachineRestoreCheckpoint, IO[bytes]], **kwargs: Any + ) -> LROPoller[None]: + """Implements the operation to restores to a checkpoint in a virtual machine instance. + + Restores to a checkpoint in virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Is either a VirtualMachineRestoreCheckpoint + type or a IO[bytes] type. Required. + :type body: ~azure.mgmt.scvmm.models.VirtualMachineRestoreCheckpoint or IO[bytes] + :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: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._restore_checkpoint_initial( # type: ignore + resource_uri=resource_uri, + body=body, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + + def _start_initial( # pylint: disable=inconsistent-return-statements + self, resource_uri: str, **kwargs: Any + ) -> None: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + + _request = build_start_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore + + @distributed_trace + def begin_start(self, resource_uri: str, **kwargs: Any) -> LROPoller[None]: + """Implements the operation to start a virtual machine. + + The operation to start a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :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: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._start_initial( # type: ignore + resource_uri=resource_uri, + api_version=api_version, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + + def _stop_initial( # pylint: disable=inconsistent-return-statements + self, resource_uri: str, body: Union[_models.StopVirtualMachineOptions, IO[bytes]], **kwargs: Any + ) -> None: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(body, (IOBase, bytes)): + _content = body + else: + _json = self._serialize.body(body, "StopVirtualMachineOptions") + + _request = build_stop_request( + resource_uri=resource_uri, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore + + @overload + def begin_stop( + self, + resource_uri: str, + body: _models.StopVirtualMachineOptions, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: + """Implements the operation to stop a virtual machine. + + The operation to power off (stop) a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: ~azure.mgmt.scvmm.models.StopVirtualMachineOptions + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @overload + def begin_stop( + self, resource_uri: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> LROPoller[None]: + """Implements the operation to stop a virtual machine. + + The operation to power off (stop) a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Required. + :type body: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :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: + """ + + @distributed_trace + def begin_stop( + self, resource_uri: str, body: Union[_models.StopVirtualMachineOptions, IO[bytes]], **kwargs: Any + ) -> LROPoller[None]: + """Implements the operation to stop a virtual machine. + + The operation to power off (stop) a virtual machine instance. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :param body: The content of the action request. Is either a StopVirtualMachineOptions type or a + IO[bytes] type. Required. + :type body: ~azure.mgmt.scvmm.models.StopVirtualMachineOptions or IO[bytes] + :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: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._stop_initial( # type: ignore + resource_uri=resource_uri, + body=body, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_virtual_machine_templates_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_virtual_machine_templates_operations.py index 4514da8ea8d..94629bb9219 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_virtual_machine_templates_operations.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_virtual_machine_templates_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +6,9 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from io import IOBase import sys -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Optional, Type, TypeVar, Union, cast, overload import urllib.parse from azure.core.exceptions import ( @@ -30,12 +31,12 @@ from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models from .._serialization import Serializer -from .._vendor import _convert_request, _format_url_section +from .._vendor import _convert_request -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -43,15 +44,69 @@ _SERIALIZER = Serializer() _SERIALIZER.client_side_validation = False +def build_list_by_subscription_request(subscription_id: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/virtualMachineTemplates" + ) + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_list_by_resource_group_request(resource_group_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + def build_get_request( resource_group_name: str, virtual_machine_template_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -61,13 +116,20 @@ def build_get_request( ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "virtualMachineTemplateName": _SERIALIZER.url( - "virtual_machine_template_name", virtual_machine_template_name, "str" + "virtual_machine_template_name", + virtual_machine_template_name, + "str", + max_length=54, + min_length=1, + pattern=r"[a-zA-Z0-9-_\.]", ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -84,9 +146,7 @@ def build_create_or_update_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -97,13 +157,20 @@ def build_create_or_update_request( ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "virtualMachineTemplateName": _SERIALIZER.url( - "virtual_machine_template_name", virtual_machine_template_name, "str" + "virtual_machine_template_name", + virtual_machine_template_name, + "str", + max_length=54, + min_length=1, + pattern=r"[a-zA-Z0-9-_\.]", ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -116,57 +183,13 @@ def build_create_or_update_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_delete_request( - resource_group_name: str, - virtual_machine_template_name: str, - subscription_id: str, - *, - force: Optional[bool] = None, - **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}", - ) # pylint: disable=line-too-long - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "virtualMachineTemplateName": _SERIALIZER.url( - "virtual_machine_template_name", virtual_machine_template_name, "str" - ), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - if force is not None: - _params["force"] = _SERIALIZER.query("force", force, "bool") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) - - def build_update_request( resource_group_name: str, virtual_machine_template_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -176,14 +199,21 @@ def build_update_request( "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}", ) # pylint: disable=line-too-long path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "virtualMachineTemplateName": _SERIALIZER.url( - "virtual_machine_template_name", virtual_machine_template_name, "str" + "virtual_machine_template_name", + virtual_machine_template_name, + "str", + max_length=54, + min_length=1, + pattern=r"[a-zA-Z0-9-_\.]", ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -196,62 +226,51 @@ def build_update_request( return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs) -def build_list_by_resource_group_request(resource_group_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest: +def build_delete_request( + resource_group_name: str, + virtual_machine_template_name: str, + subscription_id: str, + *, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any +) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}", ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "virtualMachineTemplateName": _SERIALIZER.url( + "virtual_machine_template_name", + virtual_machine_template_name, + "str", + max_length=54, + min_length=1, + pattern=r"[a-zA-Z0-9-_\.]", + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if force is not None: + _params["force"] = _SERIALIZER.query("force", force, "str") # Construct headers _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_list_by_subscription_request(subscription_id: str, **kwargs: Any) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/virtualMachineTemplates" - ) - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) class VirtualMachineTemplatesOperations: @@ -260,7 +279,7 @@ class VirtualMachineTemplatesOperations: **DO NOT** instantiate this class directly. Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.SCVMM`'s + :class:`~azure.mgmt.scvmm.ScVmmMgmtClient`'s :attr:`virtual_machine_templates` attribute. """ @@ -273,6 +292,172 @@ class VirtualMachineTemplatesOperations: self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + @distributed_trace + def list_by_subscription(self, **kwargs: Any) -> Iterable["_models.VirtualMachineTemplate"]: + """Implements GET VirtualMachineTemplates in a subscription. + + List of VirtualMachineTemplates in a subscription. + + :return: An iterator like instance of either VirtualMachineTemplate or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VirtualMachineTemplate] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VirtualMachineTemplateListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("VirtualMachineTemplateListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + + @distributed_trace + def list_by_resource_group( + self, resource_group_name: str, **kwargs: Any + ) -> Iterable["_models.VirtualMachineTemplate"]: + """Implements GET VirtualMachineTemplates in a resource group. + + List of VirtualMachineTemplates in a resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :return: An iterator like instance of either VirtualMachineTemplate or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VirtualMachineTemplate] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VirtualMachineTemplateListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_resource_group_request( + resource_group_name=resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("VirtualMachineTemplateListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + @distributed_trace def get( self, resource_group_name: str, virtual_machine_template_name: str, **kwargs: Any @@ -281,16 +466,16 @@ class VirtualMachineTemplatesOperations: Implements VirtualMachineTemplate GET method. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. :type virtual_machine_template_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: VirtualMachineTemplate or the result of cls(response) :rtype: ~azure.mgmt.scvmm.models.VirtualMachineTemplate :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -301,25 +486,23 @@ class VirtualMachineTemplatesOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VirtualMachineTemplate] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( resource_group_name=resource_group_name, virtual_machine_template_name=virtual_machine_template_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -332,22 +515,18 @@ class VirtualMachineTemplatesOperations: deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}" - } + return deserialized # type: ignore def _create_or_update_initial( self, resource_group_name: str, virtual_machine_template_name: str, - body: Union[_models.VirtualMachineTemplate, IO], + resource: Union[_models.VirtualMachineTemplate, IO[bytes]], **kwargs: Any ) -> _models.VirtualMachineTemplate: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -358,21 +537,19 @@ class VirtualMachineTemplatesOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.VirtualMachineTemplate] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None _content = None - if isinstance(body, (IO, bytes)): - _content = body + if isinstance(resource, (IOBase, bytes)): + _content = resource else: - _json = self._serialize.body(body, "VirtualMachineTemplate") + _json = self._serialize.body(resource, "VirtualMachineTemplate") - request = build_create_or_update_request( + _request = build_create_or_update_request( resource_group_name=resource_group_name, virtual_machine_template_name=virtual_machine_template_name, subscription_id=self._config.subscription_id, @@ -380,15 +557,15 @@ class VirtualMachineTemplatesOperations: content_type=content_type, json=_json, content=_content, - template_url=self._create_or_update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -398,27 +575,26 @@ class VirtualMachineTemplatesOperations: error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + response_headers = {} if response.status_code == 200: deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) if response.status_code == 201: + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore - _create_or_update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}" - } - @overload def begin_create_or_update( self, resource_group_name: str, virtual_machine_template_name: str, - body: _models.VirtualMachineTemplate, + resource: _models.VirtualMachineTemplate, *, content_type: str = "application/json", **kwargs: Any @@ -427,23 +603,16 @@ class VirtualMachineTemplatesOperations: Onboards the ScVmm VM Template as an Azure VM Template resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. :type virtual_machine_template_name: str - :param body: Request payload. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineTemplate + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.VirtualMachineTemplate :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: 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 VirtualMachineTemplate or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] @@ -455,7 +624,7 @@ class VirtualMachineTemplatesOperations: self, resource_group_name: str, virtual_machine_template_name: str, - body: IO, + resource: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -464,23 +633,16 @@ class VirtualMachineTemplatesOperations: Onboards the ScVmm VM Template as an Azure VM Template resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. :type virtual_machine_template_name: str - :param body: Request payload. Required. - :type body: IO + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: 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 VirtualMachineTemplate or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] @@ -492,30 +654,21 @@ class VirtualMachineTemplatesOperations: self, resource_group_name: str, virtual_machine_template_name: str, - body: Union[_models.VirtualMachineTemplate, IO], + resource: Union[_models.VirtualMachineTemplate, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.VirtualMachineTemplate]: """Implements VirtualMachineTemplates PUT method. Onboards the ScVmm VM Template as an Azure VM Template resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. :type virtual_machine_template_name: str - :param body: Request payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineTemplate or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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. + :param resource: Resource create parameters. Is either a VirtualMachineTemplate type or a + IO[bytes] type. Required. + :type resource: ~azure.mgmt.scvmm.models.VirtualMachineTemplate or IO[bytes] :return: An instance of LROPoller that returns either VirtualMachineTemplate or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] @@ -524,9 +677,7 @@ class VirtualMachineTemplatesOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.VirtualMachineTemplate] = kwargs.pop("cls", None) polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) @@ -536,7 +687,7 @@ class VirtualMachineTemplatesOperations: raw_result = self._create_or_update_initial( resource_group_name=resource_group_name, virtual_machine_template_name=virtual_machine_template_name, - body=body, + resource=resource, api_version=api_version, content_type=content_type, cls=lambda x, y, z: x, @@ -549,7 +700,7 @@ class VirtualMachineTemplatesOperations: def get_long_running_output(pipeline_response): deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -561,22 +712,227 @@ class VirtualMachineTemplatesOperations: else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.VirtualMachineTemplate].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore + return LROPoller[_models.VirtualMachineTemplate]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - begin_create_or_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}" - } + def _update_initial( + self, + resource_group_name: str, + virtual_machine_template_name: str, + properties: Union[_models.VirtualMachineTemplateTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> Optional[_models.VirtualMachineTemplate]: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Optional[_models.VirtualMachineTemplate]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(properties, (IOBase, bytes)): + _content = properties + else: + _json = self._serialize.body(properties, "VirtualMachineTemplateTagsUpdate") + + _request = build_update_request( + resource_group_name=resource_group_name, + virtual_machine_template_name=virtual_machine_template_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = None + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_update( + self, + resource_group_name: str, + virtual_machine_template_name: str, + properties: _models.VirtualMachineTemplateTagsUpdate, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.VirtualMachineTemplate]: + """Implements the VirtualMachineTemplate PATCH method. + + Updates the VirtualMachineTemplate resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. + :type virtual_machine_template_name: str + :param properties: The resource properties to be updated. Required. + :type properties: ~azure.mgmt.scvmm.models.VirtualMachineTemplateTagsUpdate + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either VirtualMachineTemplate or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_update( + self, + resource_group_name: str, + virtual_machine_template_name: str, + properties: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.VirtualMachineTemplate]: + """Implements the VirtualMachineTemplate PATCH method. + + Updates the VirtualMachineTemplate resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. + :type virtual_machine_template_name: str + :param properties: The resource properties to be updated. Required. + :type properties: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either VirtualMachineTemplate or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def begin_update( + self, + resource_group_name: str, + virtual_machine_template_name: str, + properties: Union[_models.VirtualMachineTemplateTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.VirtualMachineTemplate]: + """Implements the VirtualMachineTemplate PATCH method. + + Updates the VirtualMachineTemplate resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. + :type virtual_machine_template_name: str + :param properties: The resource properties to be updated. Is either a + VirtualMachineTemplateTagsUpdate type or a IO[bytes] type. Required. + :type properties: ~azure.mgmt.scvmm.models.VirtualMachineTemplateTagsUpdate or IO[bytes] + :return: An instance of LROPoller that returns either VirtualMachineTemplate or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.VirtualMachineTemplate] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._update_initial( + resource_group_name=resource_group_name, + virtual_machine_template_name=virtual_machine_template_name, + properties=properties, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.VirtualMachineTemplate].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.VirtualMachineTemplate]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _delete_initial( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, virtual_machine_template_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + virtual_machine_template_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> None: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -587,65 +943,61 @@ class VirtualMachineTemplatesOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( resource_group_name=resource_group_name, virtual_machine_template_name=virtual_machine_template_name, subscription_id=self._config.subscription_id, force=force, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response - if response.status_code not in [200, 202, 204]: + if response.status_code not in [202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - if cls: - return cls(pipeline_response, None, {}) + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}" - } + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace def begin_delete( - self, resource_group_name: str, virtual_machine_template_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + virtual_machine_template_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> LROPoller[None]: """Implements VirtualMachineTemplate DELETE method. Deregisters the ScVmm VM Template from Azure. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. :type virtual_machine_template_name: str - :param force: Forces the resource to be deleted from azure. The corresponding CR would be - attempted to be deleted too. Default value is None. - :type force: bool - :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. + :param force: Forces the resource to be deleted. Known values are: "true" and "false". Default + value is None. + :type force: str or ~azure.mgmt.scvmm.models.ForceDelete :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: @@ -653,9 +1005,7 @@ class VirtualMachineTemplatesOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) @@ -675,7 +1025,7 @@ class VirtualMachineTemplatesOperations: def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast( @@ -686,428 +1036,10 @@ class VirtualMachineTemplatesOperations: else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[None].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}" - } - - def _update_initial( - self, - resource_group_name: str, - virtual_machine_template_name: str, - body: Union[_models.ResourcePatch, IO], - **kwargs: Any - ) -> Optional[_models.VirtualMachineTemplate]: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.VirtualMachineTemplate]] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - _json = self._serialize.body(body, "ResourcePatch") - - request = build_update_request( - resource_group_name=resource_group_name, - virtual_machine_template_name=virtual_machine_template_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._update_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 201, 202]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}" - } - - @overload - def begin_update( - self, - resource_group_name: str, - virtual_machine_template_name: str, - body: _models.ResourcePatch, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[_models.VirtualMachineTemplate]: - """Implements the VirtualMachineTemplate PATCH method. - - Updates the VirtualMachineTemplate resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. - :type virtual_machine_template_name: str - :param body: VirtualMachineTemplates patch details. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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 VirtualMachineTemplate or the result of - cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - def begin_update( - self, - resource_group_name: str, - virtual_machine_template_name: str, - body: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[_models.VirtualMachineTemplate]: - """Implements the VirtualMachineTemplate PATCH method. - - Updates the VirtualMachineTemplate resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. - :type virtual_machine_template_name: str - :param body: VirtualMachineTemplates patch details. Required. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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 VirtualMachineTemplate or the result of - cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace - def begin_update( - self, - resource_group_name: str, - virtual_machine_template_name: str, - body: Union[_models.ResourcePatch, IO], - **kwargs: Any - ) -> LROPoller[_models.VirtualMachineTemplate]: - """Implements the VirtualMachineTemplate PATCH method. - - Updates the VirtualMachineTemplate resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_template_name: Name of the VirtualMachineTemplate. Required. - :type virtual_machine_template_name: str - :param body: VirtualMachineTemplates patch details. Is either a model type or a IO type. - Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 VirtualMachineTemplate or the result of - cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachineTemplate] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VirtualMachineTemplate] = kwargs.pop("cls", None) - polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = self._update_initial( - resource_group_name=resource_group_name, - virtual_machine_template_name=virtual_machine_template_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VirtualMachineTemplate", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - if polling is True: - polling_method: PollingMethod = cast( - PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) - ) - elif polling is False: - polling_method = cast(PollingMethod, 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, - ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates/{virtualMachineTemplateName}" - } - - @distributed_trace - def list_by_resource_group( - self, resource_group_name: str, **kwargs: Any - ) -> Iterable["_models.VirtualMachineTemplate"]: - """Implements GET VirtualMachineTemplates in a resource group. - - List of VirtualMachineTemplates in a resource group. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VirtualMachineTemplate or the result of - cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VirtualMachineTemplate] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VirtualMachineTemplateListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_resource_group_request( - resource_group_name=resource_group_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_resource_group.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("VirtualMachineTemplateListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) - - list_by_resource_group.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachineTemplates" - } - - @distributed_trace - def list_by_subscription(self, **kwargs: Any) -> Iterable["_models.VirtualMachineTemplate"]: - """Implements GET VirtualMachineTemplates in a subscription. - - List of VirtualMachineTemplates in a subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VirtualMachineTemplate or the result of - cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VirtualMachineTemplate] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VirtualMachineTemplateListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_subscription_request( - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_subscription.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("VirtualMachineTemplateListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) - - list_by_subscription.metadata = { - "url": "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/virtualMachineTemplates" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_virtual_machines_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_virtual_machines_operations.py deleted file mode 100644 index 135c3532658..00000000000 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_virtual_machines_operations.py +++ /dev/null @@ -1,2442 +0,0 @@ -# pylint: disable=too-many-lines -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- -import sys -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload -import urllib.parse - -from azure.core.exceptions import ( - ClientAuthenticationError, - HttpResponseError, - ResourceExistsError, - ResourceNotFoundError, - ResourceNotModifiedError, - map_error, -) -from azure.core.paging import ItemPaged -from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse -from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.core.rest import HttpRequest -from azure.core.tracing.decorator import distributed_trace -from azure.core.utils import case_insensitive_dict -from azure.mgmt.core.exceptions import ARMErrorFormat -from azure.mgmt.core.polling.arm_polling import ARMPolling - -from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request, _format_url_section - -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports -else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports -T = TypeVar("T") -ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -_SERIALIZER = Serializer() -_SERIALIZER.client_side_validation = False - - -def build_get_request( - resource_group_name: str, virtual_machine_name: str, subscription_id: str, **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}", - ) # pylint: disable=line-too-long - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "virtualMachineName": _SERIALIZER.url("virtual_machine_name", virtual_machine_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_create_or_update_request( - resource_group_name: str, virtual_machine_name: str, subscription_id: str, **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}", - ) # pylint: disable=line-too-long - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "virtualMachineName": _SERIALIZER.url("virtual_machine_name", virtual_machine_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - if content_type is not None: - _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_delete_request( - resource_group_name: str, - virtual_machine_name: str, - subscription_id: str, - *, - retain: Optional[bool] = None, - force: Optional[bool] = None, - **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}", - ) # pylint: disable=line-too-long - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "virtualMachineName": _SERIALIZER.url("virtual_machine_name", virtual_machine_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - if retain is not None: - _params["retain"] = _SERIALIZER.query("retain", retain, "bool") - if force is not None: - _params["force"] = _SERIALIZER.query("force", force, "bool") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_update_request( - resource_group_name: str, virtual_machine_name: str, subscription_id: str, **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}", - ) # pylint: disable=line-too-long - path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "virtualMachineName": _SERIALIZER.url("virtual_machine_name", virtual_machine_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - if content_type is not None: - _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_stop_request( - resource_group_name: str, virtual_machine_name: str, subscription_id: str, **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/stop", - ) # pylint: disable=line-too-long - path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "virtualMachineName": _SERIALIZER.url("virtual_machine_name", virtual_machine_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - if content_type is not None: - _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_start_request( - resource_group_name: str, virtual_machine_name: str, subscription_id: str, **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/start", - ) # pylint: disable=line-too-long - path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "virtualMachineName": _SERIALIZER.url("virtual_machine_name", virtual_machine_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_restart_request( - resource_group_name: str, virtual_machine_name: str, subscription_id: str, **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/restart", - ) # pylint: disable=line-too-long - path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "virtualMachineName": _SERIALIZER.url("virtual_machine_name", virtual_machine_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_create_checkpoint_request( - resource_group_name: str, virtual_machine_name: str, subscription_id: str, **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/createCheckpoint", - ) # pylint: disable=line-too-long - path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "virtualMachineName": _SERIALIZER.url("virtual_machine_name", virtual_machine_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - if content_type is not None: - _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_delete_checkpoint_request( - resource_group_name: str, virtual_machine_name: str, subscription_id: str, **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/deleteCheckpoint", - ) # pylint: disable=line-too-long - path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "virtualMachineName": _SERIALIZER.url("virtual_machine_name", virtual_machine_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - if content_type is not None: - _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_restore_checkpoint_request( - resource_group_name: str, virtual_machine_name: str, subscription_id: str, **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/restoreCheckpoint", - ) # pylint: disable=line-too-long - path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "virtualMachineName": _SERIALIZER.url("virtual_machine_name", virtual_machine_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - if content_type is not None: - _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_list_by_resource_group_request(resource_group_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines", - ) # pylint: disable=line-too-long - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_list_by_subscription_request(subscription_id: str, **kwargs: Any) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/virtualMachines") - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) - - -class VirtualMachinesOperations: # pylint: disable=too-many-public-methods - """ - .. warning:: - **DO NOT** instantiate this class directly. - - Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.SCVMM`'s - :attr:`virtual_machines` attribute. - """ - - models = _models - - def __init__(self, *args, **kwargs): - input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") - - @distributed_trace - def get(self, resource_group_name: str, virtual_machine_name: str, **kwargs: Any) -> _models.VirtualMachine: - """Gets a VirtualMachine. - - Implements VirtualMachine GET method. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: VirtualMachine or the result of cls(response) - :rtype: ~azure.mgmt.scvmm.models.VirtualMachine - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VirtualMachine] = kwargs.pop("cls", None) - - request = build_get_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.get.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize("VirtualMachine", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}" - } - - def _create_or_update_initial( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Union[_models.VirtualMachine, IO], - **kwargs: Any - ) -> _models.VirtualMachine: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VirtualMachine] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - _json = self._serialize.body(body, "VirtualMachine") - - request = build_create_or_update_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._create_or_update_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 201]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if response.status_code == 200: - deserialized = self._deserialize("VirtualMachine", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("VirtualMachine", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore - - return deserialized # type: ignore - - _create_or_update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}" - } - - @overload - def begin_create_or_update( - self, - resource_group_name: str, - virtual_machine_name: str, - body: _models.VirtualMachine, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[_models.VirtualMachine]: - """Implements VirtualMachines PUT method. - - Creates Or Updates virtual machines deployed on scvmm fabric. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Request payload. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualMachine - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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 VirtualMachine or the result of - cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - def begin_create_or_update( - self, - resource_group_name: str, - virtual_machine_name: str, - body: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[_models.VirtualMachine]: - """Implements VirtualMachines PUT method. - - Creates Or Updates virtual machines deployed on scvmm fabric. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Request payload. Required. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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 VirtualMachine or the result of - cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace - def begin_create_or_update( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Union[_models.VirtualMachine, IO], - **kwargs: Any - ) -> LROPoller[_models.VirtualMachine]: - """Implements VirtualMachines PUT method. - - Creates Or Updates virtual machines deployed on scvmm fabric. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Request payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualMachine or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 VirtualMachine or the result of - cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VirtualMachine] = kwargs.pop("cls", None) - polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = self._create_or_update_initial( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VirtualMachine", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - if polling is True: - polling_method: PollingMethod = cast( - PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) - ) - elif polling is False: - polling_method = cast(PollingMethod, 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, - ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create_or_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}" - } - - def _delete_initial( # pylint: disable=inconsistent-return-statements - self, - resource_group_name: str, - virtual_machine_name: str, - retain: Optional[bool] = None, - force: Optional[bool] = None, - **kwargs: Any - ) -> None: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[None] = kwargs.pop("cls", None) - - request = build_delete_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - retain=retain, - force=force, - api_version=api_version, - template_url=self._delete_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 202, 204]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}" - } - - @distributed_trace - def begin_delete( - self, - resource_group_name: str, - virtual_machine_name: str, - retain: Optional[bool] = None, - force: Optional[bool] = None, - **kwargs: Any - ) -> LROPoller[None]: - """Implements VirtualMachine DELETE method. - - Deletes a VirtualMachine deployed on ScVmm fabric. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param retain: Whether to just disable the VM from azure and retain the VM in the VMM. Default - value is None. - :type retain: bool - :param force: Forces the resource to be deleted from azure. The corresponding CR would be - attempted to be deleted too. Default value is None. - :type force: bool - :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: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = self._delete_initial( # type: ignore - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - retain=retain, - force=force, - api_version=api_version, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: PollingMethod = cast( - PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) - ) - elif polling is False: - polling_method = cast(PollingMethod, 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, - ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}" - } - - def _update_initial( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Union[_models.VirtualMachineUpdate, IO], - **kwargs: Any - ) -> Optional[_models.VirtualMachine]: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.VirtualMachine]] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - _json = self._serialize.body(body, "VirtualMachineUpdate") - - request = build_update_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._update_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 201, 202]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("VirtualMachine", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("VirtualMachine", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}" - } - - @overload - def begin_update( - self, - resource_group_name: str, - virtual_machine_name: str, - body: _models.VirtualMachineUpdate, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[_models.VirtualMachine]: - """Implements the VirtualMachines PATCH method. - - Updates the VirtualMachines resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: VirtualMachines patch payload. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineUpdate - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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 VirtualMachine or the result of - cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - def begin_update( - self, - resource_group_name: str, - virtual_machine_name: str, - body: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[_models.VirtualMachine]: - """Implements the VirtualMachines PATCH method. - - Updates the VirtualMachines resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: VirtualMachines patch payload. Required. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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 VirtualMachine or the result of - cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace - def begin_update( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Union[_models.VirtualMachineUpdate, IO], - **kwargs: Any - ) -> LROPoller[_models.VirtualMachine]: - """Implements the VirtualMachines PATCH method. - - Updates the VirtualMachines resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: VirtualMachines patch payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineUpdate or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 VirtualMachine or the result of - cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VirtualMachine] = kwargs.pop("cls", None) - polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = self._update_initial( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VirtualMachine", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - if polling is True: - polling_method: PollingMethod = cast( - PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) - ) - elif polling is False: - polling_method = cast(PollingMethod, 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, - ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}" - } - - def _stop_initial( # pylint: disable=inconsistent-return-statements - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.StopVirtualMachineOptions, IO]] = None, - **kwargs: Any - ) -> None: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - if body is not None: - _json = self._serialize.body(body, "StopVirtualMachineOptions") - else: - _json = None - - request = build_stop_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._stop_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - 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) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _stop_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/stop" - } - - @overload - def begin_stop( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[_models.StopVirtualMachineOptions] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[None]: - """Implements the operation to stop a virtual machine. - - Stop virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine stop action payload. Default value is None. - :type body: ~azure.mgmt.scvmm.models.StopVirtualMachineOptions - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @overload - def begin_stop( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[IO] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[None]: - """Implements the operation to stop a virtual machine. - - Stop virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine stop action payload. Default value is None. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @distributed_trace - def begin_stop( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.StopVirtualMachineOptions, IO]] = None, - **kwargs: Any - ) -> LROPoller[None]: - """Implements the operation to stop a virtual machine. - - Stop virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine stop action payload. Is either a model type or a IO type. Default - value is None. - :type body: ~azure.mgmt.scvmm.models.StopVirtualMachineOptions or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = self._stop_initial( # type: ignore - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) - elif polling is False: - polling_method = cast(PollingMethod, 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, - ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_stop.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/stop" - } - - def _start_initial( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, virtual_machine_name: str, **kwargs: Any - ) -> None: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[None] = kwargs.pop("cls", None) - - request = build_start_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self._start_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - 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) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _start_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/start" - } - - @distributed_trace - def begin_start(self, resource_group_name: str, virtual_machine_name: str, **kwargs: Any) -> LROPoller[None]: - """Implements the operation to start a virtual machine. - - Start virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_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: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = self._start_initial( # type: ignore - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - api_version=api_version, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) - elif polling is False: - polling_method = cast(PollingMethod, 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, - ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_start.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/start" - } - - def _restart_initial( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, virtual_machine_name: str, **kwargs: Any - ) -> None: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[None] = kwargs.pop("cls", None) - - request = build_restart_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self._restart_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - 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) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _restart_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/restart" - } - - @distributed_trace - def begin_restart(self, resource_group_name: str, virtual_machine_name: str, **kwargs: Any) -> LROPoller[None]: - """Implements the operation to restart a virtual machine. - - Restart virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_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: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = self._restart_initial( # type: ignore - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - api_version=api_version, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) - elif polling is False: - polling_method = cast(PollingMethod, 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, - ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_restart.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/restart" - } - - def _create_checkpoint_initial( # pylint: disable=inconsistent-return-statements - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.VirtualMachineCreateCheckpoint, IO]] = None, - **kwargs: Any - ) -> None: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - if body is not None: - _json = self._serialize.body(body, "VirtualMachineCreateCheckpoint") - else: - _json = None - - request = build_create_checkpoint_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._create_checkpoint_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - 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) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _create_checkpoint_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/createCheckpoint" - } - - @overload - def begin_create_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[_models.VirtualMachineCreateCheckpoint] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[None]: - """Implements the operation to creates a checkpoint in a virtual machine. - - Creates a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine create checkpoint action payload. Default value is None. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineCreateCheckpoint - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @overload - def begin_create_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[IO] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[None]: - """Implements the operation to creates a checkpoint in a virtual machine. - - Creates a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine create checkpoint action payload. Default value is None. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @distributed_trace - def begin_create_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.VirtualMachineCreateCheckpoint, IO]] = None, - **kwargs: Any - ) -> LROPoller[None]: - """Implements the operation to creates a checkpoint in a virtual machine. - - Creates a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine create checkpoint action payload. Is either a model type or a IO - type. Default value is None. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineCreateCheckpoint or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = self._create_checkpoint_initial( # type: ignore - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) - elif polling is False: - polling_method = cast(PollingMethod, 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, - ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create_checkpoint.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/createCheckpoint" - } - - def _delete_checkpoint_initial( # pylint: disable=inconsistent-return-statements - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.VirtualMachineDeleteCheckpoint, IO]] = None, - **kwargs: Any - ) -> None: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - if body is not None: - _json = self._serialize.body(body, "VirtualMachineDeleteCheckpoint") - else: - _json = None - - request = build_delete_checkpoint_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._delete_checkpoint_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - 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) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _delete_checkpoint_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/deleteCheckpoint" - } - - @overload - def begin_delete_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[_models.VirtualMachineDeleteCheckpoint] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[None]: - """Implements the operation to delete a checkpoint in a virtual machine. - - Deletes a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine delete checkpoint action payload. Default value is None. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineDeleteCheckpoint - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @overload - def begin_delete_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[IO] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[None]: - """Implements the operation to delete a checkpoint in a virtual machine. - - Deletes a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine delete checkpoint action payload. Default value is None. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @distributed_trace - def begin_delete_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.VirtualMachineDeleteCheckpoint, IO]] = None, - **kwargs: Any - ) -> LROPoller[None]: - """Implements the operation to delete a checkpoint in a virtual machine. - - Deletes a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine delete checkpoint action payload. Is either a model type or a IO - type. Default value is None. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineDeleteCheckpoint or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = self._delete_checkpoint_initial( # type: ignore - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) - elif polling is False: - polling_method = cast(PollingMethod, 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, - ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete_checkpoint.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/deleteCheckpoint" - } - - def _restore_checkpoint_initial( # pylint: disable=inconsistent-return-statements - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.VirtualMachineRestoreCheckpoint, IO]] = None, - **kwargs: Any - ) -> None: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - if body is not None: - _json = self._serialize.body(body, "VirtualMachineRestoreCheckpoint") - else: - _json = None - - request = build_restore_checkpoint_request( - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._restore_checkpoint_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - 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) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _restore_checkpoint_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/restoreCheckpoint" - } - - @overload - def begin_restore_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[_models.VirtualMachineRestoreCheckpoint] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[None]: - """Implements the operation to restores to a checkpoint in a virtual machine. - - Restores to a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine restore checkpoint action payload. Default value is None. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineRestoreCheckpoint - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @overload - def begin_restore_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[IO] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[None]: - """Implements the operation to restores to a checkpoint in a virtual machine. - - Restores to a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine restore checkpoint action payload. Default value is None. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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: - """ - - @distributed_trace - def begin_restore_checkpoint( - self, - resource_group_name: str, - virtual_machine_name: str, - body: Optional[Union[_models.VirtualMachineRestoreCheckpoint, IO]] = None, - **kwargs: Any - ) -> LROPoller[None]: - """Implements the operation to restores to a checkpoint in a virtual machine. - - Restores to a checkpoint in virtual machine. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_machine_name: Name of the VirtualMachine. Required. - :type virtual_machine_name: str - :param body: Virtualmachine restore checkpoint action payload. Is either a model type or a IO - type. Default value is None. - :type body: ~azure.mgmt.scvmm.models.VirtualMachineRestoreCheckpoint or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = self._restore_checkpoint_initial( # type: ignore - resource_group_name=resource_group_name, - virtual_machine_name=virtual_machine_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) - - if polling is True: - polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) - elif polling is False: - polling_method = cast(PollingMethod, 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, - ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_restore_checkpoint.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines/{virtualMachineName}/restoreCheckpoint" - } - - @distributed_trace - def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> Iterable["_models.VirtualMachine"]: - """Implements GET VirtualMachines in a resource group. - - List of VirtualMachines in a resource group. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VirtualMachine or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VirtualMachineListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_resource_group_request( - resource_group_name=resource_group_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_resource_group.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("VirtualMachineListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) - - list_by_resource_group.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualMachines" - } - - @distributed_trace - def list_by_subscription(self, **kwargs: Any) -> Iterable["_models.VirtualMachine"]: - """Implements GET VirtualMachines in a subscription. - - List of VirtualMachines in a subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VirtualMachine or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VirtualMachine] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VirtualMachineListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_subscription_request( - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_subscription.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("VirtualMachineListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) - - list_by_subscription.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/virtualMachines"} diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_virtual_networks_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_virtual_networks_operations.py index 77ed816f656..c5a6133e70e 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_virtual_networks_operations.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_virtual_networks_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +6,9 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from io import IOBase import sys -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Optional, Type, TypeVar, Union, cast, overload import urllib.parse from azure.core.exceptions import ( @@ -30,12 +31,12 @@ from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models from .._serialization import Serializer -from .._vendor import _convert_request, _format_url_section +from .._vendor import _convert_request -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -43,15 +44,67 @@ _SERIALIZER = Serializer() _SERIALIZER.client_side_validation = False +def build_list_by_subscription_request(subscription_id: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/virtualNetworks") + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_list_by_resource_group_request(resource_group_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + def build_get_request( resource_group_name: str, virtual_network_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -61,11 +114,15 @@ def build_get_request( ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "virtualNetworkName": _SERIALIZER.url("virtual_network_name", virtual_network_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "virtualNetworkName": _SERIALIZER.url( + "virtual_network_name", virtual_network_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -82,9 +139,7 @@ def build_create_or_update_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -95,11 +150,15 @@ def build_create_or_update_request( ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "virtualNetworkName": _SERIALIZER.url("virtual_network_name", virtual_network_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "virtualNetworkName": _SERIALIZER.url( + "virtual_network_name", virtual_network_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -112,55 +171,13 @@ def build_create_or_update_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_delete_request( - resource_group_name: str, - virtual_network_name: str, - subscription_id: str, - *, - force: Optional[bool] = None, - **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}", - ) # pylint: disable=line-too-long - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "virtualNetworkName": _SERIALIZER.url("virtual_network_name", virtual_network_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - if force is not None: - _params["force"] = _SERIALIZER.query("force", force, "bool") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) - - def build_update_request( resource_group_name: str, virtual_network_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -170,12 +187,16 @@ def build_update_request( "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}", ) # pylint: disable=line-too-long path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "virtualNetworkName": _SERIALIZER.url("virtual_network_name", virtual_network_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "virtualNetworkName": _SERIALIZER.url( + "virtual_network_name", virtual_network_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -188,60 +209,46 @@ def build_update_request( return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs) -def build_list_by_resource_group_request(resource_group_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest: +def build_delete_request( + resource_group_name: str, + virtual_network_name: str, + subscription_id: str, + *, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any +) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}", ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "virtualNetworkName": _SERIALIZER.url( + "virtual_network_name", virtual_network_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if force is not None: + _params["force"] = _SERIALIZER.query("force", force, "str") # Construct headers _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_list_by_subscription_request(subscription_id: str, **kwargs: Any) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/virtualNetworks") - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) class VirtualNetworksOperations: @@ -250,7 +257,7 @@ class VirtualNetworksOperations: **DO NOT** instantiate this class directly. Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.SCVMM`'s + :class:`~azure.mgmt.scvmm.ScVmmMgmtClient`'s :attr:`virtual_networks` attribute. """ @@ -263,22 +270,184 @@ class VirtualNetworksOperations: self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + @distributed_trace + def list_by_subscription(self, **kwargs: Any) -> Iterable["_models.VirtualNetwork"]: + """Implements GET VirtualNetworks in a subscription. + + List of VirtualNetworks in a subscription. + + :return: An iterator like instance of either VirtualNetwork or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VirtualNetwork] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VirtualNetworkListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("VirtualNetworkListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + + @distributed_trace + def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> Iterable["_models.VirtualNetwork"]: + """Implements GET VirtualNetworks in a resource group. + + List of VirtualNetworks in a resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :return: An iterator like instance of either VirtualNetwork or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VirtualNetwork] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VirtualNetworkListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_resource_group_request( + resource_group_name=resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("VirtualNetworkListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + @distributed_trace def get(self, resource_group_name: str, virtual_network_name: str, **kwargs: Any) -> _models.VirtualNetwork: """Gets a VirtualNetwork. Implements VirtualNetwork GET method. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_network_name: Name of the VirtualNetwork. Required. :type virtual_network_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: VirtualNetwork or the result of cls(response) :rtype: ~azure.mgmt.scvmm.models.VirtualNetwork :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -289,25 +458,23 @@ class VirtualNetworksOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VirtualNetwork] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( resource_group_name=resource_group_name, virtual_network_name=virtual_network_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -320,22 +487,18 @@ class VirtualNetworksOperations: deserialized = self._deserialize("VirtualNetwork", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}" - } + return deserialized # type: ignore def _create_or_update_initial( self, resource_group_name: str, virtual_network_name: str, - body: Union[_models.VirtualNetwork, IO], + resource: Union[_models.VirtualNetwork, IO[bytes]], **kwargs: Any ) -> _models.VirtualNetwork: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -346,21 +509,19 @@ class VirtualNetworksOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.VirtualNetwork] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None _content = None - if isinstance(body, (IO, bytes)): - _content = body + if isinstance(resource, (IOBase, bytes)): + _content = resource else: - _json = self._serialize.body(body, "VirtualNetwork") + _json = self._serialize.body(resource, "VirtualNetwork") - request = build_create_or_update_request( + _request = build_create_or_update_request( resource_group_name=resource_group_name, virtual_network_name=virtual_network_name, subscription_id=self._config.subscription_id, @@ -368,15 +529,15 @@ class VirtualNetworksOperations: content_type=content_type, json=_json, content=_content, - template_url=self._create_or_update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -386,27 +547,26 @@ class VirtualNetworksOperations: error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + response_headers = {} if response.status_code == 200: deserialized = self._deserialize("VirtualNetwork", pipeline_response) if response.status_code == 201: + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + deserialized = self._deserialize("VirtualNetwork", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore - _create_or_update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}" - } - @overload def begin_create_or_update( self, resource_group_name: str, virtual_network_name: str, - body: _models.VirtualNetwork, + resource: _models.VirtualNetwork, *, content_type: str = "application/json", **kwargs: Any @@ -415,23 +575,16 @@ class VirtualNetworksOperations: Onboards the ScVmm virtual network as an Azure virtual network resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_network_name: Name of the VirtualNetwork. Required. :type virtual_network_name: str - :param body: Request payload. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualNetwork + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.VirtualNetwork :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: 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 VirtualNetwork or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] @@ -443,7 +596,7 @@ class VirtualNetworksOperations: self, resource_group_name: str, virtual_network_name: str, - body: IO, + resource: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -452,23 +605,16 @@ class VirtualNetworksOperations: Onboards the ScVmm virtual network as an Azure virtual network resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_network_name: Name of the VirtualNetwork. Required. :type virtual_network_name: str - :param body: Request payload. Required. - :type body: IO + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: 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 VirtualNetwork or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] @@ -480,30 +626,21 @@ class VirtualNetworksOperations: self, resource_group_name: str, virtual_network_name: str, - body: Union[_models.VirtualNetwork, IO], + resource: Union[_models.VirtualNetwork, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.VirtualNetwork]: """Implements VirtualNetworks PUT method. Onboards the ScVmm virtual network as an Azure virtual network resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_network_name: Name of the VirtualNetwork. Required. :type virtual_network_name: str - :param body: Request payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.VirtualNetwork or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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. + :param resource: Resource create parameters. Is either a VirtualNetwork type or a IO[bytes] + type. Required. + :type resource: ~azure.mgmt.scvmm.models.VirtualNetwork or IO[bytes] :return: An instance of LROPoller that returns either VirtualNetwork or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] @@ -512,9 +649,7 @@ class VirtualNetworksOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[_models.VirtualNetwork] = kwargs.pop("cls", None) polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) @@ -524,7 +659,7 @@ class VirtualNetworksOperations: raw_result = self._create_or_update_initial( resource_group_name=resource_group_name, virtual_network_name=virtual_network_name, - body=body, + resource=resource, api_version=api_version, content_type=content_type, cls=lambda x, y, z: x, @@ -537,7 +672,7 @@ class VirtualNetworksOperations: def get_long_running_output(pipeline_response): deserialized = self._deserialize("VirtualNetwork", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -549,22 +684,227 @@ class VirtualNetworksOperations: else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.VirtualNetwork].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore + return LROPoller[_models.VirtualNetwork]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - begin_create_or_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}" - } + def _update_initial( + self, + resource_group_name: str, + virtual_network_name: str, + properties: Union[_models.VirtualNetworkTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> Optional[_models.VirtualNetwork]: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Optional[_models.VirtualNetwork]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(properties, (IOBase, bytes)): + _content = properties + else: + _json = self._serialize.body(properties, "VirtualNetworkTagsUpdate") + + _request = build_update_request( + resource_group_name=resource_group_name, + virtual_network_name=virtual_network_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = None + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("VirtualNetwork", pipeline_response) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_update( + self, + resource_group_name: str, + virtual_network_name: str, + properties: _models.VirtualNetworkTagsUpdate, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.VirtualNetwork]: + """Implements the VirtualNetworks PATCH method. + + Updates the VirtualNetworks resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param virtual_network_name: Name of the VirtualNetwork. Required. + :type virtual_network_name: str + :param properties: The resource properties to be updated. Required. + :type properties: ~azure.mgmt.scvmm.models.VirtualNetworkTagsUpdate + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either VirtualNetwork or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_update( + self, + resource_group_name: str, + virtual_network_name: str, + properties: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.VirtualNetwork]: + """Implements the VirtualNetworks PATCH method. + + Updates the VirtualNetworks resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param virtual_network_name: Name of the VirtualNetwork. Required. + :type virtual_network_name: str + :param properties: The resource properties to be updated. Required. + :type properties: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either VirtualNetwork or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def begin_update( + self, + resource_group_name: str, + virtual_network_name: str, + properties: Union[_models.VirtualNetworkTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.VirtualNetwork]: + """Implements the VirtualNetworks PATCH method. + + Updates the VirtualNetworks resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param virtual_network_name: Name of the VirtualNetwork. Required. + :type virtual_network_name: str + :param properties: The resource properties to be updated. Is either a VirtualNetworkTagsUpdate + type or a IO[bytes] type. Required. + :type properties: ~azure.mgmt.scvmm.models.VirtualNetworkTagsUpdate or IO[bytes] + :return: An instance of LROPoller that returns either VirtualNetwork or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.VirtualNetwork] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._update_initial( + resource_group_name=resource_group_name, + virtual_network_name=virtual_network_name, + properties=properties, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("VirtualNetwork", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.VirtualNetwork].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.VirtualNetwork]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _delete_initial( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, virtual_network_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + virtual_network_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> None: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -575,65 +915,61 @@ class VirtualNetworksOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( resource_group_name=resource_group_name, virtual_network_name=virtual_network_name, subscription_id=self._config.subscription_id, force=force, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response - if response.status_code not in [200, 202, 204]: + if response.status_code not in [202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - if cls: - return cls(pipeline_response, None, {}) + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}" - } + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace def begin_delete( - self, resource_group_name: str, virtual_network_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + virtual_network_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> LROPoller[None]: """Implements VirtualNetwork DELETE method. Deregisters the ScVmm virtual network from Azure. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param virtual_network_name: Name of the VirtualNetwork. Required. :type virtual_network_name: str - :param force: Forces the resource to be deleted from azure. The corresponding CR would be - attempted to be deleted too. Default value is None. - :type force: bool - :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. + :param force: Forces the resource to be deleted. Known values are: "true" and "false". Default + value is None. + :type force: str or ~azure.mgmt.scvmm.models.ForceDelete :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: @@ -641,9 +977,7 @@ class VirtualNetworksOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) @@ -663,7 +997,7 @@ class VirtualNetworksOperations: def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast( @@ -674,413 +1008,10 @@ class VirtualNetworksOperations: else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[None].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}" - } - - def _update_initial( - self, resource_group_name: str, virtual_network_name: str, body: Union[_models.ResourcePatch, IO], **kwargs: Any - ) -> Optional[_models.VirtualNetwork]: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.VirtualNetwork]] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - _json = self._serialize.body(body, "ResourcePatch") - - request = build_update_request( - resource_group_name=resource_group_name, - virtual_network_name=virtual_network_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._update_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 201, 202]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("VirtualNetwork", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("VirtualNetwork", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}" - } - - @overload - def begin_update( - self, - resource_group_name: str, - virtual_network_name: str, - body: _models.ResourcePatch, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[_models.VirtualNetwork]: - """Implements the VirtualNetworks PATCH method. - - Updates the VirtualNetworks resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_network_name: Name of the VirtualNetwork. Required. - :type virtual_network_name: str - :param body: VirtualNetworks patch payload. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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 VirtualNetwork or the result of - cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - def begin_update( - self, - resource_group_name: str, - virtual_network_name: str, - body: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[_models.VirtualNetwork]: - """Implements the VirtualNetworks PATCH method. - - Updates the VirtualNetworks resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_network_name: Name of the VirtualNetwork. Required. - :type virtual_network_name: str - :param body: VirtualNetworks patch payload. Required. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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 VirtualNetwork or the result of - cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace - def begin_update( - self, resource_group_name: str, virtual_network_name: str, body: Union[_models.ResourcePatch, IO], **kwargs: Any - ) -> LROPoller[_models.VirtualNetwork]: - """Implements the VirtualNetworks PATCH method. - - Updates the VirtualNetworks resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_network_name: Name of the VirtualNetwork. Required. - :type virtual_network_name: str - :param body: VirtualNetworks patch payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 VirtualNetwork or the result of - cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VirtualNetwork] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VirtualNetwork] = kwargs.pop("cls", None) - polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = self._update_initial( - resource_group_name=resource_group_name, - virtual_network_name=virtual_network_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VirtualNetwork", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - if polling is True: - polling_method: PollingMethod = cast( - PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) - ) - elif polling is False: - polling_method = cast(PollingMethod, 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, - ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks/{virtualNetworkName}" - } - - @distributed_trace - def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> Iterable["_models.VirtualNetwork"]: - """Implements GET VirtualNetworks in a resource group. - - List of VirtualNetworks in a resource group. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VirtualNetwork or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VirtualNetwork] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VirtualNetworkListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_resource_group_request( - resource_group_name=resource_group_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_resource_group.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("VirtualNetworkListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) - - list_by_resource_group.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/virtualNetworks" - } - - @distributed_trace - def list_by_subscription(self, **kwargs: Any) -> Iterable["_models.VirtualNetwork"]: - """Implements GET VirtualNetworks in a subscription. - - List of VirtualNetworks in a subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VirtualNetwork or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VirtualNetwork] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VirtualNetworkListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_subscription_request( - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_subscription.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("VirtualNetworkListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) - - list_by_subscription.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/virtualNetworks"} + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_vm_instance_hybrid_identity_metadatas_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_vm_instance_hybrid_identity_metadatas_operations.py new file mode 100644 index 00000000000..4d0b5bdc4e0 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_vm_instance_hybrid_identity_metadatas_operations.py @@ -0,0 +1,257 @@ +# pylint: disable=too-many-lines,too-many-statements +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import sys +from typing import Any, Callable, Dict, Iterable, Optional, Type, TypeVar +import urllib.parse + +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpResponse +from azure.core.rest import HttpRequest +from azure.core.tracing.decorator import distributed_trace +from azure.core.utils import case_insensitive_dict +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models +from .._serialization import Serializer +from .._vendor import _convert_request + +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping +else: + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +_SERIALIZER = Serializer() +_SERIALIZER.client_side_validation = False + + +def build_list_by_virtual_machine_instance_request( # pylint: disable=name-too-long + resource_uri: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default/hybridIdentityMetadata", + ) # pylint: disable=line-too-long + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_get_request(resource_uri: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/{resourceUri}/providers/Microsoft.ScVmm/virtualMachineInstances/default/hybridIdentityMetadata/default", + ) # pylint: disable=line-too-long + path_format_arguments = { + "resourceUri": _SERIALIZER.url("resource_uri", resource_uri, "str", skip_quote=True), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +class VmInstanceHybridIdentityMetadatasOperations: # pylint: disable=name-too-long + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.scvmm.ScVmmMgmtClient`'s + :attr:`vm_instance_hybrid_identity_metadatas` attribute. + """ + + models = _models + + def __init__(self, *args, **kwargs): + input_args = list(args) + self._client = input_args.pop(0) if input_args else kwargs.pop("client") + self._config = input_args.pop(0) if input_args else kwargs.pop("config") + self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @distributed_trace + def list_by_virtual_machine_instance( + self, resource_uri: str, **kwargs: Any + ) -> Iterable["_models.VmInstanceHybridIdentityMetadata"]: + """Implements GET HybridIdentityMetadata in a vm. + + Returns the list of HybridIdentityMetadata of the given VM. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :return: An iterator like instance of either VmInstanceHybridIdentityMetadata or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VmInstanceHybridIdentityMetadata] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VmInstanceHybridIdentityMetadataListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_virtual_machine_instance_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("VmInstanceHybridIdentityMetadataListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + + @distributed_trace + def get(self, resource_uri: str, **kwargs: Any) -> _models.VmInstanceHybridIdentityMetadata: + """Gets HybridIdentityMetadata. + + Implements HybridIdentityMetadata GET method. + + :param resource_uri: The fully qualified Azure Resource manager identifier of the resource. + Required. + :type resource_uri: str + :return: VmInstanceHybridIdentityMetadata or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.VmInstanceHybridIdentityMetadata + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VmInstanceHybridIdentityMetadata] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_uri=resource_uri, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("VmInstanceHybridIdentityMetadata", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_vmm_servers_operations.py b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_vmm_servers_operations.py index c49e89f68ea..24f331dca50 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_vmm_servers_operations.py +++ b/sdk/scvmm/azure-mgmt-scvmm/azure/mgmt/scvmm/operations/_vmm_servers_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +6,9 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from io import IOBase import sys -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Optional, Type, TypeVar, Union, cast, overload import urllib.parse from azure.core.exceptions import ( @@ -30,12 +31,12 @@ from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models from .._serialization import Serializer -from .._vendor import _convert_request, _format_url_section +from .._vendor import _convert_request -if sys.version_info >= (3, 8): - from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -43,15 +44,67 @@ _SERIALIZER = Serializer() _SERIALIZER.client_side_validation = False +def build_list_by_subscription_request(subscription_id: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/vmmServers") + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_list_by_resource_group_request(resource_group_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + def build_get_request( resource_group_name: str, vmm_server_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -61,11 +114,15 @@ def build_get_request( ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "vmmServerName": _SERIALIZER.url("vmm_server_name", vmm_server_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "vmmServerName": _SERIALIZER.url( + "vmm_server_name", vmm_server_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -82,9 +139,7 @@ def build_create_or_update_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -95,11 +150,15 @@ def build_create_or_update_request( ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "vmmServerName": _SERIALIZER.url("vmm_server_name", vmm_server_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "vmmServerName": _SERIALIZER.url( + "vmm_server_name", vmm_server_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -112,50 +171,13 @@ def build_create_or_update_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_delete_request( - resource_group_name: str, vmm_server_name: str, subscription_id: str, *, force: Optional[bool] = None, **kwargs: Any -) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop( - "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}", - ) # pylint: disable=line-too-long - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "vmmServerName": _SERIALIZER.url("vmm_server_name", vmm_server_name, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - if force is not None: - _params["force"] = _SERIALIZER.query("force", force, "bool") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) - - def build_update_request( resource_group_name: str, vmm_server_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -165,12 +187,16 @@ def build_update_request( "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}", ) # pylint: disable=line-too-long path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "vmmServerName": _SERIALIZER.url("vmm_server_name", vmm_server_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "vmmServerName": _SERIALIZER.url( + "vmm_server_name", vmm_server_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -183,60 +209,46 @@ def build_update_request( return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs) -def build_list_by_resource_group_request(resource_group_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest: +def build_delete_request( + resource_group_name: str, + vmm_server_name: str, + subscription_id: str, + *, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any +) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-07")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}", ) # pylint: disable=line-too-long path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "vmmServerName": _SERIALIZER.url( + "vmm_server_name", vmm_server_name, "str", max_length=54, min_length=1, pattern=r"[a-zA-Z0-9-_\.]" + ), } - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if force is not None: + _params["force"] = _SERIALIZER.query("force", force, "str") # Construct headers _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) - - -def build_list_by_subscription_request(subscription_id: str, **kwargs: Any) -> HttpRequest: - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", "2020-06-05-preview") - ) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/vmmServers") - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - } - - _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore - - # Construct parameters - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - - # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) class VmmServersOperations: @@ -245,7 +257,7 @@ class VmmServersOperations: **DO NOT** instantiate this class directly. Instead, you should access the following operations through - :class:`~azure.mgmt.scvmm.SCVMM`'s + :class:`~azure.mgmt.scvmm.ScVmmMgmtClient`'s :attr:`vmm_servers` attribute. """ @@ -259,21 +271,183 @@ class VmmServersOperations: self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def get(self, resource_group_name: str, vmm_server_name: str, **kwargs: Any) -> _models.VMMServer: - """Gets a VMMServer. + def list_by_subscription(self, **kwargs: Any) -> Iterable["_models.VmmServer"]: + """Implements GET VmmServers in a subscription. - Implements VMMServer GET method. + List of VmmServers in a subscription. - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: VMMServer or the result of cls(response) - :rtype: ~azure.mgmt.scvmm.models.VMMServer + :return: An iterator like instance of either VmmServer or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VmmServer] :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VmmServerListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("VmmServerListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + + @distributed_trace + def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> Iterable["_models.VmmServer"]: + """Implements GET VmmServers in a resource group. + + List of VmmServers in a resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :return: An iterator like instance of either VmmServer or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VmmServer] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VmmServerListResult] = kwargs.pop("cls", None) + + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_list_by_resource_group_request( + resource_group_name=resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("VmmServerListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + + @distributed_trace + def get(self, resource_group_name: str, vmm_server_name: str, **kwargs: Any) -> _models.VmmServer: + """Gets a VMMServer. + + Implements VmmServer GET method. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :return: VmmServer or the result of cls(response) + :rtype: ~azure.mgmt.scvmm.models.VmmServer + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -284,25 +458,23 @@ class VmmServersOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VMMServer] = kwargs.pop("cls", None) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.VmmServer] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( resource_group_name=resource_group_name, vmm_server_name=vmm_server_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -312,21 +484,21 @@ class VmmServersOperations: error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - deserialized = self._deserialize("VMMServer", pipeline_response) + deserialized = self._deserialize("VmmServer", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}" - } + return deserialized # type: ignore def _create_or_update_initial( - self, resource_group_name: str, vmm_server_name: str, body: Union[_models.VMMServer, IO], **kwargs: Any - ) -> _models.VMMServer: - error_map = { + self, + resource_group_name: str, + vmm_server_name: str, + resource: Union[_models.VmmServer, IO[bytes]], + **kwargs: Any + ) -> _models.VmmServer: + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -337,21 +509,19 @@ class VmmServersOperations: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VMMServer] = kwargs.pop("cls", None) + cls: ClsType[_models.VmmServer] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None _content = None - if isinstance(body, (IO, bytes)): - _content = body + if isinstance(resource, (IOBase, bytes)): + _content = resource else: - _json = self._serialize.body(body, "VMMServer") + _json = self._serialize.body(resource, "VmmServer") - request = build_create_or_update_request( + _request = build_create_or_update_request( resource_group_name=resource_group_name, vmm_server_name=vmm_server_name, subscription_id=self._config.subscription_id, @@ -359,15 +529,15 @@ class VmmServersOperations: content_type=content_type, json=_json, content=_content, - template_url=self._create_or_update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -377,54 +547,46 @@ class VmmServersOperations: error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + response_headers = {} if response.status_code == 200: - deserialized = self._deserialize("VMMServer", pipeline_response) + deserialized = self._deserialize("VmmServer", pipeline_response) if response.status_code == 201: - deserialized = self._deserialize("VMMServer", pipeline_response) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + deserialized = self._deserialize("VmmServer", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore - _create_or_update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}" - } - @overload def begin_create_or_update( self, resource_group_name: str, vmm_server_name: str, - body: _models.VMMServer, + resource: _models.VmmServer, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.VMMServer]: + ) -> LROPoller[_models.VmmServer]: """Implements VmmServers PUT method. - Onboards the SCVMM fabric as an Azure VmmServer resource. + Onboards the SCVmm fabric as an Azure VmmServer resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. + :param vmm_server_name: Name of the VmmServer. Required. :type vmm_server_name: str - :param body: Request payload. Required. - :type body: ~azure.mgmt.scvmm.models.VMMServer + :param resource: Resource create parameters. Required. + :type resource: ~azure.mgmt.scvmm.models.VmmServer :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: 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 VMMServer or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VMMServer] + :return: An instance of LROPoller that returns either VmmServer or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VmmServer] :raises ~azure.core.exceptions.HttpResponseError: """ @@ -433,74 +595,60 @@ class VmmServersOperations: self, resource_group_name: str, vmm_server_name: str, - body: IO, + resource: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.VMMServer]: + ) -> LROPoller[_models.VmmServer]: """Implements VmmServers PUT method. - Onboards the SCVMM fabric as an Azure VmmServer resource. + Onboards the SCVmm fabric as an Azure VmmServer resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. + :param vmm_server_name: Name of the VmmServer. Required. :type vmm_server_name: str - :param body: Request payload. Required. - :type body: IO + :param resource: Resource create parameters. Required. + :type resource: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: 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 VMMServer or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VMMServer] + :return: An instance of LROPoller that returns either VmmServer or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VmmServer] :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace def begin_create_or_update( - self, resource_group_name: str, vmm_server_name: str, body: Union[_models.VMMServer, IO], **kwargs: Any - ) -> LROPoller[_models.VMMServer]: + self, + resource_group_name: str, + vmm_server_name: str, + resource: Union[_models.VmmServer, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.VmmServer]: """Implements VmmServers PUT method. - Onboards the SCVMM fabric as an Azure VmmServer resource. + Onboards the SCVmm fabric as an Azure VmmServer resource. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. + :param vmm_server_name: Name of the VmmServer. Required. :type vmm_server_name: str - :param body: Request payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.VMMServer or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 VMMServer or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VMMServer] + :param resource: Resource create parameters. Is either a VmmServer type or a IO[bytes] type. + Required. + :type resource: ~azure.mgmt.scvmm.models.VmmServer or IO[bytes] + :return: An instance of LROPoller that returns either VmmServer or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VmmServer] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VMMServer] = kwargs.pop("cls", None) + cls: ClsType[_models.VmmServer] = kwargs.pop("cls", None) polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) @@ -508,7 +656,7 @@ class VmmServersOperations: raw_result = self._create_or_update_initial( resource_group_name=resource_group_name, vmm_server_name=vmm_server_name, - body=body, + resource=resource, api_version=api_version, content_type=content_type, cls=lambda x, y, z: x, @@ -519,9 +667,9 @@ class VmmServersOperations: kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VMMServer", pipeline_response) + deserialized = self._deserialize("VmmServer", pipeline_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -533,22 +681,224 @@ class VmmServersOperations: else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.VmmServer].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore + return LROPoller[_models.VmmServer]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - begin_create_or_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}" - } + def _update_initial( + self, + resource_group_name: str, + vmm_server_name: str, + properties: Union[_models.VmmServerTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> Optional[_models.VmmServer]: + error_map: MutableMapping[int, Type[HttpResponseError]] = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Optional[_models.VmmServer]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(properties, (IOBase, bytes)): + _content = properties + else: + _json = self._serialize.body(properties, "VmmServerTagsUpdate") + + _request = build_update_request( + resource_group_name=resource_group_name, + vmm_server_name=vmm_server_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = None + response_headers = {} + if response.status_code == 200: + deserialized = self._deserialize("VmmServer", pipeline_response) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_update( + self, + resource_group_name: str, + vmm_server_name: str, + properties: _models.VmmServerTagsUpdate, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.VmmServer]: + """Implements VmmServers PATCH method. + + Updates the VmmServers resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param properties: The resource properties to be updated. Required. + :type properties: ~azure.mgmt.scvmm.models.VmmServerTagsUpdate + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either VmmServer or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VmmServer] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_update( + self, + resource_group_name: str, + vmm_server_name: str, + properties: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.VmmServer]: + """Implements VmmServers PATCH method. + + Updates the VmmServers resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param properties: The resource properties to be updated. Required. + :type properties: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns either VmmServer or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VmmServer] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def begin_update( + self, + resource_group_name: str, + vmm_server_name: str, + properties: Union[_models.VmmServerTagsUpdate, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.VmmServer]: + """Implements VmmServers PATCH method. + + Updates the VmmServers resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param vmm_server_name: Name of the VmmServer. Required. + :type vmm_server_name: str + :param properties: The resource properties to be updated. Is either a VmmServerTagsUpdate type + or a IO[bytes] type. Required. + :type properties: ~azure.mgmt.scvmm.models.VmmServerTagsUpdate or IO[bytes] + :return: An instance of LROPoller that returns either VmmServer or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VmmServer] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.VmmServer] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._update_initial( + resource_group_name=resource_group_name, + vmm_server_name=vmm_server_name, + properties=properties, + api_version=api_version, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize("VmmServer", pipeline_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.VmmServer].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.VmmServer]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _delete_initial( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, vmm_server_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + vmm_server_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> None: - error_map = { + error_map: MutableMapping[int, Type[HttpResponseError]] = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -559,65 +909,61 @@ class VmmServersOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( resource_group_name=resource_group_name, vmm_server_name=vmm_server_name, subscription_id=self._config.subscription_id, force=force, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request = _convert_request(_request) + _request.url = self._client.format_url(_request.url) + _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response - if response.status_code not in [200, 202, 204]: + if response.status_code not in [202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - if cls: - return cls(pipeline_response, None, {}) + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}" - } + if cls: + return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace def begin_delete( - self, resource_group_name: str, vmm_server_name: str, force: Optional[bool] = None, **kwargs: Any + self, + resource_group_name: str, + vmm_server_name: str, + force: Optional[Union[str, _models.ForceDelete]] = None, + **kwargs: Any ) -> LROPoller[None]: """Implements VmmServers DELETE method. - Deboards the SCVMM fabric from Azure. + Removes the SCVmm fabric from Azure. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. + :param vmm_server_name: Name of the VmmServer. Required. :type vmm_server_name: str - :param force: Forces the resource to be deleted from azure. The corresponding CR would be - attempted to be deleted too. Default value is None. - :type force: bool - :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. + :param force: Forces the resource to be deleted. Known values are: "true" and "false". Default + value is None. + :type force: str or ~azure.mgmt.scvmm.models.ForceDelete :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: @@ -625,9 +971,7 @@ class VmmServersOperations: _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) @@ -647,7 +991,7 @@ class VmmServersOperations: def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast( @@ -658,410 +1002,10 @@ class VmmServersOperations: else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[None].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}" - } - - def _update_initial( - self, resource_group_name: str, vmm_server_name: str, body: Union[_models.ResourcePatch, IO], **kwargs: Any - ) -> Optional[_models.VMMServer]: - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.VMMServer]] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(body, (IO, bytes)): - _content = body - else: - _json = self._serialize.body(body, "ResourcePatch") - - request = build_update_request( - resource_group_name=resource_group_name, - vmm_server_name=vmm_server_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self._update_initial.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [200, 201, 202]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("VMMServer", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("VMMServer", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}" - } - - @overload - def begin_update( - self, - resource_group_name: str, - vmm_server_name: str, - body: _models.ResourcePatch, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[_models.VMMServer]: - """Implements VmmServers PATCH method. - - Updates the VmmServers resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param body: VmmServers patch payload. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: 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 VMMServer or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VMMServer] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - def begin_update( - self, - resource_group_name: str, - vmm_server_name: str, - body: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[_models.VMMServer]: - """Implements VmmServers PATCH method. - - Updates the VmmServers resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param body: VmmServers patch payload. Required. - :type body: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: 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 VMMServer or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VMMServer] - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace - def begin_update( - self, resource_group_name: str, vmm_server_name: str, body: Union[_models.ResourcePatch, IO], **kwargs: Any - ) -> LROPoller[_models.VMMServer]: - """Implements VmmServers PATCH method. - - Updates the VmmServers resource. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param vmm_server_name: Name of the VMMServer. Required. - :type vmm_server_name: str - :param body: VmmServers patch payload. Is either a model type or a IO type. Required. - :type body: ~azure.mgmt.scvmm.models.ResourcePatch or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: 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 VMMServer or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.scvmm.models.VMMServer] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VMMServer] = kwargs.pop("cls", None) - polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = self._update_initial( - resource_group_name=resource_group_name, - vmm_server_name=vmm_server_name, - body=body, - api_version=api_version, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - kwargs.pop("error_map", None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VMMServer", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - if polling is True: - polling_method: PollingMethod = cast( - PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs) - ) - elif polling is False: - polling_method = cast(PollingMethod, 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, - ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers/{vmmServerName}" - } - - @distributed_trace - def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> Iterable["_models.VMMServer"]: - """Implements GET VmmServers in a resource group. - - List of VmmServers in a resource group. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VMMServer or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VMMServer] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VMMServerListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_resource_group_request( - resource_group_name=resource_group_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_resource_group.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("VMMServerListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) - - list_by_resource_group.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ScVmm/vmmServers" - } - - @distributed_trace - def list_by_subscription(self, **kwargs: Any) -> Iterable["_models.VMMServer"]: - """Implements GET VmmServers in a subscription. - - List of VmmServers in a subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either VMMServer or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.scvmm.models.VMMServer] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version: Literal["2020-06-05-preview"] = kwargs.pop( - "api_version", _params.pop("api-version", self._config.api_version) - ) - cls: ClsType[_models.VMMServerListResult] = kwargs.pop("cls", None) - - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - request = build_list_by_subscription_request( - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list_by_subscription.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("VMMServerListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) - - list_by_subscription.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.ScVmm/vmmServers"} + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore diff --git a/sdk/scvmm/azure-mgmt-scvmm/dev_requirements.txt b/sdk/scvmm/azure-mgmt-scvmm/dev_requirements.txt index 6ccb7f031dd..13d05507d99 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/dev_requirements.txt +++ b/sdk/scvmm/azure-mgmt-scvmm/dev_requirements.txt @@ -1 +1,2 @@ -e ../../../tools/azure-sdk-tools +-e ../../resources/azure-mgmt-resource \ No newline at end of file diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_availability_set.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_create_or_update_maximum_set_gen.py similarity index 60% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_availability_set.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_create_or_update_maximum_set_gen.py index 09aec99952c..3e7a52d9573 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_availability_set.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_create_or_update_maximum_set_gen.py @@ -6,15 +6,18 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import Any, IO, Union + from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python create_availability_set.py + python availability_sets_create_or_update_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,29 +27,30 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.availability_sets.begin_create_or_update( - resource_group_name="testrg", - availability_set_name="HRAvailabilitySet", - body={ + resource_group_name="rgscvmm", + availability_set_resource_name="-", + resource={ "extendedLocation": { - "name": "/subscriptions/a5015e1c-867f-4533-8541-85cd470d0cfb/resourceGroups/demoRG/providers/Microsoft.Arc/customLocations/contoso", + "name": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ExtendedLocation/customLocations/customLocationName", "type": "customLocation", }, - "location": "East US", + "location": "jelevilan", "properties": { - "availabilitySetName": "hr-avset", - "vmmServerId": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/testrg/providers/Microsoft.ScVmm/VMMServers/ContosoVMMServer", + "availabilitySetName": "njrpftunzo", + "vmmServerId": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ScVmm/vmmServers/vmmServerName", }, + "tags": {"key5701": "cldtxloqh"}, }, ).result() print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/CreateAvailabilitySet.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/AvailabilitySets_CreateOrUpdate_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_create_or_update_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_create_or_update_minimum_set_gen.py new file mode 100644 index 00000000000..4d8a7160690 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_create_or_update_minimum_set_gen.py @@ -0,0 +1,45 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, IO, Union + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python availability_sets_create_or_update_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.availability_sets.begin_create_or_update( + resource_group_name="rgscvmm", + availability_set_resource_name="_", + resource={"extendedLocation": {}, "location": "jelevilan"}, + ).result() + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/AvailabilitySets_CreateOrUpdate_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_availability_set.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_delete_maximum_set_gen.py similarity index 74% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_availability_set.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_delete_maximum_set_gen.py index 7001248e9f7..e069458fbbb 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_availability_set.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_delete_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python delete_availability_set.py + python availability_sets_delete_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,17 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) - response = client.availability_sets.begin_delete( - resource_group_name="testrg", - availability_set_name="HRAvailabilitySet", + client.availability_sets.begin_delete( + resource_group_name="rgscvmm", + availability_set_resource_name="_", ).result() - print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/DeleteAvailabilitySet.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/AvailabilitySets_Delete_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_delete_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_delete_minimum_set_gen.py new file mode 100644 index 00000000000..4b31ebf071b --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_delete_minimum_set_gen.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python availability_sets_delete_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + client.availability_sets.begin_delete( + resource_group_name="rgscvmm", + availability_set_resource_name="6", + ).result() + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/AvailabilitySets_Delete_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_availability_set.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_get_maximum_set_gen.py similarity index 77% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_availability_set.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_get_maximum_set_gen.py index 3479e2ac773..b4f65cc94bc 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_availability_set.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_get_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python get_availability_set.py + python availability_sets_get_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,18 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.availability_sets.get( - resource_group_name="testrg", - availability_set_name="HRAvailabilitySet", + resource_group_name="rgscvmm", + availability_set_resource_name="-", ) print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/GetAvailabilitySet.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/AvailabilitySets_Get_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_get_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_get_minimum_set_gen.py new file mode 100644 index 00000000000..3e209312e9c --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_get_minimum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python availability_sets_get_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.availability_sets.get( + resource_group_name="rgscvmm", + availability_set_resource_name="V", + ) + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/AvailabilitySets_Get_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_availability_sets_by_resource_group.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_list_by_resource_group_maximum_set_gen.py similarity index 78% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_availability_sets_by_resource_group.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_list_by_resource_group_maximum_set_gen.py index cf19f30ca07..f5828d29db3 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_availability_sets_by_resource_group.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_list_by_resource_group_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python list_availability_sets_by_resource_group.py + python availability_sets_list_by_resource_group_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,18 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.availability_sets.list_by_resource_group( - resource_group_name="testrg", + resource_group_name="rgscvmm", ) for item in response: print(item) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/ListAvailabilitySetsByResourceGroup.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/AvailabilitySets_ListByResourceGroup_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_list_by_resource_group_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_list_by_resource_group_minimum_set_gen.py new file mode 100644 index 00000000000..1cc3b1e7fe3 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_list_by_resource_group_minimum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python availability_sets_list_by_resource_group_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.availability_sets.list_by_resource_group( + resource_group_name="rgscvmm", + ) + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/AvailabilitySets_ListByResourceGroup_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_availability_sets_by_subscription.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_list_by_subscription_maximum_set_gen.py similarity index 80% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_availability_sets_by_subscription.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_list_by_subscription_maximum_set_gen.py index fe48ff92976..d5beedbc1ef 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_availability_sets_by_subscription.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_list_by_subscription_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python list_availability_sets_by_subscription.py + python availability_sets_list_by_subscription_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,9 +25,9 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.availability_sets.list_by_subscription() @@ -34,6 +35,6 @@ def main(): print(item) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/ListAvailabilitySetsBySubscription.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/AvailabilitySets_ListBySubscription_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_list_by_subscription_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_list_by_subscription_minimum_set_gen.py new file mode 100644 index 00000000000..83fced1e301 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_list_by_subscription_minimum_set_gen.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python availability_sets_list_by_subscription_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.availability_sets.list_by_subscription() + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/AvailabilitySets_ListBySubscription_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_availability_set.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_update_maximum_set_gen.py similarity index 73% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_availability_set.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_update_maximum_set_gen.py index 1b478fd4e0b..da8b4838728 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_availability_set.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/availability_sets_update_maximum_set_gen.py @@ -6,15 +6,18 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import Any, IO, Union + from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python update_availability_set.py + python availability_sets_update_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,19 +27,19 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.availability_sets.begin_update( - resource_group_name="testrg", - availability_set_name="HRAvailabilitySet", - body={"tags": {"tag1": "value1", "tag2": "value2"}}, + resource_group_name="rgscvmm", + availability_set_resource_name="-", + properties={"tags": {"key1460": "vcbwibkvr"}}, ).result() print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/UpdateAvailabilitySet.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/AvailabilitySets_Update_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_cloud.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_create_or_update_maximum_set_gen.py similarity index 57% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_cloud.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_create_or_update_maximum_set_gen.py index 41adcb45c5b..1943bdc0948 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_cloud.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_create_or_update_maximum_set_gen.py @@ -6,15 +6,18 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import Any, IO, Union + from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python create_cloud.py + python clouds_create_or_update_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,29 +27,32 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.clouds.begin_create_or_update( - resource_group_name="testrg", - cloud_name="HRCloud", - body={ + resource_group_name="rgscvmm", + cloud_resource_name="2", + resource={ "extendedLocation": { - "name": "/subscriptions/a5015e1c-867f-4533-8541-85cd470d0cfb/resourceGroups/demoRG/providers/Microsoft.Arc/customLocations/contoso", + "name": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ExtendedLocation/customLocations/customLocationName", "type": "customLocation", }, - "location": "East US", + "location": "khwsdmaxfhmbu", "properties": { - "uuid": "aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", - "vmmServerId": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/testrg/providers/Microsoft.SCVMM/VMMServers/ContosoVMMServer", + "cloudCapacity": {}, + "inventoryItemId": "qjd", + "uuid": "12345678-1234-1234-1234-12345678abcd", + "vmmServerId": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ScVmm/vmmServers/vmmServerName", }, + "tags": {"key4295": "wngosgcbdifaxdobufuuqxtho"}, }, ).result() print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/CreateCloud.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/Clouds_CreateOrUpdate_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_checkpoint_virtual_machine.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_create_or_update_minimum_set_gen.py similarity index 70% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_checkpoint_virtual_machine.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_create_or_update_minimum_set_gen.py index 76084a1b912..3df9c877225 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_checkpoint_virtual_machine.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_create_or_update_minimum_set_gen.py @@ -6,15 +6,18 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import Any, IO, Union + from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python delete_checkpoint_virtual_machine.py + python clouds_create_or_update_minimum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +27,19 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) - response = client.virtual_machines.begin_delete_checkpoint( - resource_group_name="testrg", - virtual_machine_name="DemoVM", + response = client.clouds.begin_create_or_update( + resource_group_name="rgscvmm", + cloud_resource_name="-", + resource={"extendedLocation": {}, "location": "khwsdmaxfhmbu"}, ).result() print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/DeleteCheckpointVirtualMachine.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/Clouds_CreateOrUpdate_MinimumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_vmm_server.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_delete_maximum_set_gen.py similarity index 75% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_vmm_server.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_delete_maximum_set_gen.py index c3404a21977..15ab1eab35d 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_vmm_server.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_delete_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python delete_vmm_server.py + python clouds_delete_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,17 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) - response = client.vmm_servers.begin_delete( - resource_group_name="testrg", - vmm_server_name="ContosoVMMServer", + client.clouds.begin_delete( + resource_group_name="rgscvmm", + cloud_resource_name="-", ).result() - print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/DeleteVMMServer.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/Clouds_Delete_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/stop_virtual_machine.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_delete_minimum_set_gen.py similarity index 75% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/stop_virtual_machine.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_delete_minimum_set_gen.py index c561ca55c57..7013f18ea3c 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/stop_virtual_machine.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_delete_minimum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python stop_virtual_machine.py + python clouds_delete_minimum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,17 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) - response = client.virtual_machines.begin_stop( - resource_group_name="testrg", - virtual_machine_name="DemoVM", + client.clouds.begin_delete( + resource_group_name="rgscvmm", + cloud_resource_name="1", ).result() - print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/StopVirtualMachine.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/Clouds_Delete_MinimumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_cloud.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_get_maximum_set_gen.py similarity index 78% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_cloud.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_get_maximum_set_gen.py index 789b98c1d29..2c79b6dc39d 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_cloud.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_get_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python get_cloud.py + python clouds_get_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,18 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.clouds.get( - resource_group_name="testrg", - cloud_name="HRCloud", + resource_group_name="rgscvmm", + cloud_resource_name="_", ) print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/GetCloud.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/Clouds_Get_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_virtual_machine.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_get_minimum_set_gen.py similarity index 76% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_virtual_machine.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_get_minimum_set_gen.py index d97c7cd87e2..37fee2f6012 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_virtual_machine.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_get_minimum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python get_virtual_machine.py + python clouds_get_minimum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,18 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) - response = client.virtual_machines.get( - resource_group_name="testrg", - virtual_machine_name="DemoVM", + response = client.clouds.get( + resource_group_name="rgscvmm", + cloud_resource_name="i", ) print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/GetVirtualMachine.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/Clouds_Get_MinimumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_clouds_by_resource_group.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_list_by_resource_group_maximum_set_gen.py similarity index 79% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_clouds_by_resource_group.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_list_by_resource_group_maximum_set_gen.py index 1d5d832e52a..4d91ee1d80c 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_clouds_by_resource_group.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_list_by_resource_group_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python list_clouds_by_resource_group.py + python clouds_list_by_resource_group_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,18 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.clouds.list_by_resource_group( - resource_group_name="testrg", + resource_group_name="rgscvmm", ) for item in response: print(item) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/ListCloudsByResourceGroup.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/Clouds_ListByResourceGroup_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_list_by_resource_group_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_list_by_resource_group_minimum_set_gen.py new file mode 100644 index 00000000000..d9852610528 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_list_by_resource_group_minimum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python clouds_list_by_resource_group_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.clouds.list_by_resource_group( + resource_group_name="rgscvmm", + ) + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/Clouds_ListByResourceGroup_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_clouds_by_subscription.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_list_by_subscription_maximum_set_gen.py similarity index 81% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_clouds_by_subscription.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_list_by_subscription_maximum_set_gen.py index f52eb9215a2..a26587ee912 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_clouds_by_subscription.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_list_by_subscription_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python list_clouds_by_subscription.py + python clouds_list_by_subscription_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,9 +25,9 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.clouds.list_by_subscription() @@ -34,6 +35,6 @@ def main(): print(item) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/ListCloudsBySubscription.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/Clouds_ListBySubscription_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_list_by_subscription_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_list_by_subscription_minimum_set_gen.py new file mode 100644 index 00000000000..0b89ec8c86b --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_list_by_subscription_minimum_set_gen.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python clouds_list_by_subscription_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.clouds.list_by_subscription() + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/Clouds_ListBySubscription_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_cloud.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_update_maximum_set_gen.py similarity index 74% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_cloud.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_update_maximum_set_gen.py index b2c4f2aedaf..7de2113cf73 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_cloud.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/clouds_update_maximum_set_gen.py @@ -6,15 +6,18 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import Any, IO, Union + from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python update_cloud.py + python clouds_update_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,19 +27,19 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.clouds.begin_update( - resource_group_name="testrg", - cloud_name="HRCloud", - body={"tags": {"tag1": "value1", "tag2": "value2"}}, + resource_group_name="rgscvmm", + cloud_resource_name="P", + properties={"tags": {"key5266": "hjpcnwmpnixsolrxnbl"}}, ).result() print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/UpdateCloud.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/Clouds_Update_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_virtual_machine.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_virtual_machine.py deleted file mode 100644 index 5679ed55d3e..00000000000 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_virtual_machine.py +++ /dev/null @@ -1,54 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM - -""" -# PREREQUISITES - pip install azure-identity - pip install azure-mgmt-scvmm -# USAGE - python create_virtual_machine.py - - Before run the sample, please set the values of the client ID, tenant ID and client secret - of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, - AZURE_CLIENT_SECRET. For more info about how to get the value, please see: - https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal -""" - - -def main(): - client = SCVMM( - credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", - ) - - response = client.virtual_machines.begin_create_or_update( - resource_group_name="testrg", - virtual_machine_name="DemoVM", - body={ - "extendedLocation": { - "name": "/subscriptions/a5015e1c-867f-4533-8541-85cd470d0cfb/resourceGroups/demoRG/providers/Microsoft.Arc/customLocations/contoso", - "type": "customLocation", - }, - "location": "East US", - "properties": { - "cloudId": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/testrg/providers/Microsoft.SCVMM/Clouds/HRCloud", - "hardwareProfile": {"cpuCount": 4, "memoryMB": 4096}, - "templateId": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/testrg/providers/Microsoft.SCVMM/VirtualMachineTemplates/HRVirtualMachineTemplate", - "vmmServerId": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/testrg/providers/Microsoft.SCVMM/VMMServers/ContosoVMMServer", - }, - }, - ).result() - print(response) - - -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/CreateVirtualMachine.json -if __name__ == "__main__": - main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_inventory_item.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_inventory_item.py deleted file mode 100644 index 7c690d4e1a0..00000000000 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_inventory_item.py +++ /dev/null @@ -1,42 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM - -""" -# PREREQUISITES - pip install azure-identity - pip install azure-mgmt-scvmm -# USAGE - python delete_inventory_item.py - - Before run the sample, please set the values of the client ID, tenant ID and client secret - of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, - AZURE_CLIENT_SECRET. For more info about how to get the value, please see: - https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal -""" - - -def main(): - client = SCVMM( - credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", - ) - - response = client.inventory_items.delete( - resource_group_name="testrg", - vmm_server_name="ContosoVMMServer", - inventory_item_name="12345678-1234-1234-1234-123456789abc", - ) - print(response) - - -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/DeleteInventoryItem.json -if __name__ == "__main__": - main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_virtual_machine_template.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_virtual_machine_template.py deleted file mode 100644 index 7a01b0aedee..00000000000 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_virtual_machine_template.py +++ /dev/null @@ -1,41 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM - -""" -# PREREQUISITES - pip install azure-identity - pip install azure-mgmt-scvmm -# USAGE - python delete_virtual_machine_template.py - - Before run the sample, please set the values of the client ID, tenant ID and client secret - of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, - AZURE_CLIENT_SECRET. For more info about how to get the value, please see: - https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal -""" - - -def main(): - client = SCVMM( - credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", - ) - - response = client.virtual_machine_templates.begin_delete( - resource_group_name="testrg", - virtual_machine_template_name="HRVirtualMachineTemplate", - ).result() - print(response) - - -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/DeleteVirtualMachineTemplate.json -if __name__ == "__main__": - main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_create_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_create_maximum_set_gen.py new file mode 100644 index 00000000000..30c8f33f25c --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_create_maximum_set_gen.py @@ -0,0 +1,50 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, IO, Union + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python guest_agents_create_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.guest_agents.begin_create( + resource_uri="gtgclehcbsyave", + resource={ + "properties": { + "credentials": {"password": "gkvbnmuahumuoibvscoxzfdqwvfuf", "username": "jqxuwirrcpfv"}, + "httpProxyConfig": {"httpsProxy": "uoyzyticmohohomlkwct"}, + "provisioningAction": "install", + } + }, + ).result() + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/GuestAgents_Create_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_delete_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_delete_maximum_set_gen.py new file mode 100644 index 00000000000..24e0df2fa15 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_delete_maximum_set_gen.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python guest_agents_delete_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + client.guest_agents.delete( + resource_uri="gtgclehcbsyave", + ) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/GuestAgents_Delete_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_delete_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_delete_minimum_set_gen.py new file mode 100644 index 00000000000..828af8c6bcc --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_delete_minimum_set_gen.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python guest_agents_delete_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + client.guest_agents.delete( + resource_uri="gtgclehcbsyave", + ) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/GuestAgents_Delete_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_cloud.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_get_maximum_set_gen.py similarity index 77% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_cloud.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_get_maximum_set_gen.py index fd345e085d2..ded33d2838c 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_cloud.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_get_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python delete_cloud.py + python guest_agents_get_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,17 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="SUBSCRIPTION_ID", ) - response = client.clouds.begin_delete( - resource_group_name="testrg", - cloud_name="HRCloud", - ).result() + response = client.guest_agents.get( + resource_uri="gtgclehcbsyave", + ) print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/DeleteCloud.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/GuestAgents_Get_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_get_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_get_minimum_set_gen.py new file mode 100644 index 00000000000..9d71ef92cf6 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_get_minimum_set_gen.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python guest_agents_get_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.guest_agents.get( + resource_uri="gtgclehcbsyave", + ) + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/GuestAgents_Get_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_list_by_virtual_machine_instance_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_list_by_virtual_machine_instance_maximum_set_gen.py new file mode 100644 index 00000000000..87ac057ee3f --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_list_by_virtual_machine_instance_maximum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python guest_agents_list_by_virtual_machine_instance_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.guest_agents.list_by_virtual_machine_instance( + resource_uri="gtgclehcbsyave", + ) + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/GuestAgents_ListByVirtualMachineInstance_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_list_by_virtual_machine_instance_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_list_by_virtual_machine_instance_minimum_set_gen.py new file mode 100644 index 00000000000..0468b63fa15 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/guest_agents_list_by_virtual_machine_instance_minimum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python guest_agents_list_by_virtual_machine_instance_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.guest_agents.list_by_virtual_machine_instance( + resource_uri="gtgclehcbsyave", + ) + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/GuestAgents_ListByVirtualMachineInstance_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_create_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_create_maximum_set_gen.py new file mode 100644 index 00000000000..a8c3447be1c --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_create_maximum_set_gen.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, IO, Union + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python inventory_items_create_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.inventory_items.create( + resource_group_name="rgscvmm", + vmm_server_name="O", + inventory_item_resource_name="1BdDc2Ab-bDd9-Ebd6-bfdb-C0dbbdB5DEDf", + resource={"kind": "M\\d_,V.", "properties": {"inventoryType": "InventoryItemProperties"}}, + ) + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/InventoryItems_Create_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_delete_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_delete_maximum_set_gen.py new file mode 100644 index 00000000000..4e85fbbb588 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_delete_maximum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python inventory_items_delete_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + client.inventory_items.delete( + resource_group_name="rgscvmm", + vmm_server_name="b", + inventory_item_resource_name="EcECadfd-Eaaa-e5Ce-ebdA-badeEd3c6af1", + ) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/InventoryItems_Delete_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_delete_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_delete_minimum_set_gen.py new file mode 100644 index 00000000000..a6e30181014 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_delete_minimum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python inventory_items_delete_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + client.inventory_items.delete( + resource_group_name="rgscvmm", + vmm_server_name="_", + inventory_item_resource_name="cDBcbae6-BC3d-52fe-CedC-7eFeaBFabb82", + ) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/InventoryItems_Delete_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_inventory_item.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_get_maximum_set_gen.py similarity index 74% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_inventory_item.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_get_maximum_set_gen.py index 64395ae730c..a400fd5df91 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_inventory_item.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_get_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python get_inventory_item.py + python inventory_items_get_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,19 +25,19 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.inventory_items.get( - resource_group_name="testrg", - vmm_server_name="ContosoVMMServer", - inventory_item_name="12345678-1234-1234-1234-123456789abc", + resource_group_name="rgscvmm", + vmm_server_name="1", + inventory_item_resource_name="2bFBede6-EEf8-becB-dBbd-B96DbBFdB3f3", ) print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/GetInventoryItem.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/InventoryItems_Get_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_inventory_item.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_get_minimum_set_gen.py similarity index 72% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_inventory_item.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_get_minimum_set_gen.py index 36b1578a969..5d206d59c95 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_inventory_item.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_get_minimum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python create_inventory_item.py + python inventory_items_get_minimum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,19 +25,19 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) - response = client.inventory_items.create( - resource_group_name="testrg", - vmm_server_name="ContosoVMMServer", - inventory_item_name="12345678-1234-1234-1234-123456789abc", + response = client.inventory_items.get( + resource_group_name="rgscvmm", + vmm_server_name="_", + inventory_item_resource_name="cacb8Ceb-efAC-bebb-ae7C-dec8C5Bb7100", ) print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/CreateInventoryItem.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/InventoryItems_Get_MinimumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_inventory_items_by_vmm_server.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_list_by_vmm_server_maximum_set_gen.py similarity index 77% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_inventory_items_by_vmm_server.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_list_by_vmm_server_maximum_set_gen.py index c51bde92d0c..67fad2f04b4 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_inventory_items_by_vmm_server.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_list_by_vmm_server_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python list_inventory_items_by_vmm_server.py + python inventory_items_list_by_vmm_server_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,19 +25,19 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.inventory_items.list_by_vmm_server( - resource_group_name="testrg", - vmm_server_name="ContosoVMMServer", + resource_group_name="rgscvmm", + vmm_server_name="X", ) for item in response: print(item) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/ListInventoryItemsByVMMServer.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/InventoryItems_ListByVmmServer_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_list_by_vmm_server_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_list_by_vmm_server_minimum_set_gen.py new file mode 100644 index 00000000000..cbccc349a8f --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/inventory_items_list_by_vmm_server_minimum_set_gen.py @@ -0,0 +1,43 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python inventory_items_list_by_vmm_server_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.inventory_items.list_by_vmm_server( + resource_group_name="rgscvmm", + vmm_server_name="H", + ) + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/InventoryItems_ListByVmmServer_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_operations.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/operations_list_maximum_set_gen.py similarity index 86% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_operations.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/operations_list_maximum_set_gen.py index 52dc365c239..bd3aabab2f0 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_operations.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/operations_list_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python list_operations.py + python operations_list_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,7 +25,7 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), subscription_id="SUBSCRIPTION_ID", ) @@ -34,6 +35,6 @@ def main(): print(item) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/ListOperations.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/Operations_List_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_machines_by_subscription.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/operations_list_minimum_set_gen.py similarity index 78% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_machines_by_subscription.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/operations_list_minimum_set_gen.py index 5c76837814d..90517f62540 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_machines_by_subscription.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/operations_list_minimum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python list_virtual_machines_by_subscription.py + python operations_list_minimum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,16 +25,16 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="SUBSCRIPTION_ID", ) - response = client.virtual_machines.list_by_subscription() + response = client.operations.list() for item in response: print(item) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/ListVirtualMachinesBySubscription.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/Operations_List_MinimumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/restart_virtual_machine.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/restart_virtual_machine.py deleted file mode 100644 index 7dbe48ecad1..00000000000 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/restart_virtual_machine.py +++ /dev/null @@ -1,41 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM - -""" -# PREREQUISITES - pip install azure-identity - pip install azure-mgmt-scvmm -# USAGE - python restart_virtual_machine.py - - Before run the sample, please set the values of the client ID, tenant ID and client secret - of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, - AZURE_CLIENT_SECRET. For more info about how to get the value, please see: - https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal -""" - - -def main(): - client = SCVMM( - credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", - ) - - response = client.virtual_machines.begin_restart( - resource_group_name="testrg", - virtual_machine_name="DemoVM", - ).result() - print(response) - - -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/RestartVirtualMachine.json -if __name__ == "__main__": - main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_virtual_machine.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_virtual_machine.py deleted file mode 100644 index ff629cb9cc0..00000000000 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_virtual_machine.py +++ /dev/null @@ -1,58 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM - -""" -# PREREQUISITES - pip install azure-identity - pip install azure-mgmt-scvmm -# USAGE - python update_virtual_machine.py - - Before run the sample, please set the values of the client ID, tenant ID and client secret - of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, - AZURE_CLIENT_SECRET. For more info about how to get the value, please see: - https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal -""" - - -def main(): - client = SCVMM( - credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", - ) - - response = client.virtual_machines.begin_update( - resource_group_name="testrg", - virtual_machine_name="DemoVM", - body={ - "properties": { - "hardwareProfile": {"cpuCount": 4, "memoryMB": 4096}, - "networkProfile": { - "networkInterfaces": [ - { - "ipv4AddressType": "Dynamic", - "ipv6AddressType": "Dynamic", - "macAddressType": "Static", - "name": "test", - } - ] - }, - "storageProfile": {"disks": [{"diskSizeGB": 10, "name": "test"}]}, - }, - "tags": {"tag1": "value1", "tag2": "value2"}, - }, - ).result() - print(response) - - -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/UpdateVirtualMachine.json -if __name__ == "__main__": - main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_create_checkpoint_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_create_checkpoint_maximum_set_gen.py new file mode 100644 index 00000000000..5b2ad2dbf8c --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_create_checkpoint_maximum_set_gen.py @@ -0,0 +1,43 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, IO, Union + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_create_checkpoint_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + client.virtual_machine_instances.begin_create_checkpoint( + resource_uri="gtgclehcbsyave", + body={"description": "zoozhfbepldrgpjqsbhpqebtodrhvy", "name": "ilvltf"}, + ).result() + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_CreateCheckpoint_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_create_or_update_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_create_or_update_maximum_set_gen.py new file mode 100644 index 00000000000..0eedf7d9628 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_create_or_update_maximum_set_gen.py @@ -0,0 +1,117 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, IO, Union + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_create_or_update_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.virtual_machine_instances.begin_create_or_update( + resource_uri="gtgclehcbsyave", + resource={ + "extendedLocation": { + "name": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ExtendedLocation/customLocations/customLocationName", + "type": "customLocation", + }, + "properties": { + "availabilitySets": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ScVmm/availabilitySets/availabilitySetResourceName", + "name": "lwbhaseo", + } + ], + "hardwareProfile": { + "cpuCount": 22, + "dynamicMemoryEnabled": "true", + "dynamicMemoryMaxMB": 2, + "dynamicMemoryMinMB": 30, + "isHighlyAvailable": "true", + "limitCpuForMigration": "true", + "memoryMB": 5, + }, + "infrastructureProfile": { + "biosGuid": "xixivxifyql", + "checkpointType": "jkbpzjxpeegackhsvikrnlnwqz", + "cloudId": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ScVmm/clouds/cloudResourceName", + "generation": 28, + "inventoryItemId": "ihkkqmg", + "lastRestoredVMCheckpoint": { + "checkpointID": "wsqmrje", + "description": "qurzfrgyflrh", + "name": "keqn", + "parentCheckpointID": "hqhhzikoxunuqguouw", + }, + "templateId": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ScVmm/virtualMachineTemplates/virtualMachineTemplateName", + "uuid": "hrpw", + "vmName": "qovpayfydhcvfrhe", + "vmmServerId": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ScVmm/vmmServers/vmmServerName", + }, + "networkProfile": { + "networkInterfaces": [ + { + "ipv4AddressType": "Dynamic", + "ipv6AddressType": "Dynamic", + "macAddress": "oaeqqegt", + "macAddressType": "Dynamic", + "name": "kvofzqulbjlbtt", + "nicId": "roxpsvlo", + "virtualNetworkId": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ScVmm/virtualNetworks/virtualNetworkName", + } + ] + }, + "osProfile": { + "adminPassword": "vavtppmmhlspydtkzxda", + "computerName": "uuxpcxuxcufllc", + "osType": "Windows", + }, + "storageProfile": { + "disks": [ + { + "bus": 8, + "busType": "zu", + "createDiffDisk": "true", + "diskId": "ltdrwcfjklpsimhzqyh", + "diskSizeGB": 30, + "lun": 10, + "name": "fgnckfymwdsqnfxkdvexuaobe", + "storageQoSPolicy": {"id": "o", "name": "ceiyfrflu"}, + "templateDiskId": "lcdwrokpyvekqccclf", + "vhdType": "cnbeeeylrvopigdynvgpkfp", + } + ] + }, + }, + }, + ).result() + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_CreateOrUpdate_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_create_or_update_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_create_or_update_minimum_set_gen.py new file mode 100644 index 00000000000..f1312c50c3e --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_create_or_update_minimum_set_gen.py @@ -0,0 +1,44 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, IO, Union + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_create_or_update_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.virtual_machine_instances.begin_create_or_update( + resource_uri="gtgclehcbsyave", + resource={"extendedLocation": {}}, + ).result() + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_CreateOrUpdate_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_delete_checkpoint_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_delete_checkpoint_maximum_set_gen.py new file mode 100644 index 00000000000..efd7a136f6f --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_delete_checkpoint_maximum_set_gen.py @@ -0,0 +1,43 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, IO, Union + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_delete_checkpoint_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + client.virtual_machine_instances.begin_delete_checkpoint( + resource_uri="gtgclehcbsyave", + body={"id": "eenfflimcbgqfsebdusophahjpk"}, + ).result() + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_DeleteCheckpoint_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_delete_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_delete_maximum_set_gen.py new file mode 100644 index 00000000000..920560e88e2 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_delete_maximum_set_gen.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_delete_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + client.virtual_machine_instances.begin_delete( + resource_uri="gtgclehcbsyave", + ).result() + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_Delete_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_delete_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_delete_minimum_set_gen.py new file mode 100644 index 00000000000..1304c298667 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_delete_minimum_set_gen.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_delete_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + client.virtual_machine_instances.begin_delete( + resource_uri="gtgclehcbsyave", + ).result() + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_Delete_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_get_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_get_maximum_set_gen.py new file mode 100644 index 00000000000..d4a2d9a58d7 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_get_maximum_set_gen.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_get_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.virtual_machine_instances.get( + resource_uri="gtgclehcbsyave", + ) + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_Get_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_get_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_get_minimum_set_gen.py new file mode 100644 index 00000000000..34751e82451 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_get_minimum_set_gen.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_get_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.virtual_machine_instances.get( + resource_uri="gtgclehcbsyave", + ) + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_Get_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_machines_by_resource_group.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_list_maximum_set_gen.py similarity index 76% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_machines_by_resource_group.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_list_maximum_set_gen.py index 1f07268d39c..d40851a5260 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_machines_by_resource_group.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_list_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python list_virtual_machines_by_resource_group.py + python virtual_machine_instances_list_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,18 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="SUBSCRIPTION_ID", ) - response = client.virtual_machines.list_by_resource_group( - resource_group_name="testrg", + response = client.virtual_machine_instances.list( + resource_uri="gtgclehcbsyave", ) for item in response: print(item) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/ListVirtualMachinesByResourceGroup.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_List_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_list_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_list_minimum_set_gen.py new file mode 100644 index 00000000000..4337d6efff7 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_list_minimum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_list_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.virtual_machine_instances.list( + resource_uri="gtgclehcbsyave", + ) + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_List_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_restart_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_restart_maximum_set_gen.py new file mode 100644 index 00000000000..0062e3417f5 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_restart_maximum_set_gen.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_restart_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + client.virtual_machine_instances.begin_restart( + resource_uri="gtgclehcbsyave", + ).result() + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_Restart_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_restart_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_restart_minimum_set_gen.py new file mode 100644 index 00000000000..e800490dfdc --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_restart_minimum_set_gen.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_restart_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + client.virtual_machine_instances.begin_restart( + resource_uri="gtgclehcbsyave", + ).result() + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_Restart_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_restore_checkpoint_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_restore_checkpoint_maximum_set_gen.py new file mode 100644 index 00000000000..adfdd15c9e1 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_restore_checkpoint_maximum_set_gen.py @@ -0,0 +1,43 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, IO, Union + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_restore_checkpoint_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + client.virtual_machine_instances.begin_restore_checkpoint( + resource_uri="gtgclehcbsyave", + body={"id": "rweqduwzsn"}, + ).result() + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_RestoreCheckpoint_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_start_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_start_maximum_set_gen.py new file mode 100644 index 00000000000..805bfe25494 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_start_maximum_set_gen.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_start_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + client.virtual_machine_instances.begin_start( + resource_uri="gtgclehcbsyave", + ).result() + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_Start_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_start_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_start_minimum_set_gen.py new file mode 100644 index 00000000000..dcf7395ed79 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_start_minimum_set_gen.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_start_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + client.virtual_machine_instances.begin_start( + resource_uri="gtgclehcbsyave", + ).result() + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_Start_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_stop_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_stop_maximum_set_gen.py new file mode 100644 index 00000000000..e83cdb27933 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_stop_maximum_set_gen.py @@ -0,0 +1,43 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, IO, Union + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_stop_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + client.virtual_machine_instances.begin_stop( + resource_uri="gtgclehcbsyave", + body={"skipShutdown": "true"}, + ).result() + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_Stop_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_update_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_update_maximum_set_gen.py new file mode 100644 index 00000000000..da8e321e402 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_instances_update_maximum_set_gen.py @@ -0,0 +1,89 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, IO, Union + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_instances_update_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.virtual_machine_instances.begin_update( + resource_uri="gtgclehcbsyave", + properties={ + "properties": { + "availabilitySets": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ScVmm/availabilitySets/availabilitySetResourceName", + "name": "lwbhaseo", + } + ], + "hardwareProfile": { + "cpuCount": 22, + "dynamicMemoryEnabled": "true", + "dynamicMemoryMaxMB": 2, + "dynamicMemoryMinMB": 30, + "limitCpuForMigration": "true", + "memoryMB": 5, + }, + "infrastructureProfile": {"checkpointType": "jkbpzjxpeegackhsvikrnlnwqz"}, + "networkProfile": { + "networkInterfaces": [ + { + "ipv4AddressType": "Dynamic", + "ipv6AddressType": "Dynamic", + "macAddress": "oaeqqegt", + "macAddressType": "Dynamic", + "name": "kvofzqulbjlbtt", + "nicId": "roxpsvlo", + "virtualNetworkId": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ScVmm/virtualNetworks/virtualNetworkName", + } + ] + }, + "storageProfile": { + "disks": [ + { + "bus": 8, + "busType": "zu", + "diskId": "ltdrwcfjklpsimhzqyh", + "diskSizeGB": 30, + "lun": 10, + "name": "fgnckfymwdsqnfxkdvexuaobe", + "storageQoSPolicy": {"id": "o", "name": "ceiyfrflu"}, + "vhdType": "cnbeeeylrvopigdynvgpkfp", + } + ] + }, + } + }, + ).result() + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineInstances_Update_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_virtual_machine_template.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_create_or_update_maximum_set_gen.py similarity index 53% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_virtual_machine_template.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_create_or_update_maximum_set_gen.py index b1d17a5afc9..fff60ea6e9c 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_virtual_machine_template.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_create_or_update_maximum_set_gen.py @@ -6,15 +6,18 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import Any, IO, Union + from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python create_virtual_machine_template.py + python virtual_machine_templates_create_or_update_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,29 +27,36 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.virtual_machine_templates.begin_create_or_update( - resource_group_name="testrg", - virtual_machine_template_name="HRVirtualMachineTemplate", - body={ + resource_group_name="rgscvmm", + virtual_machine_template_name="6", + resource={ "extendedLocation": { - "name": "/subscriptions/a5015e1c-867f-4533-8541-85cd470d0cfb/resourceGroups/demoRG/providers/Microsoft.Arc/customLocations/contoso", + "name": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ExtendedLocation/customLocations/customLocationName", "type": "customLocation", }, - "location": "East US", + "location": "ayxsyduviotylbojh", "properties": { - "uuid": "aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", - "vmmServerId": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/testrg/providers/Microsoft.SCVMM/VMMServers/ContosoVMMServer", + "dynamicMemoryEnabled": "true", + "inventoryItemId": "qjrykoogccwlgkd", + "isCustomizable": "true", + "isHighlyAvailable": "true", + "limitCpuForMigration": "true", + "osType": "Windows", + "uuid": "12345678-1234-1234-1234-12345678abcd", + "vmmServerId": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ScVmm/vmmServers/vmmServerName", }, + "tags": {"key9494": "kkbmfpwhmvlobm"}, }, ).result() print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/CreateVirtualMachineTemplate.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineTemplates_CreateOrUpdate_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_create_or_update_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_create_or_update_minimum_set_gen.py new file mode 100644 index 00000000000..6ca93cae113 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_create_or_update_minimum_set_gen.py @@ -0,0 +1,45 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, IO, Union + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_templates_create_or_update_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.virtual_machine_templates.begin_create_or_update( + resource_group_name="rgscvmm", + virtual_machine_template_name="P", + resource={"extendedLocation": {}, "location": "ayxsyduviotylbojh"}, + ).result() + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineTemplates_CreateOrUpdate_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/restore_checkpoint_virtual_machine.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_delete_maximum_set_gen.py similarity index 73% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/restore_checkpoint_virtual_machine.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_delete_maximum_set_gen.py index 617969a2d79..cb8046dbaab 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/restore_checkpoint_virtual_machine.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_delete_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python restore_checkpoint_virtual_machine.py + python virtual_machine_templates_delete_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,17 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) - response = client.virtual_machines.begin_restore_checkpoint( - resource_group_name="testrg", - virtual_machine_name="DemoVM", + client.virtual_machine_templates.begin_delete( + resource_group_name="rgscvmm", + virtual_machine_template_name="6", ).result() - print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/RestoreCheckpointVirtualMachine.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineTemplates_Delete_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_checkpoint_virtual_machine.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_delete_minimum_set_gen.py similarity index 73% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_checkpoint_virtual_machine.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_delete_minimum_set_gen.py index 019b69ea918..5d82a72b071 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_checkpoint_virtual_machine.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_delete_minimum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python create_checkpoint_virtual_machine.py + python virtual_machine_templates_delete_minimum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,17 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) - response = client.virtual_machines.begin_create_checkpoint( - resource_group_name="testrg", - virtual_machine_name="DemoVM", + client.virtual_machine_templates.begin_delete( + resource_group_name="rgscvmm", + virtual_machine_template_name="5", ).result() - print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/CreateCheckpointVirtualMachine.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineTemplates_Delete_MinimumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_virtual_machine_template.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_get_maximum_set_gen.py similarity index 76% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_virtual_machine_template.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_get_maximum_set_gen.py index d6d986e2381..98be1c10fcb 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_virtual_machine_template.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_get_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python get_virtual_machine_template.py + python virtual_machine_templates_get_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,18 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.virtual_machine_templates.get( - resource_group_name="testrg", - virtual_machine_template_name="HRVirtualMachineTemplate", + resource_group_name="rgscvmm", + virtual_machine_template_name="4", ) print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/GetVirtualMachineTemplate.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineTemplates_Get_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_get_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_get_minimum_set_gen.py new file mode 100644 index 00000000000..04980c36806 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_get_minimum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_templates_get_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.virtual_machine_templates.get( + resource_group_name="rgscvmm", + virtual_machine_template_name="m", + ) + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineTemplates_Get_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_machine_templates_by_resource_group.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_list_by_resource_group_maximum_set_gen.py similarity index 77% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_machine_templates_by_resource_group.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_list_by_resource_group_maximum_set_gen.py index f104f0d59b5..8d6d6ae0f35 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_machine_templates_by_resource_group.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_list_by_resource_group_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python list_virtual_machine_templates_by_resource_group.py + python virtual_machine_templates_list_by_resource_group_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,18 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.virtual_machine_templates.list_by_resource_group( - resource_group_name="testrg", + resource_group_name="rgscvmm", ) for item in response: print(item) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/ListVirtualMachineTemplatesByResourceGroup.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineTemplates_ListByResourceGroup_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_list_by_resource_group_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_list_by_resource_group_minimum_set_gen.py new file mode 100644 index 00000000000..d121ba9bb50 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_list_by_resource_group_minimum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_templates_list_by_resource_group_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.virtual_machine_templates.list_by_resource_group( + resource_group_name="rgscvmm", + ) + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineTemplates_ListByResourceGroup_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_machine_templates_by_subscription.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_list_by_subscription_maximum_set_gen.py similarity index 79% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_machine_templates_by_subscription.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_list_by_subscription_maximum_set_gen.py index 5b83ad60554..5ded6a794e5 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_machine_templates_by_subscription.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_list_by_subscription_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python list_virtual_machine_templates_by_subscription.py + python virtual_machine_templates_list_by_subscription_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,9 +25,9 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.virtual_machine_templates.list_by_subscription() @@ -34,6 +35,6 @@ def main(): print(item) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/ListVirtualMachineTemplatesBySubscription.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineTemplates_ListBySubscription_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_list_by_subscription_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_list_by_subscription_minimum_set_gen.py new file mode 100644 index 00000000000..33b80d8d401 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_list_by_subscription_minimum_set_gen.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_machine_templates_list_by_subscription_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.virtual_machine_templates.list_by_subscription() + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineTemplates_ListBySubscription_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_virtual_machine_template.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_update_maximum_set_gen.py similarity index 72% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_virtual_machine_template.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_update_maximum_set_gen.py index 42aa0f887f2..087a6a01522 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_virtual_machine_template.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_machine_templates_update_maximum_set_gen.py @@ -6,15 +6,18 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import Any, IO, Union + from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python update_virtual_machine_template.py + python virtual_machine_templates_update_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,19 +27,19 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.virtual_machine_templates.begin_update( - resource_group_name="testrg", - virtual_machine_template_name="HRVirtualMachineTemplate", - body={"tags": {"tag1": "value1", "tag2": "value2"}}, + resource_group_name="rgscvmm", + virtual_machine_template_name="g", + properties={"tags": {"key6634": "wwfhrg"}}, ).result() print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/UpdateVirtualMachineTemplate.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualMachineTemplates_Update_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_virtual_network.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_create_or_update_maximum_set_gen.py similarity index 59% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_virtual_network.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_create_or_update_maximum_set_gen.py index f7667df8ebf..40a91f48c2c 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_virtual_network.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_create_or_update_maximum_set_gen.py @@ -6,15 +6,18 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import Any, IO, Union + from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python create_virtual_network.py + python virtual_networks_create_or_update_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,29 +27,31 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.virtual_networks.begin_create_or_update( - resource_group_name="testrg", - virtual_network_name="HRVirtualNetwork", - body={ + resource_group_name="rgscvmm", + virtual_network_name="_", + resource={ "extendedLocation": { - "name": "/subscriptions/a5015e1c-867f-4533-8541-85cd470d0cfb/resourceGroups/demoRG/providers/Microsoft.Arc/customLocations/contoso", + "name": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ExtendedLocation/customLocations/customLocationName", "type": "customLocation", }, - "location": "East US", + "location": "fky", "properties": { - "uuid": "aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", - "vmmServerId": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/testrg/providers/Microsoft.SCVMM/VMMServers/ContosoVMMServer", + "inventoryItemId": "bxn", + "uuid": "12345678-1234-1234-1234-12345678abcd", + "vmmServerId": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ScVmm/vmmServers/vmmServerName", }, + "tags": {"key705": "apgplvjdyocx"}, }, ).result() print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/CreateVirtualNetwork.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualNetworks_CreateOrUpdate_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_create_or_update_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_create_or_update_minimum_set_gen.py new file mode 100644 index 00000000000..3b6f105e0e8 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_create_or_update_minimum_set_gen.py @@ -0,0 +1,45 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, IO, Union + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_networks_create_or_update_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.virtual_networks.begin_create_or_update( + resource_group_name="rgscvmm", + virtual_network_name="-", + resource={"extendedLocation": {}, "location": "fky"}, + ).result() + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualNetworks_CreateOrUpdate_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_virtual_machine.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_delete_maximum_set_gen.py similarity index 74% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_virtual_machine.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_delete_maximum_set_gen.py index 72e98c83537..0f2c800c4d4 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_virtual_machine.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_delete_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python delete_virtual_machine.py + python virtual_networks_delete_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,17 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) - response = client.virtual_machines.begin_delete( - resource_group_name="testrg", - virtual_machine_name="DemoVM", + client.virtual_networks.begin_delete( + resource_group_name="rgscvmm", + virtual_network_name=".", ).result() - print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/DeleteVirtualMachine.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualNetworks_Delete_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_virtual_network.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_delete_minimum_set_gen.py similarity index 74% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_virtual_network.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_delete_minimum_set_gen.py index 405a9892156..bdbff47dd95 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/delete_virtual_network.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_delete_minimum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python delete_virtual_network.py + python virtual_networks_delete_minimum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,17 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) - response = client.virtual_networks.begin_delete( - resource_group_name="testrg", - virtual_network_name="HRVirtualNetwork", + client.virtual_networks.begin_delete( + resource_group_name="rgscvmm", + virtual_network_name="1", ).result() - print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/DeleteVirtualNetwork.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualNetworks_Delete_MinimumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_virtual_network.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_get_maximum_set_gen.py similarity index 78% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_virtual_network.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_get_maximum_set_gen.py index 625426056ba..f704fd13576 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_virtual_network.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_get_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python get_virtual_network.py + python virtual_networks_get_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,18 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.virtual_networks.get( - resource_group_name="testrg", - virtual_network_name="HRVirtualNetwork", + resource_group_name="rgscvmm", + virtual_network_name="2", ) print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/GetVirtualNetwork.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualNetworks_Get_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_get_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_get_minimum_set_gen.py new file mode 100644 index 00000000000..ce61b4847bb --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_get_minimum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_networks_get_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.virtual_networks.get( + resource_group_name="rgscvmm", + virtual_network_name="-", + ) + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualNetworks_Get_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_networks_by_resource_group.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_list_by_resource_group_maximum_set_gen.py similarity index 78% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_networks_by_resource_group.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_list_by_resource_group_maximum_set_gen.py index ca835758163..f2a644bd936 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_networks_by_resource_group.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_list_by_resource_group_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python list_virtual_networks_by_resource_group.py + python virtual_networks_list_by_resource_group_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,18 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.virtual_networks.list_by_resource_group( - resource_group_name="testrg", + resource_group_name="rgscvmm", ) for item in response: print(item) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/ListVirtualNetworksByResourceGroup.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualNetworks_ListByResourceGroup_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_list_by_resource_group_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_list_by_resource_group_minimum_set_gen.py new file mode 100644 index 00000000000..86e41bbeff0 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_list_by_resource_group_minimum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_networks_list_by_resource_group_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.virtual_networks.list_by_resource_group( + resource_group_name="rgscvmm", + ) + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualNetworks_ListByResourceGroup_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_networks_by_subscription.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_list_by_subscription_maximum_set_gen.py similarity index 80% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_networks_by_subscription.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_list_by_subscription_maximum_set_gen.py index 1617caa7dca..565e57c8f28 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_virtual_networks_by_subscription.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_list_by_subscription_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python list_virtual_networks_by_subscription.py + python virtual_networks_list_by_subscription_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,9 +25,9 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.virtual_networks.list_by_subscription() @@ -34,6 +35,6 @@ def main(): print(item) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/ListVirtualNetworksBySubscription.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualNetworks_ListBySubscription_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_list_by_subscription_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_list_by_subscription_minimum_set_gen.py new file mode 100644 index 00000000000..4717fe1684b --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_list_by_subscription_minimum_set_gen.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python virtual_networks_list_by_subscription_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.virtual_networks.list_by_subscription() + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualNetworks_ListBySubscription_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_virtual_network.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_update_maximum_set_gen.py similarity index 73% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_virtual_network.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_update_maximum_set_gen.py index 0b9ebcca7e2..82be0ce6a6d 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_virtual_network.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/virtual_networks_update_maximum_set_gen.py @@ -6,15 +6,18 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import Any, IO, Union + from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python update_virtual_network.py + python virtual_networks_update_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,19 +27,19 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.virtual_networks.begin_update( - resource_group_name="testrg", - virtual_network_name="HRVirtualNetwork", - body={"tags": {"tag1": "value1", "tag2": "value2"}}, + resource_group_name="rgscvmm", + virtual_network_name="S", + properties={"tags": {"key9516": "oxduo"}}, ).result() print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/UpdateVirtualNetwork.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VirtualNetworks_Update_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vm_instance_hybrid_identity_metadatas_get_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vm_instance_hybrid_identity_metadatas_get_maximum_set_gen.py new file mode 100644 index 00000000000..4594a893363 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vm_instance_hybrid_identity_metadatas_get_maximum_set_gen.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python vm_instance_hybrid_identity_metadatas_get_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.vm_instance_hybrid_identity_metadatas.get( + resource_uri="gtgclehcbsyave", + ) + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VmInstanceHybridIdentityMetadatas_Get_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vm_instance_hybrid_identity_metadatas_get_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vm_instance_hybrid_identity_metadatas_get_minimum_set_gen.py new file mode 100644 index 00000000000..70e6b221641 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vm_instance_hybrid_identity_metadatas_get_minimum_set_gen.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python vm_instance_hybrid_identity_metadatas_get_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.vm_instance_hybrid_identity_metadatas.get( + resource_uri="gtgclehcbsyave", + ) + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VmInstanceHybridIdentityMetadatas_Get_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vm_instance_hybrid_identity_metadatas_list_by_virtual_machine_instance_maximum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vm_instance_hybrid_identity_metadatas_list_by_virtual_machine_instance_maximum_set_gen.py new file mode 100644 index 00000000000..c7f226e3439 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vm_instance_hybrid_identity_metadatas_list_by_virtual_machine_instance_maximum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python vm_instance_hybrid_identity_metadatas_list_by_virtual_machine_instance_maximum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.vm_instance_hybrid_identity_metadatas.list_by_virtual_machine_instance( + resource_uri="gtgclehcbsyave", + ) + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VmInstanceHybridIdentityMetadatas_ListByVirtualMachineInstance_MaximumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vm_instance_hybrid_identity_metadatas_list_by_virtual_machine_instance_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vm_instance_hybrid_identity_metadatas_list_by_virtual_machine_instance_minimum_set_gen.py new file mode 100644 index 00000000000..5ce0b43123a --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vm_instance_hybrid_identity_metadatas_list_by_virtual_machine_instance_minimum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python vm_instance_hybrid_identity_metadatas_list_by_virtual_machine_instance_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.vm_instance_hybrid_identity_metadatas.list_by_virtual_machine_instance( + resource_uri="gtgclehcbsyave", + ) + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VmInstanceHybridIdentityMetadatas_ListByVirtualMachineInstance_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_vmm_server.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_create_or_update_maximum_set_gen.py similarity index 61% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_vmm_server.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_create_or_update_maximum_set_gen.py index 298aa739638..ee1b13c6a3b 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/create_vmm_server.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_create_or_update_maximum_set_gen.py @@ -6,15 +6,18 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import Any, IO, Union + from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python create_vmm_server.py + python vmm_servers_create_or_update_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,30 +27,31 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.vmm_servers.begin_create_or_update( - resource_group_name="testrg", - vmm_server_name="ContosoVMMServer", - body={ + resource_group_name="rgscvmm", + vmm_server_name="-", + resource={ "extendedLocation": { - "name": "/subscriptions/a5015e1c-867f-4533-8541-85cd470d0cfb/resourceGroups/demoRG/providers/Microsoft.Arc/customLocations/contoso", + "name": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.ExtendedLocation/customLocations/customLocationName", "type": "customLocation", }, - "location": "East US", + "location": "hslxkyzktvwpqbypvs", "properties": { - "credentials": {"password": "password", "username": "testuser"}, - "fqdn": "VMM.contoso.com", - "port": 1234, + "credentials": {"password": "gaecsnkjr", "username": "jbuoltypmrgqfi"}, + "fqdn": "pvzcjaqrswbvptgx", + "port": 4, }, + "tags": {"key4834": "vycgfkzjcyyuotwwq"}, }, ).result() print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/CreateVMMServer.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VmmServers_CreateOrUpdate_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_create_or_update_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_create_or_update_minimum_set_gen.py new file mode 100644 index 00000000000..3c061224dad --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_create_or_update_minimum_set_gen.py @@ -0,0 +1,45 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, IO, Union + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python vmm_servers_create_or_update_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.vmm_servers.begin_create_or_update( + resource_group_name="rgscvmm", + vmm_server_name="w", + resource={"extendedLocation": {}, "location": "hslxkyzktvwpqbypvs"}, + ).result() + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VmmServers_CreateOrUpdate_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/start_virtual_machine.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_delete_maximum_set_gen.py similarity index 75% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/start_virtual_machine.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_delete_maximum_set_gen.py index 5e085c79dfa..2be8fa2b38e 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/start_virtual_machine.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_delete_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python start_virtual_machine.py + python vmm_servers_delete_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,17 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) - response = client.virtual_machines.begin_start( - resource_group_name="testrg", - virtual_machine_name="DemoVM", + client.vmm_servers.begin_delete( + resource_group_name="rgscvmm", + vmm_server_name=".", ).result() - print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/StartVirtualMachine.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VmmServers_Delete_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_delete_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_delete_minimum_set_gen.py new file mode 100644 index 00000000000..c3b86094147 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_delete_minimum_set_gen.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python vmm_servers_delete_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + client.vmm_servers.begin_delete( + resource_group_name="rgscvmm", + vmm_server_name="8", + ).result() + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VmmServers_Delete_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_vmm_server.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_get_maximum_set_gen.py similarity index 78% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_vmm_server.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_get_maximum_set_gen.py index e56728fba2c..2a407844c98 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/get_vmm_server.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_get_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python get_vmm_server.py + python vmm_servers_get_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,18 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.vmm_servers.get( - resource_group_name="testrg", - vmm_server_name="ContosoVMMServer", + resource_group_name="rgscvmm", + vmm_server_name=".", ) print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/GetVMMServer.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VmmServers_Get_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_get_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_get_minimum_set_gen.py new file mode 100644 index 00000000000..df877e760db --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_get_minimum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python vmm_servers_get_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.vmm_servers.get( + resource_group_name="rgscvmm", + vmm_server_name="D", + ) + print(response) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VmmServers_Get_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_vmm_servers_by_resource_group.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_list_by_resource_group_maximum_set_gen.py similarity index 79% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_vmm_servers_by_resource_group.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_list_by_resource_group_maximum_set_gen.py index 7e86e21d88b..9d0e3a92e28 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_vmm_servers_by_resource_group.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_list_by_resource_group_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python list_vmm_servers_by_resource_group.py + python vmm_servers_list_by_resource_group_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,18 +25,18 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.vmm_servers.list_by_resource_group( - resource_group_name="testrg", + resource_group_name="rgscvmm", ) for item in response: print(item) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/ListVMMServersByResourceGroup.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VmmServers_ListByResourceGroup_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_list_by_resource_group_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_list_by_resource_group_minimum_set_gen.py new file mode 100644 index 00000000000..83c780e4d6f --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_list_by_resource_group_minimum_set_gen.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python vmm_servers_list_by_resource_group_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.vmm_servers.list_by_resource_group( + resource_group_name="rgscvmm", + ) + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VmmServers_ListByResourceGroup_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_vmm_servers_by_subscription.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_list_by_subscription_maximum_set_gen.py similarity index 81% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_vmm_servers_by_subscription.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_list_by_subscription_maximum_set_gen.py index d93d3a2f762..de4ebbb5d32 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/list_vmm_servers_by_subscription.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_list_by_subscription_maximum_set_gen.py @@ -7,14 +7,15 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python list_vmm_servers_by_subscription.py + python vmm_servers_list_by_subscription_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,9 +25,9 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.vmm_servers.list_by_subscription() @@ -34,6 +35,6 @@ def main(): print(item) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/ListVMMServersBySubscription.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VmmServers_ListBySubscription_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_list_by_subscription_minimum_set_gen.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_list_by_subscription_minimum_set_gen.py new file mode 100644 index 00000000000..8743f72ff36 --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_list_by_subscription_minimum_set_gen.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.scvmm import ScVmmMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-scvmm +# USAGE + python vmm_servers_list_by_subscription_minimum_set_gen.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ScVmmMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", + ) + + response = client.vmm_servers.list_by_subscription() + for item in response: + print(item) + + +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VmmServers_ListBySubscription_MinimumSet_Gen.json +if __name__ == "__main__": + main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_vmm_server.py b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_update_maximum_set_gen.py similarity index 73% rename from sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_vmm_server.py rename to sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_update_maximum_set_gen.py index 434cb346e26..179d50f5c14 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/generated_samples/update_vmm_server.py +++ b/sdk/scvmm/azure-mgmt-scvmm/generated_samples/vmm_servers_update_maximum_set_gen.py @@ -6,15 +6,18 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import Any, IO, Union + from azure.identity import DefaultAzureCredential -from azure.mgmt.scvmm import SCVMM + +from azure.mgmt.scvmm import ScVmmMgmtClient """ # PREREQUISITES pip install azure-identity pip install azure-mgmt-scvmm # USAGE - python update_vmm_server.py + python vmm_servers_update_maximum_set_gen.py Before run the sample, please set the values of the client ID, tenant ID and client secret of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, @@ -24,19 +27,19 @@ from azure.mgmt.scvmm import SCVMM def main(): - client = SCVMM( + client = ScVmmMgmtClient( credential=DefaultAzureCredential(), - subscription_id="fd3c3665-1729-4b7b-9a38-238e83b0f98b", + subscription_id="79332E5A-630B-480F-A266-A941C015AB19", ) response = client.vmm_servers.begin_update( - resource_group_name="testrg", - vmm_server_name="ContosoVMMServer", - body={"tags": {"tag1": "value1", "tag2": "value2"}}, + resource_group_name="rgscvmm", + vmm_server_name="Y", + properties={"tags": {"key7187": "oktnfvklfchnquelzzdagtpwfskzc"}}, ).result() print(response) -# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/preview/2020-06-05-preview/examples/UpdateVMMServer.json +# x-ms-original-file: specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/examples/VmmServers_Update_MaximumSet_Gen.json if __name__ == "__main__": main() diff --git a/sdk/scvmm/azure-mgmt-scvmm/sdk_packaging.toml b/sdk/scvmm/azure-mgmt-scvmm/sdk_packaging.toml index 3885a54938c..51199e58895 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/sdk_packaging.toml +++ b/sdk/scvmm/azure-mgmt-scvmm/sdk_packaging.toml @@ -3,7 +3,7 @@ package_name = "azure-mgmt-scvmm" package_nspkg = "azure-mgmt-nspkg" package_pprint_name = "Scvmm Management" package_doc_id = "" -is_stable = false +is_stable = true is_arm = true need_msrestazure = false need_azuremgmtcore = true diff --git a/sdk/scvmm/azure-mgmt-scvmm/setup.py b/sdk/scvmm/azure-mgmt-scvmm/setup.py index d768ccfc13b..9c259fcef96 100644 --- a/sdk/scvmm/azure-mgmt-scvmm/setup.py +++ b/sdk/scvmm/azure-mgmt-scvmm/setup.py @@ -1,10 +1,10 @@ #!/usr/bin/env python -#------------------------------------------------------------------------- +# ------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for # license information. -#-------------------------------------------------------------------------- +# -------------------------------------------------------------------------- import re import os.path @@ -16,64 +16,67 @@ PACKAGE_NAME = "azure-mgmt-scvmm" PACKAGE_PPRINT_NAME = "Scvmm Management" # a-b-c => a/b/c -package_folder_path = PACKAGE_NAME.replace('-', '/') +package_folder_path = PACKAGE_NAME.replace("-", "/") # a-b-c => a.b.c -namespace_name = PACKAGE_NAME.replace('-', '.') +namespace_name = PACKAGE_NAME.replace("-", ".") # Version extraction inspired from 'requests' -with open(os.path.join(package_folder_path, 'version.py') - if os.path.exists(os.path.join(package_folder_path, 'version.py')) - else os.path.join(package_folder_path, '_version.py'), 'r') as fd: - version = re.search(r'^VERSION\s*=\s*[\'"]([^\'"]*)[\'"]', - fd.read(), re.MULTILINE).group(1) +with open( + os.path.join(package_folder_path, "version.py") + if os.path.exists(os.path.join(package_folder_path, "version.py")) + else os.path.join(package_folder_path, "_version.py"), + "r", +) as fd: + version = re.search(r'^VERSION\s*=\s*[\'"]([^\'"]*)[\'"]', fd.read(), re.MULTILINE).group(1) if not version: - raise RuntimeError('Cannot find version information') + raise RuntimeError("Cannot find version information") -with open('README.md', encoding='utf-8') as f: +with open("README.md", encoding="utf-8") as f: readme = f.read() -with open('CHANGELOG.md', encoding='utf-8') as f: +with open("CHANGELOG.md", encoding="utf-8") as f: changelog = f.read() setup( name=PACKAGE_NAME, version=version, - description='Microsoft Azure {} Client Library for Python'.format(PACKAGE_PPRINT_NAME), - long_description=readme + '\n\n' + changelog, - long_description_content_type='text/markdown', - license='MIT License', - author='Microsoft Corporation', - author_email='azpysdkhelp@microsoft.com', - url='https://github.com/Azure/azure-sdk-for-python', + description="Microsoft Azure {} Client Library for Python".format(PACKAGE_PPRINT_NAME), + long_description=readme + "\n\n" + changelog, + long_description_content_type="text/markdown", + license="MIT License", + author="Microsoft Corporation", + author_email="azpysdkhelp@microsoft.com", + url="https://github.com/Azure/azure-sdk-for-python", keywords="azure, azure sdk", # update with search keywords relevant to the azure service / product classifiers=[ - 'Development Status :: 4 - Beta', - 'Programming Language :: Python', - 'Programming Language :: Python :: 3 :: Only', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: 3.11', - 'License :: OSI Approved :: MIT License', + "Development Status :: 5 - Production/Stable", + "Programming Language :: Python", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "License :: OSI Approved :: MIT License", ], zip_safe=False, - packages=find_packages(exclude=[ - 'tests', - # Exclude packages that will be covered by PEP420 or nspkg - 'azure', - 'azure.mgmt', - ]), + packages=find_packages( + exclude=[ + "tests", + # Exclude packages that will be covered by PEP420 or nspkg + "azure", + "azure.mgmt", + ] + ), include_package_data=True, package_data={ - 'pytyped': ['py.typed'], + "pytyped": ["py.typed"], }, install_requires=[ - "msrest>=0.7.1", - "azure-common~=1.1", - "azure-mgmt-core>=1.3.2,<2.0.0", - "typing-extensions>=4.3.0; python_version<'3.8.0'", + "isodate>=0.6.1", + "azure-common>=1.1", + "azure-mgmt-core>=1.3.2", ], - python_requires=">=3.7" + python_requires=">=3.8", ) diff --git a/sdk/scvmm/azure-mgmt-scvmm/tests/conftest.py b/sdk/scvmm/azure-mgmt-scvmm/tests/conftest.py new file mode 100644 index 00000000000..587e126e50b --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/tests/conftest.py @@ -0,0 +1,50 @@ +# -------------------------------------------------------------------------- +# +# Copyright (c) Microsoft Corporation. All rights reserved. +# +# The MIT License (MIT) +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the ""Software""), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. +# +# -------------------------------------------------------------------------- +import os +import platform +import pytest +import sys + +from dotenv import load_dotenv + +from devtools_testutils import test_proxy, add_general_regex_sanitizer +from devtools_testutils import add_header_regex_sanitizer, add_body_key_sanitizer + +load_dotenv() + +@pytest.fixture(scope="session", autouse=True) +def add_sanitizers(test_proxy): + subscription_id = os.environ.get("AZURE_SUBSCRIPTION_ID", "00000000-0000-0000-0000-000000000000") + tenant_id = os.environ.get("AZURE_TENANT_ID", "00000000-0000-0000-0000-000000000000") + client_id = os.environ.get("AZURE_CLIENT_ID", "00000000-0000-0000-0000-000000000000") + client_secret = os.environ.get("AZURE_CLIENT_SECRET", "00000000-0000-0000-0000-000000000000") + add_general_regex_sanitizer(regex=subscription_id, value="00000000-0000-0000-0000-000000000000") + add_general_regex_sanitizer(regex=tenant_id, value="00000000-0000-0000-0000-000000000000") + add_general_regex_sanitizer(regex=client_id, value="00000000-0000-0000-0000-000000000000") + add_general_regex_sanitizer(regex=client_secret, value="00000000-0000-0000-0000-000000000000") + add_header_regex_sanitizer(key="Set-Cookie", value="[set-cookie;]") + add_header_regex_sanitizer(key="Cookie", value="cookie;") + add_body_key_sanitizer(json_path="$..access_token", value="access_token") \ No newline at end of file diff --git a/sdk/scvmm/azure-mgmt-scvmm/tests/test_cli_mgmt_scvmm.py b/sdk/scvmm/azure-mgmt-scvmm/tests/test_cli_mgmt_scvmm.py new file mode 100644 index 00000000000..8f7b12f138e --- /dev/null +++ b/sdk/scvmm/azure-mgmt-scvmm/tests/test_cli_mgmt_scvmm.py @@ -0,0 +1,46 @@ +# coding: utf-8 + +#------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +#-------------------------------------------------------------------------- + +from azure.mgmt.scvmm import ScVmmMgmtClient +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = 'eastus' + +class TestMgmtScVmm(AzureMgmtRecordedTestCase): + + def setup_method(self, method): + self.client = self.create_mgmt_client(ScVmmMgmtClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_availability_sets_list_by_resource_group(self, resource_group): + assert list(self.client.availability_sets.list_by_resource_group(resource_group.name)) == [] + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_clouds_list_by_resource_group(self, resource_group): + assert list(self.client.clouds.list_by_resource_group(resource_group.name)) == [] + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_virtual_machine_templates_list_by_resource_group(self, resource_group): + assert list(self.client.virtual_machine_templates.list_by_resource_group(resource_group.name)) == [] + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_virtual_networks_list_by_resource_group(self, resource_group): + assert list(self.client.virtual_networks.list_by_resource_group(resource_group.name)) == [] + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_vmm_servers_list_by_resource_group(self, resource_group): + assert list(self.client.vmm_servers.list_by_resource_group(resource_group.name)) == [] + + @recorded_by_proxy + def test_list_operations(self): + assert list(self.client.operations.list()) diff --git a/sdk/scvmm/ci.yml b/sdk/scvmm/ci.yml index 864adefc34d..1ca9e4c9b74 100644 --- a/sdk/scvmm/ci.yml +++ b/sdk/scvmm/ci.yml @@ -28,6 +28,7 @@ extends: template: ../../eng/pipelines/templates/stages/archetype-sdk-client.yml parameters: ServiceDirectory: scvmm + TestProxy: true Artifacts: - name: azure-mgmt-scvmm safeName: azuremgmtscvmm