diff --git a/sdk/testbase/azure-mgmt-testbase/_meta.json b/sdk/testbase/azure-mgmt-testbase/_meta.json index 6e4276e2ea42..48bc87b75fc8 100644 --- a/sdk/testbase/azure-mgmt-testbase/_meta.json +++ b/sdk/testbase/azure-mgmt-testbase/_meta.json @@ -1,11 +1,11 @@ { - "autorest": "3.4.2", + "autorest": "3.7.2", "use": [ - "@autorest/python@5.8.0", - "@autorest/modelerfour@4.19.2" + "@autorest/python@5.16.0", + "@autorest/modelerfour@4.19.3" ], - "commit": "cc49d9f58b73e725182d13b9c62f8c6d2e241ce5", + "commit": "2139e4c0f3a5df27ed4b08008c20d76410a58f91", "repository_url": "https://github.com/Azure/azure-rest-api-specs", - "autorest_command": "autorest specification/testbase/resource-manager/readme.md --multiapi --python --python-mode=update --python-sdks-folder=/home/vsts/work/1/s/azure-sdk-for-python/sdk --track2 --use=@autorest/python@5.8.0 --use=@autorest/modelerfour@4.19.2 --version=3.4.2", + "autorest_command": "autorest specification/testbase/resource-manager/readme.md --python --python-sdks-folder=/mnt/vss/_work/1/s/azure-sdk-for-python/sdk --python3-only --use=@autorest/python@5.16.0 --use=@autorest/modelerfour@4.19.3 --version=3.7.2", "readme": "specification/testbase/resource-manager/readme.md" } \ No newline at end of file diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/__init__.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/__init__.py index 62099de60264..4d5195254645 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/__init__.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/__init__.py @@ -10,10 +10,14 @@ from ._version import VERSION __version__ = VERSION -__all__ = ['TestBase'] try: - from ._patch import patch_sdk # type: ignore - patch_sdk() + from ._patch import __all__ as _patch_all + from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import except ImportError: - pass + _patch_all = [] +from ._patch import patch_sdk as _patch_sdk +__all__ = ['TestBase'] +__all__.extend([p for p in _patch_all if p not in __all__]) + +_patch_sdk() diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_configuration.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_configuration.py index 4f886511a450..79b213bffa52 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_configuration.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_configuration.py @@ -6,22 +6,20 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import TYPE_CHECKING +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 +from azure.mgmt.core.policies import ARMChallengeAuthenticationPolicy, ARMHttpLoggingPolicy from ._version import VERSION if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports - from typing import Any - from azure.core.credentials import TokenCredential -class TestBaseConfiguration(Configuration): +class TestBaseConfiguration(Configuration): # pylint: disable=too-many-instance-attributes """Configuration for TestBase. Note that all parameters used to create this instance are saved as instance @@ -31,24 +29,28 @@ class TestBaseConfiguration(Configuration): :type credential: ~azure.core.credentials.TokenCredential :param subscription_id: The Azure subscription ID. This is a GUID-formatted string. :type subscription_id: str + :keyword api_version: Api Version. Default value is "2022-04-01-preview". Note that overriding + this default value may result in unsupported behavior. + :paramtype api_version: str """ def __init__( self, - credential, # type: "TokenCredential" - subscription_id, # type: str - **kwargs # type: Any - ): - # type: (...) -> None + credential: "TokenCredential", + subscription_id: str, + **kwargs: Any + ) -> None: + super(TestBaseConfiguration, self).__init__(**kwargs) + api_version = kwargs.pop('api_version', "2022-04-01-preview") # type: str + if credential is None: raise ValueError("Parameter 'credential' must not be None.") if subscription_id is None: raise ValueError("Parameter 'subscription_id' must not be None.") - super(TestBaseConfiguration, self).__init__(**kwargs) self.credential = credential self.subscription_id = subscription_id - self.api_version = "2020-12-16-preview" + self.api_version = api_version self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) kwargs.setdefault('sdk_moniker', 'mgmt-testbase/{}'.format(VERSION)) self._configure(**kwargs) @@ -68,4 +70,4 @@ def _configure( self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) self.authentication_policy = kwargs.get('authentication_policy') if self.credential and not self.authentication_policy: - self.authentication_policy = policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) + self.authentication_policy = ARMChallengeAuthenticationPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_metadata.json b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_metadata.json deleted file mode 100644 index ca4209972b0a..000000000000 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_metadata.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "chosen_version": "2020-12-16-preview", - "total_api_version_list": ["2020-12-16-preview"], - "client": { - "name": "TestBase", - "filename": "_test_base", - "description": "Test Base.", - "base_url": "\u0027https://management.azure.com\u0027", - "custom_base_url": null, - "azure_arm": true, - "has_lro_operations": true, - "client_side_validation": false, - "sync_imports": "{\"typing\": {\"azurecore\": {\"azure.core.credentials\": [\"TokenCredential\"]}}, \"regular\": {\"azurecore\": {\"azure.profiles\": [\"KnownProfiles\", \"ProfileDefinition\"], \"azure.profiles.multiapiclient\": [\"MultiApiClientMixin\"], \"msrest\": [\"Deserializer\", \"Serializer\"], \"azure.mgmt.core\": [\"ARMPipelineClient\"]}, \"local\": {\"._configuration\": [\"TestBaseConfiguration\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Optional\"]}, \"azurecore\": {\"azure.core.pipeline.transport\": [\"HttpRequest\", \"HttpResponse\"]}}}", - "async_imports": "{\"typing\": {\"azurecore\": {\"azure.core.credentials_async\": [\"AsyncTokenCredential\"]}}, \"regular\": {\"azurecore\": {\"azure.profiles\": [\"KnownProfiles\", \"ProfileDefinition\"], \"azure.profiles.multiapiclient\": [\"MultiApiClientMixin\"], \"msrest\": [\"Deserializer\", \"Serializer\"], \"azure.mgmt.core\": [\"AsyncARMPipelineClient\"]}, \"local\": {\"._configuration\": [\"TestBaseConfiguration\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Optional\"]}, \"azurecore\": {\"azure.core.pipeline.transport\": [\"AsyncHttpResponse\", \"HttpRequest\"]}}}" - }, - "global_parameters": { - "sync": { - "credential": { - "signature": "credential, # type: \"TokenCredential\"", - "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials.TokenCredential", - "required": true - }, - "subscription_id": { - "signature": "subscription_id, # type: str", - "description": "The Azure subscription ID. This is a GUID-formatted string.", - "docstring_type": "str", - "required": true - } - }, - "async": { - "credential": { - "signature": "credential: \"AsyncTokenCredential\",", - "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials_async.AsyncTokenCredential", - "required": true - }, - "subscription_id": { - "signature": "subscription_id: str,", - "description": "The Azure subscription ID. This is a GUID-formatted string.", - "docstring_type": "str", - "required": true - } - }, - "constant": { - }, - "call": "credential, subscription_id", - "service_client_specific": { - "sync": { - "api_version": { - "signature": "api_version=None, # type: Optional[str]", - "description": "API version to use if no profile is provided, or if missing in profile.", - "docstring_type": "str", - "required": false - }, - "base_url": { - "signature": "base_url=None, # type: Optional[str]", - "description": "Service URL", - "docstring_type": "str", - "required": false - }, - "profile": { - "signature": "profile=KnownProfiles.default, # type: KnownProfiles", - "description": "A profile definition, from KnownProfiles to dict.", - "docstring_type": "azure.profiles.KnownProfiles", - "required": false - } - }, - "async": { - "api_version": { - "signature": "api_version: Optional[str] = None,", - "description": "API version to use if no profile is provided, or if missing in profile.", - "docstring_type": "str", - "required": false - }, - "base_url": { - "signature": "base_url: Optional[str] = None,", - "description": "Service URL", - "docstring_type": "str", - "required": false - }, - "profile": { - "signature": "profile: KnownProfiles = KnownProfiles.default,", - "description": "A profile definition, from KnownProfiles to dict.", - "docstring_type": "azure.profiles.KnownProfiles", - "required": false - } - } - } - }, - "config": { - "credential": true, - "credential_scopes": ["https://management.azure.com/.default"], - "credential_default_policy_type": "BearerTokenCredentialPolicy", - "credential_default_policy_type_has_async_version": true, - "credential_key_header_name": null, - "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"], \"azure.mgmt.core.policies\": [\"ARMHttpLoggingPolicy\"]}, \"local\": {\"._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}}, \"typing\": {\"azurecore\": {\"azure.core.credentials\": [\"TokenCredential\"]}}}", - "async_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"], \"azure.mgmt.core.policies\": [\"ARMHttpLoggingPolicy\"]}, \"local\": {\".._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}}, \"typing\": {\"azurecore\": {\"azure.core.credentials_async\": [\"AsyncTokenCredential\"]}}}" - }, - "operation_groups": { - "skus": "SkusOperations", - "test_base_accounts": "TestBaseAccountsOperations", - "usage": "UsageOperations", - "available_os": "AvailableOSOperations", - "flighting_rings": "FlightingRingsOperations", - "test_types": "TestTypesOperations", - "packages": "PackagesOperations", - "test_summaries": "TestSummariesOperations", - "test_results": "TestResultsOperations", - "os_updates": "OSUpdatesOperations", - "favorite_processes": "FavoriteProcessesOperations", - "analysis_results": "AnalysisResultsOperations", - "email_events": "EmailEventsOperations", - "customer_events": "CustomerEventsOperations", - "operations": "Operations" - } -} \ No newline at end of file diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_patch.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_patch.py new file mode 100644 index 000000000000..0ad201a8c586 --- /dev/null +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_patch.py @@ -0,0 +1,19 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" +from typing import List + +__all__: List[str] = [] # Add all objects you want publicly available to users at this package level + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_test_base.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_test_base.py index 8c08600d5690..5c3290ea0210 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_test_base.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_test_base.py @@ -6,144 +6,159 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import TYPE_CHECKING +from copy import deepcopy +from typing import Any, TYPE_CHECKING -from azure.mgmt.core import ARMPipelineClient from msrest import Deserializer, Serializer -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Optional - - from azure.core.credentials import TokenCredential - from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.core.rest import HttpRequest, HttpResponse +from azure.mgmt.core import ARMPipelineClient -from ._configuration import TestBaseConfiguration -from .operations import SkusOperations -from .operations import TestBaseAccountsOperations -from .operations import UsageOperations -from .operations import AvailableOSOperations -from .operations import FlightingRingsOperations -from .operations import TestTypesOperations -from .operations import PackagesOperations -from .operations import TestSummariesOperations -from .operations import TestResultsOperations -from .operations import OSUpdatesOperations -from .operations import FavoriteProcessesOperations -from .operations import AnalysisResultsOperations -from .operations import EmailEventsOperations -from .operations import CustomerEventsOperations -from .operations import Operations from . import models +from ._configuration import TestBaseConfiguration +from .operations import AnalysisResultsOperations, AvailableOSOperations, BillingHubServiceOperations, CustomerEventsOperations, EmailEventsOperations, FavoriteProcessesOperations, FlightingRingsOperations, OSUpdatesOperations, Operations, PackagesOperations, SkusOperations, TestBaseAccountsOperations, TestResultsOperations, TestSummariesOperations, TestTypesOperations, UsageOperations +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials import TokenCredential -class TestBase(object): +class TestBase: # pylint: disable=too-many-instance-attributes """Test Base. :ivar skus: SkusOperations operations - :vartype skus: test_base.operations.SkusOperations + :vartype skus: azure.mgmt.testbase.operations.SkusOperations :ivar test_base_accounts: TestBaseAccountsOperations operations - :vartype test_base_accounts: test_base.operations.TestBaseAccountsOperations + :vartype test_base_accounts: azure.mgmt.testbase.operations.TestBaseAccountsOperations :ivar usage: UsageOperations operations - :vartype usage: test_base.operations.UsageOperations + :vartype usage: azure.mgmt.testbase.operations.UsageOperations :ivar available_os: AvailableOSOperations operations - :vartype available_os: test_base.operations.AvailableOSOperations + :vartype available_os: azure.mgmt.testbase.operations.AvailableOSOperations :ivar flighting_rings: FlightingRingsOperations operations - :vartype flighting_rings: test_base.operations.FlightingRingsOperations + :vartype flighting_rings: azure.mgmt.testbase.operations.FlightingRingsOperations :ivar test_types: TestTypesOperations operations - :vartype test_types: test_base.operations.TestTypesOperations + :vartype test_types: azure.mgmt.testbase.operations.TestTypesOperations :ivar packages: PackagesOperations operations - :vartype packages: test_base.operations.PackagesOperations + :vartype packages: azure.mgmt.testbase.operations.PackagesOperations :ivar test_summaries: TestSummariesOperations operations - :vartype test_summaries: test_base.operations.TestSummariesOperations + :vartype test_summaries: azure.mgmt.testbase.operations.TestSummariesOperations :ivar test_results: TestResultsOperations operations - :vartype test_results: test_base.operations.TestResultsOperations + :vartype test_results: azure.mgmt.testbase.operations.TestResultsOperations :ivar os_updates: OSUpdatesOperations operations - :vartype os_updates: test_base.operations.OSUpdatesOperations + :vartype os_updates: azure.mgmt.testbase.operations.OSUpdatesOperations :ivar favorite_processes: FavoriteProcessesOperations operations - :vartype favorite_processes: test_base.operations.FavoriteProcessesOperations + :vartype favorite_processes: azure.mgmt.testbase.operations.FavoriteProcessesOperations :ivar analysis_results: AnalysisResultsOperations operations - :vartype analysis_results: test_base.operations.AnalysisResultsOperations + :vartype analysis_results: azure.mgmt.testbase.operations.AnalysisResultsOperations :ivar email_events: EmailEventsOperations operations - :vartype email_events: test_base.operations.EmailEventsOperations + :vartype email_events: azure.mgmt.testbase.operations.EmailEventsOperations :ivar customer_events: CustomerEventsOperations operations - :vartype customer_events: test_base.operations.CustomerEventsOperations + :vartype customer_events: azure.mgmt.testbase.operations.CustomerEventsOperations :ivar operations: Operations operations - :vartype operations: test_base.operations.Operations + :vartype operations: azure.mgmt.testbase.operations.Operations + :ivar billing_hub_service: BillingHubServiceOperations operations + :vartype billing_hub_service: azure.mgmt.testbase.operations.BillingHubServiceOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials.TokenCredential :param subscription_id: The Azure subscription ID. This is a GUID-formatted string. :type subscription_id: str - :param str base_url: Service URL - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :param base_url: Service URL. Default value is "https://management.azure.com". + :type base_url: str + :keyword api_version: Api Version. Default value is "2022-04-01-preview". 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. """ def __init__( self, - credential, # type: "TokenCredential" - subscription_id, # type: str - base_url=None, # type: Optional[str] - **kwargs # type: Any - ): - # type: (...) -> None - if not base_url: - base_url = 'https://management.azure.com' - self._config = TestBaseConfiguration(credential, subscription_id, **kwargs) + credential: "TokenCredential", + subscription_id: str, + base_url: str = "https://management.azure.com", + **kwargs: Any + ) -> None: + self._config = TestBaseConfiguration(credential=credential, subscription_id=subscription_id, **kwargs) self._client = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} self._serialize = Serializer(client_models) - self._serialize.client_side_validation = False self._deserialize = Deserializer(client_models) - + self._serialize.client_side_validation = False self.skus = SkusOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.test_base_accounts = TestBaseAccountsOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.usage = UsageOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.available_os = AvailableOSOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.flighting_rings = FlightingRingsOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.test_types = TestTypesOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.packages = PackagesOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.test_summaries = TestSummariesOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.test_results = TestResultsOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.os_updates = OSUpdatesOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.favorite_processes = FavoriteProcessesOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.analysis_results = AnalysisResultsOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.email_events = EmailEventsOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.customer_events = CustomerEventsOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.operations = Operations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) + self.billing_hub_service = BillingHubServiceOperations( + self._client, self._config, self._serialize, self._deserialize + ) + - def _send_request(self, http_request, **kwargs): - # type: (HttpRequest, Any) -> HttpResponse + def _send_request( + self, + request: HttpRequest, + **kwargs: Any + ) -> HttpResponse: """Runs the network request through the client's chained policies. - :param http_request: The network request you want to make. Required. - :type http_request: ~azure.core.pipeline.transport.HttpRequest - :keyword bool stream: Whether the response payload will be streamed. Defaults to True. + >>> from azure.core.rest import HttpRequest + >>> request = HttpRequest("GET", "https://www.example.org/") + + >>> response = client._send_request(request) + + + For more information on this code flow, see https://aka.ms/azsdk/python/protocol/quickstart + + :param request: The network request you want to make. Required. + :type request: ~azure.core.rest.HttpRequest + :keyword bool stream: Whether the response payload will be streamed. Defaults to False. :return: The response of your network call. Does not do error handling on your response. - :rtype: ~azure.core.pipeline.transport.HttpResponse + :rtype: ~azure.core.rest.HttpResponse """ - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - } - http_request.url = self._client.format_url(http_request.url, **path_format_arguments) - stream = kwargs.pop("stream", True) - pipeline_response = self._client._pipeline.run(http_request, stream=stream, **kwargs) - return pipeline_response.http_response + + request_copy = deepcopy(request) + request_copy.url = self._client.format_url(request_copy.url) + return self._client.send_request(request_copy, **kwargs) def close(self): # type: () -> None diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_vendor.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_vendor.py new file mode 100644 index 000000000000..138f663c53a4 --- /dev/null +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/_vendor.py @@ -0,0 +1,27 @@ +# -------------------------------------------------------------------------- +# 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.core.pipeline.transport import HttpRequest + +def _convert_request(request, files=None): + data = request.content if not files else None + request = HttpRequest(method=request.method, url=request.url, headers=request.headers, data=data) + 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/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/__init__.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/__init__.py index 84b768564514..623d773b91d9 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/__init__.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/__init__.py @@ -7,4 +7,14 @@ # -------------------------------------------------------------------------- from ._test_base import TestBase + +try: + from ._patch import __all__ as _patch_all + from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import +except ImportError: + _patch_all = [] +from ._patch import patch_sdk as _patch_sdk __all__ = ['TestBase'] +__all__.extend([p for p in _patch_all if p not in __all__]) + +_patch_sdk() diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/_configuration.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/_configuration.py index e83d6cb42f03..793774681ad5 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/_configuration.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/_configuration.py @@ -10,7 +10,7 @@ from azure.core.configuration import Configuration from azure.core.pipeline import policies -from azure.mgmt.core.policies import ARMHttpLoggingPolicy +from azure.mgmt.core.policies import ARMHttpLoggingPolicy, AsyncARMChallengeAuthenticationPolicy from .._version import VERSION @@ -19,7 +19,7 @@ from azure.core.credentials_async import AsyncTokenCredential -class TestBaseConfiguration(Configuration): +class TestBaseConfiguration(Configuration): # pylint: disable=too-many-instance-attributes """Configuration for TestBase. Note that all parameters used to create this instance are saved as instance @@ -29,6 +29,9 @@ class TestBaseConfiguration(Configuration): :type credential: ~azure.core.credentials_async.AsyncTokenCredential :param subscription_id: The Azure subscription ID. This is a GUID-formatted string. :type subscription_id: str + :keyword api_version: Api Version. Default value is "2022-04-01-preview". Note that overriding + this default value may result in unsupported behavior. + :paramtype api_version: str """ def __init__( @@ -37,15 +40,17 @@ def __init__( subscription_id: str, **kwargs: Any ) -> None: + super(TestBaseConfiguration, self).__init__(**kwargs) + api_version = kwargs.pop('api_version', "2022-04-01-preview") # type: str + if credential is None: raise ValueError("Parameter 'credential' must not be None.") if subscription_id is None: raise ValueError("Parameter 'subscription_id' must not be None.") - super(TestBaseConfiguration, self).__init__(**kwargs) self.credential = credential self.subscription_id = subscription_id - self.api_version = "2020-12-16-preview" + self.api_version = api_version self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) kwargs.setdefault('sdk_moniker', 'mgmt-testbase/{}'.format(VERSION)) self._configure(**kwargs) @@ -64,4 +69,4 @@ def _configure( self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) self.authentication_policy = kwargs.get('authentication_policy') if self.credential and not self.authentication_policy: - self.authentication_policy = policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) + self.authentication_policy = AsyncARMChallengeAuthenticationPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/_patch.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/_patch.py new file mode 100644 index 000000000000..0ad201a8c586 --- /dev/null +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/_patch.py @@ -0,0 +1,19 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" +from typing import List + +__all__: List[str] = [] # Add all objects you want publicly available to users at this package level + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/_test_base.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/_test_base.py index a42326e4246f..cf3184afd116 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/_test_base.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/_test_base.py @@ -6,140 +6,159 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Optional, TYPE_CHECKING +from copy import deepcopy +from typing import Any, Awaitable, TYPE_CHECKING -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest -from azure.mgmt.core import AsyncARMPipelineClient from msrest import Deserializer, Serializer -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from azure.core.credentials_async import AsyncTokenCredential +from azure.core.rest import AsyncHttpResponse, HttpRequest +from azure.mgmt.core import AsyncARMPipelineClient -from ._configuration import TestBaseConfiguration -from .operations import SkusOperations -from .operations import TestBaseAccountsOperations -from .operations import UsageOperations -from .operations import AvailableOSOperations -from .operations import FlightingRingsOperations -from .operations import TestTypesOperations -from .operations import PackagesOperations -from .operations import TestSummariesOperations -from .operations import TestResultsOperations -from .operations import OSUpdatesOperations -from .operations import FavoriteProcessesOperations -from .operations import AnalysisResultsOperations -from .operations import EmailEventsOperations -from .operations import CustomerEventsOperations -from .operations import Operations from .. import models +from ._configuration import TestBaseConfiguration +from .operations import AnalysisResultsOperations, AvailableOSOperations, BillingHubServiceOperations, CustomerEventsOperations, EmailEventsOperations, FavoriteProcessesOperations, FlightingRingsOperations, OSUpdatesOperations, Operations, PackagesOperations, SkusOperations, TestBaseAccountsOperations, TestResultsOperations, TestSummariesOperations, TestTypesOperations, UsageOperations +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential -class TestBase(object): +class TestBase: # pylint: disable=too-many-instance-attributes """Test Base. :ivar skus: SkusOperations operations - :vartype skus: test_base.aio.operations.SkusOperations + :vartype skus: azure.mgmt.testbase.aio.operations.SkusOperations :ivar test_base_accounts: TestBaseAccountsOperations operations - :vartype test_base_accounts: test_base.aio.operations.TestBaseAccountsOperations + :vartype test_base_accounts: azure.mgmt.testbase.aio.operations.TestBaseAccountsOperations :ivar usage: UsageOperations operations - :vartype usage: test_base.aio.operations.UsageOperations + :vartype usage: azure.mgmt.testbase.aio.operations.UsageOperations :ivar available_os: AvailableOSOperations operations - :vartype available_os: test_base.aio.operations.AvailableOSOperations + :vartype available_os: azure.mgmt.testbase.aio.operations.AvailableOSOperations :ivar flighting_rings: FlightingRingsOperations operations - :vartype flighting_rings: test_base.aio.operations.FlightingRingsOperations + :vartype flighting_rings: azure.mgmt.testbase.aio.operations.FlightingRingsOperations :ivar test_types: TestTypesOperations operations - :vartype test_types: test_base.aio.operations.TestTypesOperations + :vartype test_types: azure.mgmt.testbase.aio.operations.TestTypesOperations :ivar packages: PackagesOperations operations - :vartype packages: test_base.aio.operations.PackagesOperations + :vartype packages: azure.mgmt.testbase.aio.operations.PackagesOperations :ivar test_summaries: TestSummariesOperations operations - :vartype test_summaries: test_base.aio.operations.TestSummariesOperations + :vartype test_summaries: azure.mgmt.testbase.aio.operations.TestSummariesOperations :ivar test_results: TestResultsOperations operations - :vartype test_results: test_base.aio.operations.TestResultsOperations + :vartype test_results: azure.mgmt.testbase.aio.operations.TestResultsOperations :ivar os_updates: OSUpdatesOperations operations - :vartype os_updates: test_base.aio.operations.OSUpdatesOperations + :vartype os_updates: azure.mgmt.testbase.aio.operations.OSUpdatesOperations :ivar favorite_processes: FavoriteProcessesOperations operations - :vartype favorite_processes: test_base.aio.operations.FavoriteProcessesOperations + :vartype favorite_processes: azure.mgmt.testbase.aio.operations.FavoriteProcessesOperations :ivar analysis_results: AnalysisResultsOperations operations - :vartype analysis_results: test_base.aio.operations.AnalysisResultsOperations + :vartype analysis_results: azure.mgmt.testbase.aio.operations.AnalysisResultsOperations :ivar email_events: EmailEventsOperations operations - :vartype email_events: test_base.aio.operations.EmailEventsOperations + :vartype email_events: azure.mgmt.testbase.aio.operations.EmailEventsOperations :ivar customer_events: CustomerEventsOperations operations - :vartype customer_events: test_base.aio.operations.CustomerEventsOperations + :vartype customer_events: azure.mgmt.testbase.aio.operations.CustomerEventsOperations :ivar operations: Operations operations - :vartype operations: test_base.aio.operations.Operations + :vartype operations: azure.mgmt.testbase.aio.operations.Operations + :ivar billing_hub_service: BillingHubServiceOperations operations + :vartype billing_hub_service: azure.mgmt.testbase.aio.operations.BillingHubServiceOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials_async.AsyncTokenCredential :param subscription_id: The Azure subscription ID. This is a GUID-formatted string. :type subscription_id: str - :param str base_url: Service URL - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :param base_url: Service URL. Default value is "https://management.azure.com". + :type base_url: str + :keyword api_version: Api Version. Default value is "2022-04-01-preview". 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. """ def __init__( self, credential: "AsyncTokenCredential", subscription_id: str, - base_url: Optional[str] = None, + base_url: str = "https://management.azure.com", **kwargs: Any ) -> None: - if not base_url: - base_url = 'https://management.azure.com' - self._config = TestBaseConfiguration(credential, subscription_id, **kwargs) + self._config = TestBaseConfiguration(credential=credential, subscription_id=subscription_id, **kwargs) self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} self._serialize = Serializer(client_models) - self._serialize.client_side_validation = False self._deserialize = Deserializer(client_models) - + self._serialize.client_side_validation = False self.skus = SkusOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.test_base_accounts = TestBaseAccountsOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.usage = UsageOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.available_os = AvailableOSOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.flighting_rings = FlightingRingsOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.test_types = TestTypesOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.packages = PackagesOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.test_summaries = TestSummariesOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.test_results = TestResultsOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.os_updates = OSUpdatesOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.favorite_processes = FavoriteProcessesOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.analysis_results = AnalysisResultsOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.email_events = EmailEventsOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.customer_events = CustomerEventsOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) self.operations = Operations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) + self.billing_hub_service = BillingHubServiceOperations( + self._client, self._config, self._serialize, self._deserialize + ) - async def _send_request(self, http_request: HttpRequest, **kwargs: Any) -> AsyncHttpResponse: + + def _send_request( + self, + request: HttpRequest, + **kwargs: Any + ) -> Awaitable[AsyncHttpResponse]: """Runs the network request through the client's chained policies. - :param http_request: The network request you want to make. Required. - :type http_request: ~azure.core.pipeline.transport.HttpRequest - :keyword bool stream: Whether the response payload will be streamed. Defaults to True. + >>> from azure.core.rest import HttpRequest + >>> request = HttpRequest("GET", "https://www.example.org/") + + >>> response = await client._send_request(request) + + + For more information on this code flow, see https://aka.ms/azsdk/python/protocol/quickstart + + :param request: The network request you want to make. Required. + :type request: ~azure.core.rest.HttpRequest + :keyword bool stream: Whether the response payload will be streamed. Defaults to False. :return: The response of your network call. Does not do error handling on your response. - :rtype: ~azure.core.pipeline.transport.AsyncHttpResponse + :rtype: ~azure.core.rest.AsyncHttpResponse """ - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - } - http_request.url = self._client.format_url(http_request.url, **path_format_arguments) - stream = kwargs.pop("stream", True) - pipeline_response = await self._client._pipeline.run(http_request, stream=stream, **kwargs) - return pipeline_response.http_response + + request_copy = deepcopy(request) + request_copy.url = self._client.format_url(request_copy.url) + return self._client.send_request(request_copy, **kwargs) async def close(self) -> None: await self._client.close() diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/__init__.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/__init__.py index 5ceab87ab585..65b1a4a357a3 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/__init__.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/__init__.py @@ -21,7 +21,11 @@ from ._email_events_operations import EmailEventsOperations from ._customer_events_operations import CustomerEventsOperations from ._operations import Operations +from ._billing_hub_service_operations import BillingHubServiceOperations +from ._patch import __all__ as _patch_all +from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import +from ._patch import patch_sdk as _patch_sdk __all__ = [ 'SkusOperations', 'TestBaseAccountsOperations', @@ -38,4 +42,7 @@ 'EmailEventsOperations', 'CustomerEventsOperations', 'Operations', + 'BillingHubServiceOperations', ] +__all__.extend([p for p in _patch_all if p not in __all__]) +_patch_sdk() \ No newline at end of file diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_analysis_results_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_analysis_results_operations.py index 7f7188016c8b..711f5a25af41 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_analysis_results_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_analysis_results_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,42 +6,45 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union -import warnings +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar, Union from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.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._analysis_results_operations import build_get_request, build_list_request T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class AnalysisResultsOperations: - """AnalysisResultsOperations async operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`analysis_results` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name: str, @@ -49,7 +53,7 @@ def list( test_result_name: str, analysis_result_type: Union[str, "_models.AnalysisResultType"], **kwargs: Any - ) -> AsyncIterable["_models.AnalysisResultListResult"]: + ) -> AsyncIterable[_models.AnalysisResultListResult]: """Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data will be nested in a singleton object. @@ -59,53 +63,66 @@ def list( :type test_base_account_name: str :param package_name: The resource name of the Test Base Package. :type package_name: str - :param test_result_name: The Test Result Name. It equals to {osName}-{TestResultId} string. + :param test_result_name: The Test Result Name. It equals to TestResult-{TestResultId} string. :type test_result_name: str :param analysis_result_type: The type of the Analysis Result of a Test Result. - :type analysis_result_type: str or ~test_base.models.AnalysisResultType + :type analysis_result_type: str or ~azure.mgmt.testbase.models.AnalysisResultType :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either AnalysisResultListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.AnalysisResultListResult] + :return: An iterator like instance of either AnalysisResultListResult or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.AnalysisResultListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.AnalysisResultListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.AnalysisResultListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'testResultName': self._serialize.url("test_result_name", test_result_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['analysisResultType'] = self._serialize.query("analysis_result_type", analysis_result_type, 'str') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + test_result_name=test_result_name, + api_version=api_version, + analysis_result_type=analysis_result_type, + template_url=self.list.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + test_result_name=test_result_name, + api_version=api_version, + analysis_result_type=analysis_result_type, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('AnalysisResultListResult', pipeline_response) + deserialized = self._deserialize("AnalysisResultListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -114,21 +131,27 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/analysisResults'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/analysisResults"} # type: ignore + @distributed_trace_async async def get( self, resource_group_name: str, @@ -137,7 +160,7 @@ async def get( test_result_name: str, analysis_result_name: Union[str, "_models.AnalysisResultName"], **kwargs: Any - ) -> "_models.AnalysisResultSingletonResource": + ) -> _models.AnalysisResultSingletonResource: """Gets an Analysis Result of a Test Result by name. :param resource_group_name: The name of the resource group that contains the resource. @@ -146,50 +169,52 @@ async def get( :type test_base_account_name: str :param package_name: The resource name of the Test Base Package. :type package_name: str - :param test_result_name: The Test Result Name. It equals to {osName}-{TestResultId} string. + :param test_result_name: The Test Result Name. It equals to TestResult-{TestResultId} string. :type test_result_name: str :param analysis_result_name: The name of the Analysis Result of a Test Result. - :type analysis_result_name: str or ~test_base.models.AnalysisResultName + :type analysis_result_name: str or ~azure.mgmt.testbase.models.AnalysisResultName :keyword callable cls: A custom type or function that will be passed the direct response :return: AnalysisResultSingletonResource, or the result of cls(response) - :rtype: ~test_base.models.AnalysisResultSingletonResource + :rtype: ~azure.mgmt.testbase.models.AnalysisResultSingletonResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.AnalysisResultSingletonResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'testResultName': self._serialize.url("test_result_name", test_result_name, 'str'), - 'analysisResultName': self._serialize.url("analysis_result_name", analysis_result_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.AnalysisResultSingletonResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + test_result_name=test_result_name, + analysis_result_name=analysis_result_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('AnalysisResultSingletonResource', pipeline_response) @@ -198,4 +223,6 @@ async def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/analysisResults/{analysisResultName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/analysisResults/{analysisResultName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_available_os_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_available_os_operations.py index fb2b8ecaaa24..adaf05571537 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_available_os_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_available_os_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,49 +6,52 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union -import warnings +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar, Union from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.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._available_os_operations import build_get_request, build_list_request T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class AvailableOSOperations: - """AvailableOSOperations async operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`available_os` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name: str, test_base_account_name: str, os_update_type: Union[str, "_models.OsUpdateType"], **kwargs: Any - ) -> AsyncIterable["_models.AvailableOSListResult"]: + ) -> AsyncIterable[_models.AvailableOSListResult]: """Lists all the available OSs to run a package under a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -55,48 +59,59 @@ def list( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :param os_update_type: The type of the OS Update. - :type os_update_type: str or ~test_base.models.OsUpdateType + :type os_update_type: str or ~azure.mgmt.testbase.models.OsUpdateType :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either AvailableOSListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.AvailableOSListResult] + :return: An iterator like instance of either AvailableOSListResult or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.AvailableOSListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.AvailableOSListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.AvailableOSListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['osUpdateType'] = self._serialize.query("os_update_type", os_update_type, 'str') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + os_update_type=os_update_type, + template_url=self.list.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + os_update_type=os_update_type, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('AvailableOSListResult', pipeline_response) + deserialized = self._deserialize("AvailableOSListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -105,28 +120,34 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/availableOSs'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/availableOSs"} # type: ignore + @distributed_trace_async async def get( self, resource_group_name: str, test_base_account_name: str, available_os_resource_name: str, **kwargs: Any - ) -> "_models.AvailableOSResource": + ) -> _models.AvailableOSResource: """Gets an available OS to run a package under a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -137,42 +158,44 @@ async def get( :type available_os_resource_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: AvailableOSResource, or the result of cls(response) - :rtype: ~test_base.models.AvailableOSResource + :rtype: ~azure.mgmt.testbase.models.AvailableOSResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.AvailableOSResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'availableOSResourceName': self._serialize.url("available_os_resource_name", available_os_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.AvailableOSResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + available_os_resource_name=available_os_resource_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('AvailableOSResource', pipeline_response) @@ -181,4 +204,6 @@ async def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/availableOSs/{availableOSResourceName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/availableOSs/{availableOSResourceName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_billing_hub_service_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_billing_hub_service_operations.py new file mode 100644 index 000000000000..700c3404c150 --- /dev/null +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_billing_hub_service_operations.py @@ -0,0 +1,181 @@ +# 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. +# -------------------------------------------------------------------------- +from typing import Any, Callable, Dict, Optional, TypeVar + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, 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_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._billing_hub_service_operations import build_get_free_hour_balance_request, build_get_usage_request +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class BillingHubServiceOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`billing_hub_service` 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_free_hour_balance( + self, + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any + ) -> _models.BillingHubGetFreeHourBalanceResponse: + """get_free_hour_balance. + + :param resource_group_name: The name of the resource group that contains the resource. + :type resource_group_name: str + :param test_base_account_name: The resource name of the Test Base Account. + :type test_base_account_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BillingHubGetFreeHourBalanceResponse, or the result of cls(response) + :rtype: ~azure.mgmt.testbase.models.BillingHubGetFreeHourBalanceResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.BillingHubGetFreeHourBalanceResponse] + + + request = build_get_free_hour_balance_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=self.get_free_hour_balance.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # 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('BillingHubGetFreeHourBalanceResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + get_free_hour_balance.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/getFreeHourBalance"} # type: ignore + + + @distributed_trace_async + async def get_usage( + self, + resource_group_name: str, + test_base_account_name: str, + get_usage_request: Optional[_models.BillingHubGetUsageRequest] = None, + **kwargs: Any + ) -> _models.BillingHubGetUsageResponse: + """get_usage. + + :param resource_group_name: The name of the resource group that contains the resource. + :type resource_group_name: str + :param test_base_account_name: The resource name of the Test Base Account. + :type test_base_account_name: str + :param get_usage_request: Default value is None. + :type get_usage_request: ~azure.mgmt.testbase.models.BillingHubGetUsageRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BillingHubGetUsageResponse, or the result of cls(response) + :rtype: ~azure.mgmt.testbase.models.BillingHubGetUsageResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.BillingHubGetUsageResponse] + + if get_usage_request is not None: + _json = self._serialize.body(get_usage_request, 'BillingHubGetUsageRequest') + else: + _json = None + + request = build_get_usage_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self.get_usage.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # 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('BillingHubGetUsageResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + get_usage.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/getUsage"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_customer_events_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_customer_events_operations.py index 96583702a935..312e54f29700 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_customer_events_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_customer_events_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,50 +6,53 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union -import warnings +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar, Union, cast from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.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._customer_events_operations import build_create_request_initial, build_delete_request_initial, build_get_request, build_list_by_test_base_account_request T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class CustomerEventsOperations: - """CustomerEventsOperations async operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`customer_events` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_test_base_account( self, resource_group_name: str, test_base_account_name: str, **kwargs: Any - ) -> AsyncIterable["_models.CustomerEventListResult"]: + ) -> AsyncIterable[_models.CustomerEventListResult]: """Lists all notification events subscribed under a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -56,45 +60,55 @@ def list_by_test_base_account( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either CustomerEventListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.CustomerEventListResult] + :return: An iterator like instance of either CustomerEventListResult or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.CustomerEventListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.CustomerEventListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.CustomerEventListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list_by_test_base_account.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_test_base_account_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=self.list_by_test_base_account.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_test_base_account_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('CustomerEventListResult', pipeline_response) + deserialized = self._deserialize("CustomerEventListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -103,68 +117,73 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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_test_base_account.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents'} # type: ignore + list_by_test_base_account.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents"} # type: ignore async def _create_initial( self, resource_group_name: str, test_base_account_name: str, customer_event_name: str, - parameters: "_models.CustomerEventResource", + parameters: _models.CustomerEventResource, **kwargs: Any - ) -> "_models.CustomerEventResource": - cls = kwargs.pop('cls', None) # type: ClsType["_models.CustomerEventResource"] + ) -> _models.CustomerEventResource: error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._create_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'customerEventName': self._serialize.url("customer_event_name", customer_event_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(parameters, 'CustomerEventResource') - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.CustomerEventResource] + + _json = self._serialize.body(parameters, 'CustomerEventResource') + + request = build_create_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + customer_event_name=customer_event_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self._create_initial.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 200: @@ -172,22 +191,26 @@ async def _create_initial( if response.status_code == 201: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('CustomerEventResource', pipeline_response) if cls: return cls(pipeline_response, deserialized, response_headers) return deserialized - _create_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}'} # type: ignore + _create_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}"} # type: ignore + + + @distributed_trace_async async def begin_create( self, resource_group_name: str, test_base_account_name: str, customer_event_name: str, - parameters: "_models.CustomerEventResource", + parameters: _models.CustomerEventResource, **kwargs: Any - ) -> AsyncLROPoller["_models.CustomerEventResource"]: + ) -> AsyncLROPoller[_models.CustomerEventResource]: """Create or replace a Test Base Customer Event. :param resource_group_name: The name of the resource group that contains the resource. @@ -197,53 +220,62 @@ async def begin_create( :param customer_event_name: The resource name of the Test Base Customer event. :type customer_event_name: str :param parameters: Parameters supplied to create a Test Base CustomerEvent. - :type parameters: ~test_base.models.CustomerEventResource + :type parameters: ~azure.mgmt.testbase.models.CustomerEventResource :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. + :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 CustomerEventResource or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~test_base.models.CustomerEventResource] - :raises ~azure.core.exceptions.HttpResponseError: + :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 CustomerEventResource or the result + of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.testbase.models.CustomerEventResource] + :raises: ~azure.core.exceptions.HttpResponseError """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.CustomerEventResource] polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["_models.CustomerEventResource"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = await self._create_initial( + raw_result = await self._create_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, customer_event_name=customer_event_name, parameters=parameters, + api_version=api_version, + content_type=content_type, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): deserialized = self._deserialize('CustomerEventResource', pipeline_response) - if cls: return cls(pipeline_response, deserialized, {}) return deserialized - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'customerEventName': self._serialize.url("customer_event_name", customer_event_name, 'str'), - } - if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = AsyncNoPolling() + if polling is True: + polling_method = cast(AsyncPollingMethod, AsyncARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: AsyncPollingMethod + elif polling is False: polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) else: polling_method = polling if cont_token: return AsyncLROPoller.from_continuation_token( @@ -252,63 +284,67 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}'} # type: ignore + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - async def _delete_initial( + begin_create.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}"} # type: ignore + + async def _delete_initial( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, test_base_account_name: str, customer_event_name: str, **kwargs: Any ) -> None: - cls = kwargs.pop('cls', None) # type: ClsType[None] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self._delete_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'customerEventName': self._serialize.url("customer_event_name", customer_event_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[None] + + + request = build_delete_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + customer_event_name=customer_event_name, + 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) # type: ignore - request = self._client.delete(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 202: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if cls: return cls(pipeline_response, None, response_headers) - _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}'} # type: ignore + _delete_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}"} # type: ignore + - async def begin_delete( + @distributed_trace_async + async def begin_delete( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, test_base_account_name: str, @@ -325,46 +361,53 @@ async def begin_delete( :type customer_event_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. + :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. + :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: + :raises: ~azure.core.exceptions.HttpResponseError """ - polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str cls = kwargs.pop('cls', None) # type: ClsType[None] + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = await self._delete_initial( + raw_result = await self._delete_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, customer_event_name=customer_event_name, + api_version=api_version, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): if cls: return cls(pipeline_response, None, {}) - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'customerEventName': self._serialize.url("customer_event_name", customer_event_name, 'str'), - } - if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = AsyncNoPolling() + if polling is True: + polling_method = cast(AsyncPollingMethod, AsyncARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: AsyncPollingMethod + elif polling is False: polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) else: polling_method = polling if cont_token: return AsyncLROPoller.from_continuation_token( @@ -373,17 +416,18 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}'} # type: ignore + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + + begin_delete.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}"} # type: ignore + @distributed_trace_async async def get( self, resource_group_name: str, test_base_account_name: str, customer_event_name: str, **kwargs: Any - ) -> "_models.CustomerEventResource": + ) -> _models.CustomerEventResource: """Gets a Test Base CustomerEvent. :param resource_group_name: The name of the resource group that contains the resource. @@ -394,42 +438,44 @@ async def get( :type customer_event_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: CustomerEventResource, or the result of cls(response) - :rtype: ~test_base.models.CustomerEventResource + :rtype: ~azure.mgmt.testbase.models.CustomerEventResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.CustomerEventResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'customerEventName': self._serialize.url("customer_event_name", customer_event_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.CustomerEventResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + customer_event_name=customer_event_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('CustomerEventResource', pipeline_response) @@ -438,4 +484,6 @@ async def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_email_events_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_email_events_operations.py index 5199a5d487ed..d6b3cadf7511 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_email_events_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_email_events_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,48 +6,51 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar -import warnings +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.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._email_events_operations import build_get_request, build_list_request T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class EmailEventsOperations: - """EmailEventsOperations async operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`email_events` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name: str, test_base_account_name: str, **kwargs: Any - ) -> AsyncIterable["_models.EmailEventListResult"]: + ) -> AsyncIterable[_models.EmailEventListResult]: """Lists all the email events of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -54,45 +58,55 @@ def list( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either EmailEventListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.EmailEventListResult] + :return: An iterator like instance of either EmailEventListResult or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.EmailEventListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.EmailEventListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.EmailEventListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + 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) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('EmailEventListResult', pipeline_response) + deserialized = self._deserialize("EmailEventListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -101,28 +115,34 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/emailEvents'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/emailEvents"} # type: ignore + @distributed_trace_async async def get( self, resource_group_name: str, test_base_account_name: str, email_event_resource_name: str, **kwargs: Any - ) -> "_models.EmailEventResource": + ) -> _models.EmailEventResource: """Gets a email event of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -133,42 +153,44 @@ async def get( :type email_event_resource_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: EmailEventResource, or the result of cls(response) - :rtype: ~test_base.models.EmailEventResource + :rtype: ~azure.mgmt.testbase.models.EmailEventResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.EmailEventResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'emailEventResourceName': self._serialize.url("email_event_resource_name", email_event_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.EmailEventResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + email_event_resource_name=email_event_resource_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('EmailEventResource', pipeline_response) @@ -177,4 +199,6 @@ async def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/emailEvents/{emailEventResourceName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/emailEvents/{emailEventResourceName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_favorite_processes_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_favorite_processes_operations.py index f875ff4ddb89..d73c96e7a563 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_favorite_processes_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_favorite_processes_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,49 +6,52 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar -import warnings +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.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._favorite_processes_operations import build_create_request, build_delete_request, build_get_request, build_list_request T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class FavoriteProcessesOperations: - """FavoriteProcessesOperations async operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`favorite_processes` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name: str, test_base_account_name: str, package_name: str, **kwargs: Any - ) -> AsyncIterable["_models.FavoriteProcessListResult"]: + ) -> AsyncIterable[_models.FavoriteProcessListResult]: """Lists the favorite processes for a specific package. :param resource_group_name: The name of the resource group that contains the resource. @@ -57,46 +61,57 @@ def list( :param package_name: The resource name of the Test Base Package. :type package_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either FavoriteProcessListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.FavoriteProcessListResult] + :return: An iterator like instance of either FavoriteProcessListResult or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.FavoriteProcessListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.FavoriteProcessListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.FavoriteProcessListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + 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) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('FavoriteProcessListResult', pipeline_response) + deserialized = self._deserialize("FavoriteProcessListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -105,30 +120,36 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses"} # type: ignore + @distributed_trace_async async def create( self, resource_group_name: str, test_base_account_name: str, package_name: str, favorite_process_resource_name: str, - parameters: "_models.FavoriteProcessResource", + parameters: _models.FavoriteProcessResource, **kwargs: Any - ) -> "_models.FavoriteProcessResource": + ) -> _models.FavoriteProcessResource: """Create or replace a favorite process for a Test Base Package. :param resource_group_name: The name of the resource group that contains the resource. @@ -142,51 +163,52 @@ async def create( 'actualProcessName' in request body to submit the name. :type favorite_process_resource_name: str :param parameters: Parameters supplied to create a favorite process in a package. - :type parameters: ~test_base.models.FavoriteProcessResource + :type parameters: ~azure.mgmt.testbase.models.FavoriteProcessResource :keyword callable cls: A custom type or function that will be passed the direct response :return: FavoriteProcessResource, or the result of cls(response) - :rtype: ~test_base.models.FavoriteProcessResource + :rtype: ~azure.mgmt.testbase.models.FavoriteProcessResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.FavoriteProcessResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.create.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'favoriteProcessResourceName': self._serialize.url("favorite_process_resource_name", favorite_process_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(parameters, 'FavoriteProcessResource') - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.FavoriteProcessResource] + + _json = self._serialize.body(parameters, 'FavoriteProcessResource') + + request = build_create_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + favorite_process_resource_name=favorite_process_resource_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self.create.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('FavoriteProcessResource', pipeline_response) @@ -195,9 +217,12 @@ async def create( return cls(pipeline_response, deserialized, {}) return deserialized - create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses/{favoriteProcessResourceName}'} # type: ignore - async def delete( + create.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses/{favoriteProcessResourceName}"} # type: ignore + + + @distributed_trace_async + async def delete( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, test_base_account_name: str, @@ -222,47 +247,51 @@ async def delete( :rtype: None :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType[None] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.delete.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'favoriteProcessResourceName': self._serialize.url("favorite_process_resource_name", favorite_process_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[None] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = build_delete_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + favorite_process_resource_name=favorite_process_resource_name, + 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) # type: ignore - request = self._client.delete(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + 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.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses/{favoriteProcessResourceName}'} # type: ignore + delete.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses/{favoriteProcessResourceName}"} # type: ignore + + @distributed_trace_async async def get( self, resource_group_name: str, @@ -270,7 +299,7 @@ async def get( package_name: str, favorite_process_resource_name: str, **kwargs: Any - ) -> "_models.FavoriteProcessResource": + ) -> _models.FavoriteProcessResource: """Gets a favorite process for a Test Base Package. :param resource_group_name: The name of the resource group that contains the resource. @@ -285,43 +314,45 @@ async def get( :type favorite_process_resource_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: FavoriteProcessResource, or the result of cls(response) - :rtype: ~test_base.models.FavoriteProcessResource + :rtype: ~azure.mgmt.testbase.models.FavoriteProcessResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.FavoriteProcessResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'favoriteProcessResourceName': self._serialize.url("favorite_process_resource_name", favorite_process_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.FavoriteProcessResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + favorite_process_resource_name=favorite_process_resource_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('FavoriteProcessResource', pipeline_response) @@ -330,4 +361,6 @@ async def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses/{favoriteProcessResourceName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses/{favoriteProcessResourceName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_flighting_rings_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_flighting_rings_operations.py index c4e1157b2d6e..4faffc389e64 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_flighting_rings_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_flighting_rings_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,48 +6,51 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar -import warnings +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.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._flighting_rings_operations import build_get_request, build_list_request T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class FlightingRingsOperations: - """FlightingRingsOperations async operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`flighting_rings` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name: str, test_base_account_name: str, **kwargs: Any - ) -> AsyncIterable["_models.FlightingRingListResult"]: + ) -> AsyncIterable[_models.FlightingRingListResult]: """Lists all the flighting rings of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -54,45 +58,55 @@ def list( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either FlightingRingListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.FlightingRingListResult] + :return: An iterator like instance of either FlightingRingListResult or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.FlightingRingListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.FlightingRingListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.FlightingRingListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + 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) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('FlightingRingListResult', pipeline_response) + deserialized = self._deserialize("FlightingRingListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -101,28 +115,34 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/flightingRings'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/flightingRings"} # type: ignore + @distributed_trace_async async def get( self, resource_group_name: str, test_base_account_name: str, flighting_ring_resource_name: str, **kwargs: Any - ) -> "_models.FlightingRingResource": + ) -> _models.FlightingRingResource: """Gets a flighting ring of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -133,42 +153,44 @@ async def get( :type flighting_ring_resource_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: FlightingRingResource, or the result of cls(response) - :rtype: ~test_base.models.FlightingRingResource + :rtype: ~azure.mgmt.testbase.models.FlightingRingResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.FlightingRingResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'flightingRingResourceName': self._serialize.url("flighting_ring_resource_name", flighting_ring_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.FlightingRingResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + flighting_ring_resource_name=flighting_ring_resource_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('FlightingRingResource', pipeline_response) @@ -177,4 +199,6 @@ async def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/flightingRings/{flightingRingResourceName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/flightingRings/{flightingRingResourceName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_operations.py index 41df74bd4bca..beb0b64e3e8f 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,82 +6,93 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar -import warnings +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.pipeline.transport import AsyncHttpResponse +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 ..._vendor import _convert_request +from ...operations._operations import build_list_request T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class Operations: - """Operations async operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`operations` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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, **kwargs: Any - ) -> AsyncIterable["_models.OperationListResult"]: + ) -> AsyncIterable[_models.OperationListResult]: """Lists all of the available REST API operations of the Microsoft.TestBase provider. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either OperationListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.OperationListResult] + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.OperationListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.OperationListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.OperationListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('OperationListResult', pipeline_response) + deserialized = self._deserialize("OperationListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -89,17 +101,22 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/providers/Microsoft.TestBase/operations'} # type: ignore + list.metadata = {'url': "/providers/Microsoft.TestBase/operations"} # type: ignore diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_os_updates_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_os_updates_operations.py index 1bdd17f818bb..d5f7ec9083fa 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_os_updates_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_os_updates_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,42 +6,45 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union -import warnings +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar, Union from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.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._os_updates_operations import build_get_request, build_list_request T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class OSUpdatesOperations: - """OSUpdatesOperations async operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`os_updates` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name: str, @@ -48,7 +52,7 @@ def list( package_name: str, os_update_type: Union[str, "_models.OsUpdateType"], **kwargs: Any - ) -> AsyncIterable["_models.OSUpdateListResult"]: + ) -> AsyncIterable[_models.OSUpdateListResult]: """Lists the OS Updates in which the package were tested before. :param resource_group_name: The name of the resource group that contains the resource. @@ -58,49 +62,59 @@ def list( :param package_name: The resource name of the Test Base Package. :type package_name: str :param os_update_type: The type of the OS Update. - :type os_update_type: str or ~test_base.models.OsUpdateType + :type os_update_type: str or ~azure.mgmt.testbase.models.OsUpdateType :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either OSUpdateListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.OSUpdateListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.OSUpdateListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.OSUpdateListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.OSUpdateListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['osUpdateType'] = self._serialize.query("os_update_type", os_update_type, 'str') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + os_update_type=os_update_type, + template_url=self.list.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + os_update_type=os_update_type, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('OSUpdateListResult', pipeline_response) + deserialized = self._deserialize("OSUpdateListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -109,21 +123,27 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/osUpdates'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/osUpdates"} # type: ignore + @distributed_trace_async async def get( self, resource_group_name: str, @@ -131,7 +151,7 @@ async def get( package_name: str, os_update_resource_name: str, **kwargs: Any - ) -> "_models.OSUpdateResource": + ) -> _models.OSUpdateResource: """Gets an OS Update by name in which the package was tested before. :param resource_group_name: The name of the resource group that contains the resource. @@ -144,43 +164,45 @@ async def get( :type os_update_resource_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: OSUpdateResource, or the result of cls(response) - :rtype: ~test_base.models.OSUpdateResource + :rtype: ~azure.mgmt.testbase.models.OSUpdateResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.OSUpdateResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'osUpdateResourceName': self._serialize.url("os_update_resource_name", os_update_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.OSUpdateResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + os_update_resource_name=os_update_resource_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('OSUpdateResource', pipeline_response) @@ -189,4 +211,6 @@ async def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/osUpdates/{osUpdateResourceName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/osUpdates/{osUpdateResourceName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_packages_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_packages_operations.py index 73704810f65c..23abe27a3fe5 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_packages_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_packages_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,50 +6,53 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union -import warnings +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar, Union, cast from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.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._packages_operations import build_create_request_initial, build_delete_request_initial, build_get_download_url_request, build_get_request, build_hard_delete_request_initial, build_list_by_test_base_account_request, build_run_test_request, build_update_request_initial T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class PackagesOperations: - """PackagesOperations async operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`packages` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_test_base_account( self, resource_group_name: str, test_base_account_name: str, **kwargs: Any - ) -> AsyncIterable["_models.PackageListResult"]: + ) -> AsyncIterable[_models.PackageListResult]: """Lists all the packages under a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -57,44 +61,52 @@ def list_by_test_base_account( :type test_base_account_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PackageListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.PackageListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.PackageListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.PackageListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.PackageListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list_by_test_base_account.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_test_base_account_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=self.list_by_test_base_account.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_test_base_account_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('PackageListResult', pipeline_response) + deserialized = self._deserialize("PackageListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -103,68 +115,73 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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_test_base_account.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages'} # type: ignore + list_by_test_base_account.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages"} # type: ignore async def _create_initial( self, resource_group_name: str, test_base_account_name: str, package_name: str, - parameters: "_models.PackageResource", + parameters: _models.PackageResource, **kwargs: Any - ) -> "_models.PackageResource": - cls = kwargs.pop('cls', None) # type: ClsType["_models.PackageResource"] + ) -> _models.PackageResource: error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._create_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(parameters, 'PackageResource') - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.PackageResource] + + _json = self._serialize.body(parameters, 'PackageResource') + + request = build_create_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self._create_initial.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 200: @@ -172,22 +189,26 @@ async def _create_initial( if response.status_code == 201: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('PackageResource', pipeline_response) if cls: return cls(pipeline_response, deserialized, response_headers) return deserialized - _create_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}'} # type: ignore + _create_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}"} # type: ignore + + + @distributed_trace_async async def begin_create( self, resource_group_name: str, test_base_account_name: str, package_name: str, - parameters: "_models.PackageResource", + parameters: _models.PackageResource, **kwargs: Any - ) -> AsyncLROPoller["_models.PackageResource"]: + ) -> AsyncLROPoller[_models.PackageResource]: """Create or replace (overwrite/recreate, with potential downtime) a Test Base Package. :param resource_group_name: The name of the resource group that contains the resource. @@ -197,53 +218,62 @@ async def begin_create( :param package_name: The resource name of the Test Base Package. :type package_name: str :param parameters: Parameters supplied to create a Test Base Package. - :type parameters: ~test_base.models.PackageResource + :type parameters: ~azure.mgmt.testbase.models.PackageResource :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. + :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 PackageResource or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~test_base.models.PackageResource] - :raises ~azure.core.exceptions.HttpResponseError: + :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 PackageResource or the result of + cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.testbase.models.PackageResource] + :raises: ~azure.core.exceptions.HttpResponseError """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.PackageResource] polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["_models.PackageResource"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = await self._create_initial( + raw_result = await self._create_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, package_name=package_name, parameters=parameters, + api_version=api_version, + content_type=content_type, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): deserialized = self._deserialize('PackageResource', pipeline_response) - if cls: return cls(pipeline_response, deserialized, {}) return deserialized - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = AsyncNoPolling() + if polling is True: + polling_method = cast(AsyncPollingMethod, AsyncARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: AsyncPollingMethod + elif polling is False: polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) else: polling_method = polling if cont_token: return AsyncLROPoller.from_continuation_token( @@ -252,85 +282,90 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}'} # type: ignore + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + + begin_create.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}"} # type: ignore async def _update_initial( self, resource_group_name: str, test_base_account_name: str, package_name: str, - parameters: "_models.PackageUpdateParameters", + parameters: _models.PackageUpdateParameters, **kwargs: Any - ) -> Optional["_models.PackageResource"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.PackageResource"]] + ) -> Optional[_models.PackageResource]: error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._update_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(parameters, 'PackageUpdateParameters') - body_content_kwargs['content'] = body_content - request = self._client.patch(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[Optional[_models.PackageResource]] + + _json = self._serialize.body(parameters, 'PackageUpdateParameters') + + request = build_update_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self._update_initial.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) - response_headers = {} deserialized = None + response_headers = {} if response.status_code == 200: deserialized = self._deserialize('PackageResource', pipeline_response) if response.status_code == 201: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if response.status_code == 202: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if cls: return cls(pipeline_response, deserialized, response_headers) return deserialized - _update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}'} # type: ignore + _update_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}"} # type: ignore + + + @distributed_trace_async async def begin_update( self, resource_group_name: str, test_base_account_name: str, package_name: str, - parameters: "_models.PackageUpdateParameters", + parameters: _models.PackageUpdateParameters, **kwargs: Any - ) -> AsyncLROPoller["_models.PackageResource"]: + ) -> AsyncLROPoller[_models.PackageResource]: """Update an existing Test Base Package. :param resource_group_name: The name of the resource group that contains the resource. @@ -340,53 +375,62 @@ async def begin_update( :param package_name: The resource name of the Test Base Package. :type package_name: str :param parameters: Parameters supplied to update a Test Base Package. - :type parameters: ~test_base.models.PackageUpdateParameters + :type parameters: ~azure.mgmt.testbase.models.PackageUpdateParameters :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. + :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 PackageResource or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~test_base.models.PackageResource] - :raises ~azure.core.exceptions.HttpResponseError: + :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 PackageResource or the result of + cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.testbase.models.PackageResource] + :raises: ~azure.core.exceptions.HttpResponseError """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.PackageResource] polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["_models.PackageResource"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = await self._update_initial( + raw_result = await self._update_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, package_name=package_name, parameters=parameters, + api_version=api_version, + content_type=content_type, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): deserialized = self._deserialize('PackageResource', pipeline_response) - if cls: return cls(pipeline_response, deserialized, {}) return deserialized - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = AsyncNoPolling() + if polling is True: + polling_method = cast(AsyncPollingMethod, AsyncARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: AsyncPollingMethod + elif polling is False: polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) else: polling_method = polling if cont_token: return AsyncLROPoller.from_continuation_token( @@ -395,63 +439,67 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}'} # type: ignore + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - async def _delete_initial( + begin_update.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}"} # type: ignore + + async def _delete_initial( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, test_base_account_name: str, package_name: str, **kwargs: Any ) -> None: - cls = kwargs.pop('cls', None) # type: ClsType[None] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self._delete_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[None] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = build_delete_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + 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) # type: ignore - request = self._client.delete(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 202: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if cls: return cls(pipeline_response, None, response_headers) - _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}'} # type: ignore + _delete_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}"} # type: ignore - async def begin_delete( + + @distributed_trace_async + async def begin_delete( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, test_base_account_name: str, @@ -468,46 +516,53 @@ async def begin_delete( :type package_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. + :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. + :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: + :raises: ~azure.core.exceptions.HttpResponseError """ - polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str cls = kwargs.pop('cls', None) # type: ClsType[None] + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = await self._delete_initial( + raw_result = await self._delete_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, package_name=package_name, + api_version=api_version, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): if cls: return cls(pipeline_response, None, {}) - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = AsyncNoPolling() + if polling is True: + polling_method = cast(AsyncPollingMethod, AsyncARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: AsyncPollingMethod + elif polling is False: polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) else: polling_method = polling if cont_token: return AsyncLROPoller.from_continuation_token( @@ -516,17 +571,18 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}'} # type: ignore + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}"} # type: ignore + + @distributed_trace_async async def get( self, resource_group_name: str, test_base_account_name: str, package_name: str, **kwargs: Any - ) -> "_models.PackageResource": + ) -> _models.PackageResource: """Gets a Test Base Package. :param resource_group_name: The name of the resource group that contains the resource. @@ -537,42 +593,44 @@ async def get( :type package_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: PackageResource, or the result of cls(response) - :rtype: ~test_base.models.PackageResource + :rtype: ~azure.mgmt.testbase.models.PackageResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.PackageResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.PackageResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('PackageResource', pipeline_response) @@ -581,61 +639,67 @@ async def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}'} # type: ignore - async def _hard_delete_initial( + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}"} # type: ignore + + + async def _hard_delete_initial( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, test_base_account_name: str, package_name: str, **kwargs: Any ) -> None: - cls = kwargs.pop('cls', None) # type: ClsType[None] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self._hard_delete_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[None] + + + request = build_hard_delete_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + template_url=self._hard_delete_initial.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 202: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if cls: return cls(pipeline_response, None, response_headers) - _hard_delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/hardDelete'} # type: ignore + _hard_delete_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/hardDelete"} # type: ignore - async def begin_hard_delete( + + @distributed_trace_async + async def begin_hard_delete( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, test_base_account_name: str, @@ -652,46 +716,53 @@ async def begin_hard_delete( :type package_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. + :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. + :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: + :raises: ~azure.core.exceptions.HttpResponseError """ - polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str cls = kwargs.pop('cls', None) # type: ClsType[None] + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = await self._hard_delete_initial( + raw_result = await self._hard_delete_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, package_name=package_name, + api_version=api_version, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): if cls: return cls(pipeline_response, None, {}) - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = AsyncNoPolling() + if polling is True: + polling_method = cast(AsyncPollingMethod, AsyncARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: AsyncPollingMethod + elif polling is False: polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) else: polling_method = polling if cont_token: return AsyncLROPoller.from_continuation_token( @@ -700,17 +771,18 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_hard_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/hardDelete'} # type: ignore + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + + begin_hard_delete.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/hardDelete"} # type: ignore + @distributed_trace_async async def get_download_url( self, resource_group_name: str, test_base_account_name: str, package_name: str, **kwargs: Any - ) -> "_models.DownloadURLResponse": + ) -> _models.DownloadURLResponse: """Gets the download URL of a package. :param resource_group_name: The name of the resource group that contains the resource. @@ -721,42 +793,44 @@ async def get_download_url( :type package_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: DownloadURLResponse, or the result of cls(response) - :rtype: ~test_base.models.DownloadURLResponse + :rtype: ~azure.mgmt.testbase.models.DownloadURLResponse :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.DownloadURLResponse"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get_download_url.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.DownloadURLResponse] + + + request = build_get_download_url_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + template_url=self.get_download_url.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('DownloadURLResponse', pipeline_response) @@ -765,4 +839,87 @@ async def get_download_url( return cls(pipeline_response, deserialized, {}) return deserialized - get_download_url.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/getDownloadUrl'} # type: ignore + + get_download_url.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/getDownloadUrl"} # type: ignore + + + @distributed_trace_async + async def run_test( # pylint: disable=inconsistent-return-statements + self, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + parameters: Optional[_models.PackageRunTestParameters] = None, + **kwargs: Any + ) -> None: + """Trigger a test run on the package. + + :param resource_group_name: The name of the resource group that contains the resource. + :type resource_group_name: str + :param test_base_account_name: The resource name of the Test Base Account. + :type test_base_account_name: str + :param package_name: The resource name of the Test Base Package. + :type package_name: str + :param parameters: The parameters supplied to the Test Base Package to start a Test Run. + Default value is None. + :type parameters: ~azure.mgmt.testbase.models.PackageRunTestParameters + :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 + } + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[None] + + if parameters is not None: + _json = self._serialize.body(parameters, 'PackageRunTestParameters') + else: + _json = None + + request = build_run_test_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self.run_test.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # 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) + + response_headers = {} + if response.status_code == 202: + response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + + + if cls: + return cls(pipeline_response, None, response_headers) + + run_test.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/runTest"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_patch.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_patch.py new file mode 100644 index 000000000000..0ad201a8c586 --- /dev/null +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_patch.py @@ -0,0 +1,19 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" +from typing import List + +__all__: List[str] = [] # Add all objects you want publicly available to users at this package level + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_skus_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_skus_operations.py index 62304d40ea64..95d7dd60b4b0 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_skus_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_skus_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,86 +6,96 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar -import warnings +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.pipeline.transport import AsyncHttpResponse +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 ..._vendor import _convert_request +from ...operations._skus_operations import build_list_request T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class SkusOperations: - """SkusOperations async operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`skus` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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, **kwargs: Any - ) -> AsyncIterable["_models.TestBaseAccountSKUListResult"]: + ) -> AsyncIterable[_models.TestBaseAccountSKUListResult]: """Lists the available SKUs of Test Base Account 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 TestBaseAccountSKUListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.TestBaseAccountSKUListResult] + :return: An iterator like instance of either TestBaseAccountSKUListResult or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.TestBaseAccountSKUListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountSKUListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountSKUListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + 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) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('TestBaseAccountSKUListResult', pipeline_response) + deserialized = self._deserialize("TestBaseAccountSKUListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -93,17 +104,22 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.TestBase/skus'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/providers/Microsoft.TestBase/skus"} # type: ignore diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_base_accounts_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_base_accounts_operations.py index 3b64f98c78c5..b457638b7b3b 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_base_accounts_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_base_accounts_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,94 +6,105 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union -import warnings +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar, Union, cast from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.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._test_base_accounts_operations import build_check_package_name_availability_request, build_create_request_initial, build_delete_request_initial, build_get_file_upload_url_request, build_get_request, build_list_by_resource_group_request, build_list_by_subscription_request, build_offboard_request_initial, build_update_request_initial T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class TestBaseAccountsOperations: - """TestBaseAccountsOperations async operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`test_base_accounts` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_subscription( self, get_deleted: Optional[bool] = None, **kwargs: Any - ) -> AsyncIterable["_models.TestBaseAccountListResult"]: + ) -> AsyncIterable[_models.TestBaseAccountListResult]: """Lists all the Test Base Accounts in a subscription. This API is required by ARM guidelines. :param get_deleted: The flag indicating if we need to include the Test Base Accounts which were - soft deleted before. + soft deleted before. Default value is None. :type get_deleted: bool :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either TestBaseAccountListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.TestBaseAccountListResult] + :return: An iterator like instance of either TestBaseAccountListResult or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.TestBaseAccountListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list_by_subscription.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - if get_deleted is not None: - query_parameters['getDeleted'] = self._serialize.query("get_deleted", get_deleted, 'bool') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + get_deleted=get_deleted, + template_url=self.list_by_subscription.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + get_deleted=get_deleted, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('TestBaseAccountListResult', pipeline_response) + deserialized = self._deserialize("TestBaseAccountListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -101,75 +113,90 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.TestBase/testBaseAccounts'} # type: ignore + list_by_subscription.metadata = {'url': "/subscriptions/{subscriptionId}/providers/Microsoft.TestBase/testBaseAccounts"} # type: ignore + @distributed_trace def list_by_resource_group( self, resource_group_name: str, get_deleted: Optional[bool] = None, **kwargs: Any - ) -> AsyncIterable["_models.TestBaseAccountListResult"]: + ) -> AsyncIterable[_models.TestBaseAccountListResult]: """Lists all the Test Base Accounts in a resource group. :param resource_group_name: The name of the resource group that contains the resource. :type resource_group_name: str :param get_deleted: The flag indicating if we need to include the Test Base Accounts which were - soft deleted before. + soft deleted before. Default value is None. :type get_deleted: bool :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either TestBaseAccountListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.TestBaseAccountListResult] + :return: An iterator like instance of either TestBaseAccountListResult or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.TestBaseAccountListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list_by_resource_group.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - if get_deleted is not None: - query_parameters['getDeleted'] = self._serialize.query("get_deleted", get_deleted, 'bool') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_resource_group_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + api_version=api_version, + get_deleted=get_deleted, + 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) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_resource_group_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + api_version=api_version, + get_deleted=get_deleted, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('TestBaseAccountListResult', pipeline_response) + deserialized = self._deserialize("TestBaseAccountListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -178,69 +205,73 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.TestBase/testBaseAccounts'} # type: ignore + list_by_resource_group.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts"} # type: ignore async def _create_initial( self, resource_group_name: str, test_base_account_name: str, - parameters: "_models.TestBaseAccountResource", + parameters: _models.TestBaseAccountResource, restore: Optional[bool] = None, **kwargs: Any - ) -> "_models.TestBaseAccountResource": - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountResource"] + ) -> _models.TestBaseAccountResource: error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._create_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - if restore is not None: - query_parameters['restore'] = self._serialize.query("restore", restore, 'bool') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(parameters, 'TestBaseAccountResource') - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountResource] + + _json = self._serialize.body(parameters, 'TestBaseAccountResource') + + request = build_create_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + content_type=content_type, + json=_json, + restore=restore, + template_url=self._create_initial.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 200: @@ -248,22 +279,26 @@ async def _create_initial( if response.status_code == 201: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('TestBaseAccountResource', pipeline_response) if cls: return cls(pipeline_response, deserialized, response_headers) return deserialized - _create_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}'} # type: ignore + _create_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}"} # type: ignore + + + @distributed_trace_async async def begin_create( self, resource_group_name: str, test_base_account_name: str, - parameters: "_models.TestBaseAccountResource", + parameters: _models.TestBaseAccountResource, restore: Optional[bool] = None, **kwargs: Any - ) -> AsyncLROPoller["_models.TestBaseAccountResource"]: + ) -> AsyncLROPoller[_models.TestBaseAccountResource]: """Create or replace (overwrite/recreate, with potential downtime) a Test Base Account in the specified subscription. @@ -272,55 +307,65 @@ async def begin_create( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :param parameters: Parameters supplied to create a Test Base Account. - :type parameters: ~test_base.models.TestBaseAccountResource + :type parameters: ~azure.mgmt.testbase.models.TestBaseAccountResource :param restore: The flag indicating if we would like to restore the Test Base Accounts which - were soft deleted before. + were soft deleted before. Default value is None. :type restore: 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. + :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 TestBaseAccountResource or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~test_base.models.TestBaseAccountResource] - :raises ~azure.core.exceptions.HttpResponseError: + :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 TestBaseAccountResource or the + result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.testbase.models.TestBaseAccountResource] + :raises: ~azure.core.exceptions.HttpResponseError """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountResource] polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountResource"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = await self._create_initial( + raw_result = await self._create_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, parameters=parameters, restore=restore, + api_version=api_version, + content_type=content_type, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): deserialized = self._deserialize('TestBaseAccountResource', pipeline_response) - if cls: return cls(pipeline_response, deserialized, {}) return deserialized - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = AsyncNoPolling() + if polling is True: + polling_method = cast(AsyncPollingMethod, AsyncARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: AsyncPollingMethod + elif polling is False: polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) else: polling_method = polling if cont_token: return AsyncLROPoller.from_continuation_token( @@ -329,82 +374,87 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}'} # type: ignore + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + + begin_create.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}"} # type: ignore async def _update_initial( self, resource_group_name: str, test_base_account_name: str, - parameters: "_models.TestBaseAccountUpdateParameters", + parameters: _models.TestBaseAccountUpdateParameters, **kwargs: Any - ) -> Optional["_models.TestBaseAccountResource"]: - cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.TestBaseAccountResource"]] + ) -> Optional[_models.TestBaseAccountResource]: error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._update_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(parameters, 'TestBaseAccountUpdateParameters') - body_content_kwargs['content'] = body_content - request = self._client.patch(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[Optional[_models.TestBaseAccountResource]] + + _json = self._serialize.body(parameters, 'TestBaseAccountUpdateParameters') + + request = build_update_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self._update_initial.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) - response_headers = {} deserialized = None + response_headers = {} if response.status_code == 200: deserialized = self._deserialize('TestBaseAccountResource', pipeline_response) if response.status_code == 201: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if response.status_code == 202: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if cls: return cls(pipeline_response, deserialized, response_headers) return deserialized - _update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}'} # type: ignore + _update_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}"} # type: ignore + + + @distributed_trace_async async def begin_update( self, resource_group_name: str, test_base_account_name: str, - parameters: "_models.TestBaseAccountUpdateParameters", + parameters: _models.TestBaseAccountUpdateParameters, **kwargs: Any - ) -> AsyncLROPoller["_models.TestBaseAccountResource"]: + ) -> AsyncLROPoller[_models.TestBaseAccountResource]: """Update an existing Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -412,51 +462,61 @@ async def begin_update( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :param parameters: Parameters supplied to update a Test Base Account. - :type parameters: ~test_base.models.TestBaseAccountUpdateParameters + :type parameters: ~azure.mgmt.testbase.models.TestBaseAccountUpdateParameters :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. + :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 TestBaseAccountResource or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~test_base.models.TestBaseAccountResource] - :raises ~azure.core.exceptions.HttpResponseError: + :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 TestBaseAccountResource or the + result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.testbase.models.TestBaseAccountResource] + :raises: ~azure.core.exceptions.HttpResponseError """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountResource] polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountResource"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = await self._update_initial( + raw_result = await self._update_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, parameters=parameters, + api_version=api_version, + content_type=content_type, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): deserialized = self._deserialize('TestBaseAccountResource', pipeline_response) - if cls: return cls(pipeline_response, deserialized, {}) return deserialized - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = AsyncNoPolling() + if polling is True: + polling_method = cast(AsyncPollingMethod, AsyncARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: AsyncPollingMethod + elif polling is False: polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) else: polling_method = polling if cont_token: return AsyncLROPoller.from_continuation_token( @@ -465,61 +525,65 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}'} # type: ignore + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + + begin_update.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}"} # type: ignore - async def _delete_initial( + async def _delete_initial( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, test_base_account_name: str, **kwargs: Any ) -> None: - cls = kwargs.pop('cls', None) # type: ClsType[None] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self._delete_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[None] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = build_delete_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + 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) # type: ignore - request = self._client.delete(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 202: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if cls: return cls(pipeline_response, None, response_headers) - _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}'} # type: ignore + _delete_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}"} # type: ignore + - async def begin_delete( + @distributed_trace_async + async def begin_delete( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, test_base_account_name: str, @@ -533,44 +597,52 @@ async def begin_delete( :type test_base_account_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. + :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. + :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: + :raises: ~azure.core.exceptions.HttpResponseError """ - polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str cls = kwargs.pop('cls', None) # type: ClsType[None] + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = await self._delete_initial( + raw_result = await self._delete_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, + api_version=api_version, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): if cls: return cls(pipeline_response, None, {}) - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = AsyncNoPolling() + if polling is True: + polling_method = cast(AsyncPollingMethod, AsyncARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: AsyncPollingMethod + elif polling is False: polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) else: polling_method = polling if cont_token: return AsyncLROPoller.from_continuation_token( @@ -579,16 +651,17 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}'} # type: ignore + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}"} # type: ignore + + @distributed_trace_async async def get( self, resource_group_name: str, test_base_account_name: str, **kwargs: Any - ) -> "_models.TestBaseAccountResource": + ) -> _models.TestBaseAccountResource: """Gets a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -597,41 +670,43 @@ async def get( :type test_base_account_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: TestBaseAccountResource, or the result of cls(response) - :rtype: ~test_base.models.TestBaseAccountResource + :rtype: ~azure.mgmt.testbase.models.TestBaseAccountResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('TestBaseAccountResource', pipeline_response) @@ -640,59 +715,65 @@ async def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}'} # type: ignore - async def _offboard_initial( + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}"} # type: ignore + + + async def _offboard_initial( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, test_base_account_name: str, **kwargs: Any ) -> None: - cls = kwargs.pop('cls', None) # type: ClsType[None] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self._offboard_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[None] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = build_offboard_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=self._offboard_initial.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 202: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if cls: return cls(pipeline_response, None, response_headers) - _offboard_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/offboard'} # type: ignore + _offboard_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/offboard"} # type: ignore - async def begin_offboard( + + @distributed_trace_async + async def begin_offboard( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, test_base_account_name: str, @@ -706,44 +787,52 @@ async def begin_offboard( :type test_base_account_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. + :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. + :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: + :raises: ~azure.core.exceptions.HttpResponseError """ - polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str cls = kwargs.pop('cls', None) # type: ClsType[None] + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = await self._offboard_initial( + raw_result = await self._offboard_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, + api_version=api_version, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): if cls: return cls(pipeline_response, None, {}) - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = AsyncNoPolling() + if polling is True: + polling_method = cast(AsyncPollingMethod, AsyncARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: AsyncPollingMethod + elif polling is False: polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) else: polling_method = polling if cont_token: return AsyncLROPoller.from_continuation_token( @@ -752,17 +841,18 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_offboard.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/offboard'} # type: ignore + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_offboard.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/offboard"} # type: ignore + + @distributed_trace_async async def get_file_upload_url( self, resource_group_name: str, test_base_account_name: str, - parameters: Optional["_models.GetFileUploadURLParameters"] = None, + parameters: Optional[_models.GetFileUploadURLParameters] = None, **kwargs: Any - ) -> "_models.FileUploadURLResponse": + ) -> _models.FileUploadURLResponse: """Gets the file upload URL of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -770,52 +860,54 @@ async def get_file_upload_url( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :param parameters: Parameters supplied to the Test Base Account GetFileUploadURL operation. - :type parameters: ~test_base.models.GetFileUploadURLParameters + Default value is None. + :type parameters: ~azure.mgmt.testbase.models.GetFileUploadURLParameters :keyword callable cls: A custom type or function that will be passed the direct response :return: FileUploadURLResponse, or the result of cls(response) - :rtype: ~test_base.models.FileUploadURLResponse + :rtype: ~azure.mgmt.testbase.models.FileUploadURLResponse :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.FileUploadURLResponse"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.get_file_upload_url.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.FileUploadURLResponse] - body_content_kwargs = {} # type: Dict[str, Any] if parameters is not None: - body_content = self._serialize.body(parameters, 'GetFileUploadURLParameters') + _json = self._serialize.body(parameters, 'GetFileUploadURLParameters') else: - body_content = None - body_content_kwargs['content'] = body_content - request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + _json = None + + request = build_get_file_upload_url_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self.get_file_upload_url.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('FileUploadURLResponse', pipeline_response) @@ -824,15 +916,18 @@ async def get_file_upload_url( return cls(pipeline_response, deserialized, {}) return deserialized - get_file_upload_url.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/getFileUploadUrl'} # type: ignore + get_file_upload_url.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/getFileUploadUrl"} # type: ignore + + + @distributed_trace_async async def check_package_name_availability( self, resource_group_name: str, test_base_account_name: str, - parameters: "_models.PackageCheckNameAvailabilityParameters", + parameters: _models.PackageCheckNameAvailabilityParameters, **kwargs: Any - ) -> "_models.CheckNameAvailabilityResult": + ) -> _models.CheckNameAvailabilityResult: """Checks that the Test Base Package name and version is valid and is not already in use. :param resource_group_name: The name of the resource group that contains the resource. @@ -841,49 +936,50 @@ async def check_package_name_availability( :type test_base_account_name: str :param parameters: Parameters supplied to the Test Base Package CheckNameAvailability operation. - :type parameters: ~test_base.models.PackageCheckNameAvailabilityParameters + :type parameters: ~azure.mgmt.testbase.models.PackageCheckNameAvailabilityParameters :keyword callable cls: A custom type or function that will be passed the direct response :return: CheckNameAvailabilityResult, or the result of cls(response) - :rtype: ~test_base.models.CheckNameAvailabilityResult + :rtype: ~azure.mgmt.testbase.models.CheckNameAvailabilityResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.CheckNameAvailabilityResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.check_package_name_availability.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(parameters, 'PackageCheckNameAvailabilityParameters') - body_content_kwargs['content'] = body_content - request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.CheckNameAvailabilityResult] + + _json = self._serialize.body(parameters, 'PackageCheckNameAvailabilityParameters') + + request = build_check_package_name_availability_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self.check_package_name_availability.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('CheckNameAvailabilityResult', pipeline_response) @@ -892,4 +988,6 @@ async def check_package_name_availability( return cls(pipeline_response, deserialized, {}) return deserialized - check_package_name_availability.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/checkPackageNameAvailability'} # type: ignore + + check_package_name_availability.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/checkPackageNameAvailability"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_results_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_results_operations.py index 970351f925b2..b3b6f118bc7f 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_results_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_results_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,42 +6,45 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union -import warnings +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar, Union from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.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._test_results_operations import build_get_console_log_download_url_request, build_get_download_url_request, build_get_request, build_get_video_download_url_request, build_list_request T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class TestResultsOperations: - """TestResultsOperations async operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`test_results` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name: str, @@ -49,7 +53,7 @@ def list( os_update_type: Union[str, "_models.OsUpdateType"], filter: Optional[str] = None, **kwargs: Any - ) -> AsyncIterable["_models.TestResultListResult"]: + ) -> AsyncIterable[_models.TestResultListResult]: """Lists all the Test Results with specified OS Update type for a Test Base Package. Can be filtered by osName, releaseName, flightingRing, buildVersion, buildRevision. @@ -60,53 +64,65 @@ def list( :param package_name: The resource name of the Test Base Package. :type package_name: str :param os_update_type: The type of the OS Update. - :type os_update_type: str or ~test_base.models.OsUpdateType - :param filter: Odata filter. + :type os_update_type: str or ~azure.mgmt.testbase.models.OsUpdateType + :param filter: Odata filter. Default value is None. :type filter: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either TestResultListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.TestResultListResult] + :return: An iterator like instance of either TestResultListResult or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.TestResultListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestResultListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestResultListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['osUpdateType'] = self._serialize.query("os_update_type", os_update_type, 'str') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + os_update_type=os_update_type, + filter=filter, + template_url=self.list.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + os_update_type=os_update_type, + filter=filter, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('TestResultListResult', pipeline_response) + deserialized = self._deserialize("TestResultListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -115,21 +131,27 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults"} # type: ignore + @distributed_trace_async async def get( self, resource_group_name: str, @@ -137,7 +159,7 @@ async def get( package_name: str, test_result_name: str, **kwargs: Any - ) -> "_models.TestResultResource": + ) -> _models.TestResultResource: """Get the Test Result by Id with specified OS Update type for a Test Base Package. :param resource_group_name: The name of the resource group that contains the resource. @@ -146,47 +168,49 @@ async def get( :type test_base_account_name: str :param package_name: The resource name of the Test Base Package. :type package_name: str - :param test_result_name: The Test Result Name. It equals to {osName}-{TestResultId} string. + :param test_result_name: The Test Result Name. It equals to TestResult-{TestResultId} string. :type test_result_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: TestResultResource, or the result of cls(response) - :rtype: ~test_base.models.TestResultResource + :rtype: ~azure.mgmt.testbase.models.TestResultResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestResultResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'testResultName': self._serialize.url("test_result_name", test_result_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestResultResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + test_result_name=test_result_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('TestResultResource', pipeline_response) @@ -195,8 +219,11 @@ async def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}'} # type: ignore + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}"} # type: ignore + + + @distributed_trace_async async def get_download_url( self, resource_group_name: str, @@ -204,7 +231,7 @@ async def get_download_url( package_name: str, test_result_name: str, **kwargs: Any - ) -> "_models.DownloadURLResponse": + ) -> _models.DownloadURLResponse: """Gets the download URL of the test result. :param resource_group_name: The name of the resource group that contains the resource. @@ -213,47 +240,49 @@ async def get_download_url( :type test_base_account_name: str :param package_name: The resource name of the Test Base Package. :type package_name: str - :param test_result_name: The Test Result Name. It equals to {osName}-{TestResultId} string. + :param test_result_name: The Test Result Name. It equals to TestResult-{TestResultId} string. :type test_result_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: DownloadURLResponse, or the result of cls(response) - :rtype: ~test_base.models.DownloadURLResponse + :rtype: ~azure.mgmt.testbase.models.DownloadURLResponse :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.DownloadURLResponse"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get_download_url.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'testResultName': self._serialize.url("test_result_name", test_result_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.DownloadURLResponse] + + + request = build_get_download_url_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + test_result_name=test_result_name, + api_version=api_version, + template_url=self.get_download_url.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('DownloadURLResponse', pipeline_response) @@ -262,8 +291,11 @@ async def get_download_url( return cls(pipeline_response, deserialized, {}) return deserialized - get_download_url.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/getDownloadUrl'} # type: ignore + get_download_url.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/getDownloadUrl"} # type: ignore + + + @distributed_trace_async async def get_video_download_url( self, resource_group_name: str, @@ -271,7 +303,7 @@ async def get_video_download_url( package_name: str, test_result_name: str, **kwargs: Any - ) -> "_models.DownloadURLResponse": + ) -> _models.DownloadURLResponse: """Gets the download URL of the test execution screen recording. :param resource_group_name: The name of the resource group that contains the resource. @@ -280,47 +312,128 @@ async def get_video_download_url( :type test_base_account_name: str :param package_name: The resource name of the Test Base Package. :type package_name: str - :param test_result_name: The Test Result Name. It equals to {osName}-{TestResultId} string. + :param test_result_name: The Test Result Name. It equals to TestResult-{TestResultId} string. :type test_result_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: DownloadURLResponse, or the result of cls(response) - :rtype: ~test_base.models.DownloadURLResponse + :rtype: ~azure.mgmt.testbase.models.DownloadURLResponse :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.DownloadURLResponse"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get_video_download_url.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'testResultName': self._serialize.url("test_result_name", test_result_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.DownloadURLResponse] + + + request = build_get_video_download_url_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + test_result_name=test_result_name, + api_version=api_version, + template_url=self.get_video_download_url.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # 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) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + deserialized = self._deserialize('DownloadURLResponse', pipeline_response) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + get_video_download_url.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/getVideoDownloadUrl"} # type: ignore + + + @distributed_trace_async + async def get_console_log_download_url( + self, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + test_result_name: str, + parameters: _models.TestResultConsoleLogDownloadURLParameters, + **kwargs: Any + ) -> _models.DownloadURLResponse: + """Gets the download URL of the test execution console log file. + + :param resource_group_name: The name of the resource group that contains the resource. + :type resource_group_name: str + :param test_base_account_name: The resource name of the Test Base Account. + :type test_base_account_name: str + :param package_name: The resource name of the Test Base Package. + :type package_name: str + :param test_result_name: The Test Result Name. It equals to TestResult-{TestResultId} string. + :type test_result_name: str + :param parameters: Parameters supplied to the Test Result GetConsoleLogDownloadUrl operation. + :type parameters: ~azure.mgmt.testbase.models.TestResultConsoleLogDownloadURLParameters + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DownloadURLResponse, or the result of cls(response) + :rtype: ~azure.mgmt.testbase.models.DownloadURLResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.DownloadURLResponse] + + _json = self._serialize.body(parameters, 'TestResultConsoleLogDownloadURLParameters') + + request = build_get_console_log_download_url_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + test_result_name=test_result_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self.get_console_log_download_url.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('DownloadURLResponse', pipeline_response) @@ -329,4 +442,6 @@ async def get_video_download_url( return cls(pipeline_response, deserialized, {}) return deserialized - get_video_download_url.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/getVideoDownloadUrl'} # type: ignore + + get_console_log_download_url.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/getConsoleLogDownloadUrl"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_summaries_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_summaries_operations.py index 224cb5620afe..91f42dac1883 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_summaries_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_summaries_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,48 +6,51 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar -import warnings +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.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._test_summaries_operations import build_get_request, build_list_request T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class TestSummariesOperations: - """TestSummariesOperations async operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`test_summaries` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name: str, test_base_account_name: str, **kwargs: Any - ) -> AsyncIterable["_models.TestSummaryListResult"]: + ) -> AsyncIterable[_models.TestSummaryListResult]: """Lists the Test Summaries of all the packages under a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -54,45 +58,55 @@ def list( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either TestSummaryListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.TestSummaryListResult] + :return: An iterator like instance of either TestSummaryListResult or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.TestSummaryListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestSummaryListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestSummaryListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + 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) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('TestSummaryListResult', pipeline_response) + deserialized = self._deserialize("TestSummaryListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -101,28 +115,34 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testSummaries'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testSummaries"} # type: ignore + @distributed_trace_async async def get( self, resource_group_name: str, test_base_account_name: str, test_summary_name: str, **kwargs: Any - ) -> "_models.TestSummaryResource": + ) -> _models.TestSummaryResource: """Gets a Test Summary with specific name from all the Test Summaries of all the packages under a Test Base Account. @@ -134,42 +154,44 @@ async def get( :type test_summary_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: TestSummaryResource, or the result of cls(response) - :rtype: ~test_base.models.TestSummaryResource + :rtype: ~azure.mgmt.testbase.models.TestSummaryResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestSummaryResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'testSummaryName': self._serialize.url("test_summary_name", test_summary_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestSummaryResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + test_summary_name=test_summary_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('TestSummaryResource', pipeline_response) @@ -178,4 +200,6 @@ async def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testSummaries/{testSummaryName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testSummaries/{testSummaryName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_types_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_types_operations.py index 9579d78c8776..890e11b4087a 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_types_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_test_types_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,48 +6,51 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar -import warnings +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.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._test_types_operations import build_get_request, build_list_request T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class TestTypesOperations: - """TestTypesOperations async operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`test_types` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name: str, test_base_account_name: str, **kwargs: Any - ) -> AsyncIterable["_models.TestTypeListResult"]: + ) -> AsyncIterable[_models.TestTypeListResult]: """Lists all the test types of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -55,44 +59,52 @@ def list( :type test_base_account_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either TestTypeListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.TestTypeListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.TestTypeListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestTypeListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestTypeListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + 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) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('TestTypeListResult', pipeline_response) + deserialized = self._deserialize("TestTypeListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -101,28 +113,34 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testTypes'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testTypes"} # type: ignore + @distributed_trace_async async def get( self, resource_group_name: str, test_base_account_name: str, test_type_resource_name: str, **kwargs: Any - ) -> "_models.TestTypeResource": + ) -> _models.TestTypeResource: """Gets a test type of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -133,42 +151,44 @@ async def get( :type test_type_resource_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: TestTypeResource, or the result of cls(response) - :rtype: ~test_base.models.TestTypeResource + :rtype: ~azure.mgmt.testbase.models.TestTypeResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestTypeResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'testTypeResourceName': self._serialize.url("test_type_resource_name", test_type_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestTypeResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + test_type_resource_name=test_type_resource_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = await self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('TestTypeResource', pipeline_response) @@ -177,4 +197,6 @@ async def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testTypes/{testTypeResourceName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testTypes/{testTypeResourceName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_usage_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_usage_operations.py index f5ac4477be06..bcd0281f7eae 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_usage_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/aio/operations/_usage_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,99 +6,111 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar -import warnings +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.pipeline.transport import AsyncHttpResponse +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 ..._vendor import _convert_request +from ...operations._usage_operations import build_list_request T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] class UsageOperations: - """UsageOperations async operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.aio.TestBase`'s + :attr:`usage` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name: str, test_base_account_name: str, filter: Optional[str] = None, **kwargs: Any - ) -> AsyncIterable["_models.TestBaseAccountUsageDataList"]: + ) -> AsyncIterable[_models.TestBaseAccountUsageDataList]: """Lists the usage data of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. :type resource_group_name: str :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str - :param filter: Odata filter. + :param filter: Odata filter. Default value is None. :type filter: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either TestBaseAccountUsageDataList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~test_base.models.TestBaseAccountUsageDataList] + :return: An iterator like instance of either TestBaseAccountUsageDataList or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.testbase.models.TestBaseAccountUsageDataList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountUsageDataList"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountUsageDataList] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + filter=filter, + template_url=self.list.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + filter=filter, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request async def extract_data(pipeline_response): - deserialized = self._deserialize('TestBaseAccountUsageDataList', pipeline_response) + deserialized = self._deserialize("TestBaseAccountUsageDataList", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -106,17 +119,22 @@ async def extract_data(pipeline_response): async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = 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]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/usages'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/usages"} # type: ignore diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/__init__.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/__init__.py index 3a142f9bfee3..2e39938b7c39 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/__init__.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/__init__.py @@ -6,158 +6,93 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -try: - from ._models_py3 import AnalysisResultListResult - from ._models_py3 import AnalysisResultSingletonResource - from ._models_py3 import AnalysisResultSingletonResourceProperties - from ._models_py3 import AvailableOSListResult - from ._models_py3 import AvailableOSResource - from ._models_py3 import CPURegressionResultSingletonResourceProperties - from ._models_py3 import CPUUtilizationResultSingletonResourceProperties - from ._models_py3 import CheckNameAvailabilityResult - from ._models_py3 import Command - from ._models_py3 import CustomerEventListResult - from ._models_py3 import CustomerEventResource - from ._models_py3 import DistributionGroupListReceiverValue - from ._models_py3 import DownloadURLResponse - from ._models_py3 import EmailEventListResult - from ._models_py3 import EmailEventResource - from ._models_py3 import ErrorDefinition - from ._models_py3 import ErrorResponse - from ._models_py3 import FavoriteProcessListResult - from ._models_py3 import FavoriteProcessResource - from ._models_py3 import FileUploadURLResponse - from ._models_py3 import FlightingRingListResult - from ._models_py3 import FlightingRingResource - from ._models_py3 import GetFileUploadURLParameters - from ._models_py3 import IdentifiedFailure - from ._models_py3 import MemoryRegressionResultSingletonResourceProperties - from ._models_py3 import MemoryUtilizationResultSingletonResourceProperties - from ._models_py3 import NotificationEventReceiver - from ._models_py3 import NotificationReceiverValue - from ._models_py3 import OSUpdateListResult - from ._models_py3 import OSUpdateResource - from ._models_py3 import OSUpdateTestSummary - from ._models_py3 import OSUpdatesTestSummary - from ._models_py3 import Operation - from ._models_py3 import OperationDisplay - from ._models_py3 import OperationListResult - from ._models_py3 import PackageCheckNameAvailabilityParameters - from ._models_py3 import PackageListResult - from ._models_py3 import PackageResource - from ._models_py3 import PackageUpdateParameters - from ._models_py3 import PackageValidationResult - from ._models_py3 import ProxyResource - from ._models_py3 import RegressionResult - from ._models_py3 import RegressionTestDetails - from ._models_py3 import ReliabilityResult - from ._models_py3 import ReliabilityResultSingletonResourceProperties - from ._models_py3 import Resource - from ._models_py3 import ScriptExecutionResult - from ._models_py3 import ScriptExecutionResultSingletonResourceProperties - from ._models_py3 import SubscriptionReceiverValue - from ._models_py3 import SystemData - from ._models_py3 import TargetOSInfo - from ._models_py3 import Test - from ._models_py3 import TestAnalysisResult - from ._models_py3 import TestAnalysisResultSingletonResourceProperties - from ._models_py3 import TestBaseAccountListResult - from ._models_py3 import TestBaseAccountResource - from ._models_py3 import TestBaseAccountSKU - from ._models_py3 import TestBaseAccountSKUCapability - from ._models_py3 import TestBaseAccountSKUListResult - from ._models_py3 import TestBaseAccountUpdateParameters - from ._models_py3 import TestBaseAccountUsageData - from ._models_py3 import TestBaseAccountUsageDataList - from ._models_py3 import TestBaseAccountUsageName - from ._models_py3 import TestResultAnalysisSummary - from ._models_py3 import TestResultListResult - from ._models_py3 import TestResultResource - from ._models_py3 import TestSummaryListResult - from ._models_py3 import TestSummaryResource - from ._models_py3 import TestTypeListResult - from ._models_py3 import TestTypeResource - from ._models_py3 import TrackedResource - from ._models_py3 import UserObjectReceiverValue - from ._models_py3 import UtilizationBound - from ._models_py3 import UtilizationEntry - from ._models_py3 import UtilizationResult -except (SyntaxError, ImportError): - from ._models import AnalysisResultListResult # type: ignore - from ._models import AnalysisResultSingletonResource # type: ignore - from ._models import AnalysisResultSingletonResourceProperties # type: ignore - from ._models import AvailableOSListResult # type: ignore - from ._models import AvailableOSResource # type: ignore - from ._models import CPURegressionResultSingletonResourceProperties # type: ignore - from ._models import CPUUtilizationResultSingletonResourceProperties # type: ignore - from ._models import CheckNameAvailabilityResult # type: ignore - from ._models import Command # type: ignore - from ._models import CustomerEventListResult # type: ignore - from ._models import CustomerEventResource # type: ignore - from ._models import DistributionGroupListReceiverValue # type: ignore - from ._models import DownloadURLResponse # type: ignore - from ._models import EmailEventListResult # type: ignore - from ._models import EmailEventResource # type: ignore - from ._models import ErrorDefinition # type: ignore - from ._models import ErrorResponse # type: ignore - from ._models import FavoriteProcessListResult # type: ignore - from ._models import FavoriteProcessResource # type: ignore - from ._models import FileUploadURLResponse # type: ignore - from ._models import FlightingRingListResult # type: ignore - from ._models import FlightingRingResource # type: ignore - from ._models import GetFileUploadURLParameters # type: ignore - from ._models import IdentifiedFailure # type: ignore - from ._models import MemoryRegressionResultSingletonResourceProperties # type: ignore - from ._models import MemoryUtilizationResultSingletonResourceProperties # type: ignore - from ._models import NotificationEventReceiver # type: ignore - from ._models import NotificationReceiverValue # type: ignore - from ._models import OSUpdateListResult # type: ignore - from ._models import OSUpdateResource # type: ignore - from ._models import OSUpdateTestSummary # type: ignore - from ._models import OSUpdatesTestSummary # type: ignore - from ._models import Operation # type: ignore - from ._models import OperationDisplay # type: ignore - from ._models import OperationListResult # type: ignore - from ._models import PackageCheckNameAvailabilityParameters # type: ignore - from ._models import PackageListResult # type: ignore - from ._models import PackageResource # type: ignore - from ._models import PackageUpdateParameters # type: ignore - from ._models import PackageValidationResult # type: ignore - from ._models import ProxyResource # type: ignore - from ._models import RegressionResult # type: ignore - from ._models import RegressionTestDetails # type: ignore - from ._models import ReliabilityResult # type: ignore - from ._models import ReliabilityResultSingletonResourceProperties # type: ignore - from ._models import Resource # type: ignore - from ._models import ScriptExecutionResult # type: ignore - from ._models import ScriptExecutionResultSingletonResourceProperties # type: ignore - from ._models import SubscriptionReceiverValue # type: ignore - from ._models import SystemData # type: ignore - from ._models import TargetOSInfo # type: ignore - from ._models import Test # type: ignore - from ._models import TestAnalysisResult # type: ignore - from ._models import TestAnalysisResultSingletonResourceProperties # type: ignore - from ._models import TestBaseAccountListResult # type: ignore - from ._models import TestBaseAccountResource # type: ignore - from ._models import TestBaseAccountSKU # type: ignore - from ._models import TestBaseAccountSKUCapability # type: ignore - from ._models import TestBaseAccountSKUListResult # type: ignore - from ._models import TestBaseAccountUpdateParameters # type: ignore - from ._models import TestBaseAccountUsageData # type: ignore - from ._models import TestBaseAccountUsageDataList # type: ignore - from ._models import TestBaseAccountUsageName # type: ignore - from ._models import TestResultAnalysisSummary # type: ignore - from ._models import TestResultListResult # type: ignore - from ._models import TestResultResource # type: ignore - from ._models import TestSummaryListResult # type: ignore - from ._models import TestSummaryResource # type: ignore - from ._models import TestTypeListResult # type: ignore - from ._models import TestTypeResource # type: ignore - from ._models import TrackedResource # type: ignore - from ._models import UserObjectReceiverValue # type: ignore - from ._models import UtilizationBound # type: ignore - from ._models import UtilizationEntry # type: ignore - from ._models import UtilizationResult # type: ignore +from ._models_py3 import AnalysisResultListResult +from ._models_py3 import AnalysisResultSingletonResource +from ._models_py3 import AnalysisResultSingletonResourceProperties +from ._models_py3 import AvailableOSListResult +from ._models_py3 import AvailableOSResource +from ._models_py3 import BillingHubExecutionUsageDetail +from ._models_py3 import BillingHubFreeHourIncrementEntry +from ._models_py3 import BillingHubGetFreeHourBalanceResponse +from ._models_py3 import BillingHubGetUsageRequest +from ._models_py3 import BillingHubGetUsageResponse +from ._models_py3 import BillingHubPackageUsage +from ._models_py3 import BillingHubUsage +from ._models_py3 import BillingHubUsageGroup +from ._models_py3 import BillingHubUsageGroupedByUpdateType +from ._models_py3 import CPURegressionResultSingletonResourceProperties +from ._models_py3 import CPUUtilizationResultSingletonResourceProperties +from ._models_py3 import CheckNameAvailabilityResult +from ._models_py3 import Command +from ._models_py3 import CustomerEventListResult +from ._models_py3 import CustomerEventResource +from ._models_py3 import DistributionGroupListReceiverValue +from ._models_py3 import DownloadURLResponse +from ._models_py3 import EmailEventListResult +from ._models_py3 import EmailEventResource +from ._models_py3 import ErrorDefinition +from ._models_py3 import ErrorResponse +from ._models_py3 import FavoriteProcessListResult +from ._models_py3 import FavoriteProcessResource +from ._models_py3 import FileUploadURLResponse +from ._models_py3 import FlightingRingListResult +from ._models_py3 import FlightingRingResource +from ._models_py3 import GetFileUploadURLParameters +from ._models_py3 import IdentifiedFailure +from ._models_py3 import MemoryRegressionResultSingletonResourceProperties +from ._models_py3 import MemoryUtilizationResultSingletonResourceProperties +from ._models_py3 import NotificationEventReceiver +from ._models_py3 import NotificationReceiverValue +from ._models_py3 import OSUpdateListResult +from ._models_py3 import OSUpdateResource +from ._models_py3 import OSUpdateTestSummary +from ._models_py3 import OSUpdatesTestSummary +from ._models_py3 import Operation +from ._models_py3 import OperationDisplay +from ._models_py3 import OperationListResult +from ._models_py3 import PackageCheckNameAvailabilityParameters +from ._models_py3 import PackageListResult +from ._models_py3 import PackageResource +from ._models_py3 import PackageRunTestParameters +from ._models_py3 import PackageUpdateParameters +from ._models_py3 import PackageValidationResult +from ._models_py3 import ProxyResource +from ._models_py3 import RegressionResult +from ._models_py3 import RegressionTestDetails +from ._models_py3 import ReliabilityResult +from ._models_py3 import ReliabilityResultSingletonResourceProperties +from ._models_py3 import Resource +from ._models_py3 import ScriptExecutionResult +from ._models_py3 import ScriptExecutionResultSingletonResourceProperties +from ._models_py3 import SubscriptionReceiverValue +from ._models_py3 import SystemData +from ._models_py3 import TargetOSInfo +from ._models_py3 import Test +from ._models_py3 import TestAnalysisResult +from ._models_py3 import TestAnalysisResultSingletonResourceProperties +from ._models_py3 import TestBaseAccountListResult +from ._models_py3 import TestBaseAccountResource +from ._models_py3 import TestBaseAccountSKU +from ._models_py3 import TestBaseAccountSKUCapability +from ._models_py3 import TestBaseAccountSKUListResult +from ._models_py3 import TestBaseAccountUpdateParameters +from ._models_py3 import TestBaseAccountUsageData +from ._models_py3 import TestBaseAccountUsageDataList +from ._models_py3 import TestBaseAccountUsageName +from ._models_py3 import TestResultAnalysisSummary +from ._models_py3 import TestResultConsoleLogDownloadURLParameters +from ._models_py3 import TestResultListResult +from ._models_py3 import TestResultResource +from ._models_py3 import TestSummaryListResult +from ._models_py3 import TestSummaryResource +from ._models_py3 import TestTypeListResult +from ._models_py3 import TestTypeResource +from ._models_py3 import TrackedResource +from ._models_py3 import UserObjectReceiverValue +from ._models_py3 import UtilizationBound +from ._models_py3 import UtilizationEntry +from ._models_py3 import UtilizationResult + from ._test_base_enums import ( Action, @@ -180,13 +115,24 @@ Type, ValidationRunStatus, ) - +from ._patch import __all__ as _patch_all +from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import +from ._patch import patch_sdk as _patch_sdk __all__ = [ 'AnalysisResultListResult', 'AnalysisResultSingletonResource', 'AnalysisResultSingletonResourceProperties', 'AvailableOSListResult', 'AvailableOSResource', + 'BillingHubExecutionUsageDetail', + 'BillingHubFreeHourIncrementEntry', + 'BillingHubGetFreeHourBalanceResponse', + 'BillingHubGetUsageRequest', + 'BillingHubGetUsageResponse', + 'BillingHubPackageUsage', + 'BillingHubUsage', + 'BillingHubUsageGroup', + 'BillingHubUsageGroupedByUpdateType', 'CPURegressionResultSingletonResourceProperties', 'CPUUtilizationResultSingletonResourceProperties', 'CheckNameAvailabilityResult', @@ -220,6 +166,7 @@ 'PackageCheckNameAvailabilityParameters', 'PackageListResult', 'PackageResource', + 'PackageRunTestParameters', 'PackageUpdateParameters', 'PackageValidationResult', 'ProxyResource', @@ -246,6 +193,7 @@ 'TestBaseAccountUsageDataList', 'TestBaseAccountUsageName', 'TestResultAnalysisSummary', + 'TestResultConsoleLogDownloadURLParameters', 'TestResultListResult', 'TestResultResource', 'TestSummaryListResult', @@ -277,3 +225,5 @@ 'Type', 'ValidationRunStatus', ] +__all__.extend([p for p in _patch_all if p not in __all__]) +_patch_sdk() \ No newline at end of file diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/_models.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/_models.py deleted file mode 100644 index fc3d3b3d2524..000000000000 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/_models.py +++ /dev/null @@ -1,2876 +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.core.exceptions import HttpResponseError -import msrest.serialization - - -class AnalysisResultListResult(msrest.serialization.Model): - """A list of Analysis Results. It will only contain one element as all the data will be nested in a singleton object. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: The list of Analysis Results. - :type value: list[~test_base.models.AnalysisResultSingletonResource] - :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list - of results. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[AnalysisResultSingletonResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(AnalysisResultListResult, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class Resource(msrest.serialization.Model): - """The Resource definition. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource ID. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype 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'}, - } - - def __init__( - self, - **kwargs - ): - super(Resource, self).__init__(**kwargs) - self.id = None - self.name = None - self.type = None - - -class ProxyResource(Resource): - """The resource model definition for an ARM proxy resource. It will have everything other than required location and tags. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource ID. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype 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'}, - } - - def __init__( - self, - **kwargs - ): - super(ProxyResource, self).__init__(**kwargs) - - -class AnalysisResultSingletonResource(ProxyResource): - """The Analysis Result Singleton Resource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource ID. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Type of the Analysis Result.Constant filled by server. Possible - values include: "ScriptExecution", "Reliability", "CPUUtilization", "MemoryUtilization", - "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - """ - - _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'}, - 'grade': {'key': 'properties.grade', 'type': 'str'}, - 'analysis_result_type': {'key': 'properties.analysisResultType', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(AnalysisResultSingletonResource, self).__init__(**kwargs) - self.system_data = None - self.grade = kwargs.get('grade', None) - self.analysis_result_type = None # type: Optional[str] - - -class AnalysisResultSingletonResourceProperties(msrest.serialization.Model): - """The properties of Analysis Result resource. - - You probably want to use the sub-classes and not this class directly. Known - sub-classes are: CPURegressionResultSingletonResourceProperties, CPUUtilizationResultSingletonResourceProperties, MemoryRegressionResultSingletonResourceProperties, MemoryUtilizationResultSingletonResourceProperties, ReliabilityResultSingletonResourceProperties, ScriptExecutionResultSingletonResourceProperties, TestAnalysisResultSingletonResourceProperties. - - All required parameters must be populated in order to send to Azure. - - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - """ - - _validation = { - 'analysis_result_type': {'required': True}, - } - - _attribute_map = { - 'grade': {'key': 'grade', 'type': 'str'}, - 'analysis_result_type': {'key': 'analysisResultType', 'type': 'str'}, - } - - _subtype_map = { - 'analysis_result_type': {'CPURegression': 'CPURegressionResultSingletonResourceProperties', 'CPUUtilization': 'CPUUtilizationResultSingletonResourceProperties', 'MemoryRegression': 'MemoryRegressionResultSingletonResourceProperties', 'MemoryUtilization': 'MemoryUtilizationResultSingletonResourceProperties', 'Reliability': 'ReliabilityResultSingletonResourceProperties', 'ScriptExecution': 'ScriptExecutionResultSingletonResourceProperties', 'TestAnalysis': 'TestAnalysisResultSingletonResourceProperties'} - } - - def __init__( - self, - **kwargs - ): - super(AnalysisResultSingletonResourceProperties, self).__init__(**kwargs) - self.grade = kwargs.get('grade', None) - self.analysis_result_type = None # type: Optional[str] - - -class AvailableOSListResult(msrest.serialization.Model): - """A list of available OSs. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: The list of available OSs. - :type value: list[~test_base.models.AvailableOSResource] - :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list - of results. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[AvailableOSResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(AvailableOSListResult, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class AvailableOSResource(ProxyResource): - """The Available OS resource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource ID. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param os_id: The Id of an Available OS of a Test Base Account. - :type os_id: str - :param os_name: The name of an Available OS of a Test Base Account. - :type os_name: str - :param os_version: The version of an Available OS of a Test Base Account. - :type os_version: str - :param insider_channel: The insider channel of an Available OS of a Test Base Account. - :type insider_channel: str - :param os_update_type: The OS update type of an Available OS of a Test Base Account. - :type os_update_type: str - :param os_platform: The Platform of an Available OS of a Test Base Account. - :type os_platform: str - """ - - _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'}, - 'os_id': {'key': 'properties.osId', 'type': 'str'}, - 'os_name': {'key': 'properties.osName', 'type': 'str'}, - 'os_version': {'key': 'properties.osVersion', 'type': 'str'}, - 'insider_channel': {'key': 'properties.insiderChannel', 'type': 'str'}, - 'os_update_type': {'key': 'properties.osUpdateType', 'type': 'str'}, - 'os_platform': {'key': 'properties.osPlatform', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(AvailableOSResource, self).__init__(**kwargs) - self.system_data = None - self.os_id = kwargs.get('os_id', None) - self.os_name = kwargs.get('os_name', None) - self.os_version = kwargs.get('os_version', None) - self.insider_channel = kwargs.get('insider_channel', None) - self.os_update_type = kwargs.get('os_update_type', None) - self.os_platform = kwargs.get('os_platform', None) - - -class CheckNameAvailabilityResult(msrest.serialization.Model): - """Description of a Check Name availability response properties. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param name_available: Value indicating the availability of the name: true if the name is - available; otherwise, false. - :type name_available: bool - :param reason: The reason for unavailability of a name. Required if nameAvailable == false. - Possible values include: "Invalid", "AlreadyExists". - :type reason: str or ~test_base.models.Reason - :ivar message: The detailed info regarding the reason associated with the name. Required if - nameAvailable == false. - :vartype message: str - """ - - _validation = { - 'message': {'readonly': True}, - } - - _attribute_map = { - 'name_available': {'key': 'nameAvailable', 'type': 'bool'}, - 'reason': {'key': 'reason', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(CheckNameAvailabilityResult, self).__init__(**kwargs) - self.name_available = kwargs.get('name_available', None) - self.reason = kwargs.get('reason', None) - self.message = None - - -class Command(msrest.serialization.Model): - """The command used in the test. - - All required parameters must be populated in order to send to Azure. - - :param name: Required. The name of the command. - :type name: str - :param action: Required. The action of the command. Possible values include: "Install", - "Launch", "Close", "Uninstall", "Custom". - :type action: str or ~test_base.models.Action - :param content_type: Required. The type of command content. Possible values include: "Inline", - "File", "Path". - :type content_type: str or ~test_base.models.ContentType - :param content: Required. The content of the command. The content depends on source type. - :type content: str - :param run_elevated: Specifies whether to run the command as administrator. - :type run_elevated: bool - :param restart_after: Specifies whether to restart the VM after the command executed. - :type restart_after: bool - :param max_run_time: Specifies the max run time of the command. - :type max_run_time: int - :param run_as_interactive: Specifies whether to run the command in interactive mode. - :type run_as_interactive: bool - :param always_run: Specifies whether to run the command even if a previous command is failed. - :type always_run: bool - :param apply_update_before: Specifies whether to apply update before the command. - :type apply_update_before: bool - """ - - _validation = { - 'name': {'required': True}, - 'action': {'required': True}, - 'content_type': {'required': True}, - 'content': {'required': True}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'action': {'key': 'action', 'type': 'str'}, - 'content_type': {'key': 'contentType', 'type': 'str'}, - 'content': {'key': 'content', 'type': 'str'}, - 'run_elevated': {'key': 'runElevated', 'type': 'bool'}, - 'restart_after': {'key': 'restartAfter', 'type': 'bool'}, - 'max_run_time': {'key': 'maxRunTime', 'type': 'int'}, - 'run_as_interactive': {'key': 'runAsInteractive', 'type': 'bool'}, - 'always_run': {'key': 'alwaysRun', 'type': 'bool'}, - 'apply_update_before': {'key': 'applyUpdateBefore', 'type': 'bool'}, - } - - def __init__( - self, - **kwargs - ): - super(Command, self).__init__(**kwargs) - self.name = kwargs['name'] - self.action = kwargs['action'] - self.content_type = kwargs['content_type'] - self.content = kwargs['content'] - self.run_elevated = kwargs.get('run_elevated', None) - self.restart_after = kwargs.get('restart_after', None) - self.max_run_time = kwargs.get('max_run_time', None) - self.run_as_interactive = kwargs.get('run_as_interactive', None) - self.always_run = kwargs.get('always_run', None) - self.apply_update_before = kwargs.get('apply_update_before', None) - - -class CPURegressionResultSingletonResourceProperties(AnalysisResultSingletonResourceProperties): - """The properties of CPU Regression Result. - - All required parameters must be populated in order to send to Azure. - - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - :param cpu_regression_results: The result array data. - :type cpu_regression_results: list[~test_base.models.RegressionResult] - """ - - _validation = { - 'analysis_result_type': {'required': True}, - } - - _attribute_map = { - 'grade': {'key': 'grade', 'type': 'str'}, - 'analysis_result_type': {'key': 'analysisResultType', 'type': 'str'}, - 'cpu_regression_results': {'key': 'cpuRegressionResults', 'type': '[RegressionResult]'}, - } - - def __init__( - self, - **kwargs - ): - super(CPURegressionResultSingletonResourceProperties, self).__init__(**kwargs) - self.analysis_result_type = 'CPURegression' # type: str - self.cpu_regression_results = kwargs.get('cpu_regression_results', None) - - -class CPUUtilizationResultSingletonResourceProperties(AnalysisResultSingletonResourceProperties): - """The properties of CPU Utilization Result. - - All required parameters must be populated in order to send to Azure. - - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - :param cpu_utilization_results: The result array data. - :type cpu_utilization_results: list[~test_base.models.UtilizationResult] - """ - - _validation = { - 'analysis_result_type': {'required': True}, - } - - _attribute_map = { - 'grade': {'key': 'grade', 'type': 'str'}, - 'analysis_result_type': {'key': 'analysisResultType', 'type': 'str'}, - 'cpu_utilization_results': {'key': 'cpuUtilizationResults', 'type': '[UtilizationResult]'}, - } - - def __init__( - self, - **kwargs - ): - super(CPUUtilizationResultSingletonResourceProperties, self).__init__(**kwargs) - self.analysis_result_type = 'CPUUtilization' # type: str - self.cpu_utilization_results = kwargs.get('cpu_utilization_results', None) - - -class CustomerEventListResult(msrest.serialization.Model): - """A list of Test Base Customer Events. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: The list of Test Base Customer Events. - :type value: list[~test_base.models.CustomerEventResource] - :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list - of results. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[CustomerEventResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(CustomerEventListResult, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class CustomerEventResource(ProxyResource): - """The Customer Notification Event resource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource ID. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param event_name: The name of the event subscribed to. - :type event_name: str - :param receivers: The notification event receivers. - :type receivers: list[~test_base.models.NotificationEventReceiver] - """ - - _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'}, - 'event_name': {'key': 'properties.eventName', 'type': 'str'}, - 'receivers': {'key': 'properties.receivers', 'type': '[NotificationEventReceiver]'}, - } - - def __init__( - self, - **kwargs - ): - super(CustomerEventResource, self).__init__(**kwargs) - self.system_data = None - self.event_name = kwargs.get('event_name', None) - self.receivers = kwargs.get('receivers', None) - - -class DistributionGroupListReceiverValue(msrest.serialization.Model): - """The user object receiver value. - - :param distribution_groups: The list of distribution groups. - :type distribution_groups: list[str] - """ - - _attribute_map = { - 'distribution_groups': {'key': 'distributionGroups', 'type': '[str]'}, - } - - def __init__( - self, - **kwargs - ): - super(DistributionGroupListReceiverValue, self).__init__(**kwargs) - self.distribution_groups = kwargs.get('distribution_groups', None) - - -class DownloadURLResponse(msrest.serialization.Model): - """The response of getting a download URL. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar download_url: The download URL. - :vartype download_url: str - :ivar expiration_time: Expiry date of the download URL. - :vartype expiration_time: ~datetime.datetime - """ - - _validation = { - 'download_url': {'readonly': True}, - 'expiration_time': {'readonly': True}, - } - - _attribute_map = { - 'download_url': {'key': 'downloadUrl', 'type': 'str'}, - 'expiration_time': {'key': 'expirationTime', 'type': 'iso-8601'}, - } - - def __init__( - self, - **kwargs - ): - super(DownloadURLResponse, self).__init__(**kwargs) - self.download_url = None - self.expiration_time = None - - -class EmailEventListResult(msrest.serialization.Model): - """A list of email events. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: The list of email events. - :type value: list[~test_base.models.EmailEventResource] - :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list - of results. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[EmailEventResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(EmailEventListResult, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class EmailEventResource(ProxyResource): - """The email event resource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource ID. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param event_id: The identifier of the email event. - :type event_id: str - :param event_name: The name of the email event. - :type event_name: str - :param display_name: The display name of the email event. - :type display_name: str - """ - - _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'}, - 'event_id': {'key': 'properties.eventId', 'type': 'str'}, - 'event_name': {'key': 'properties.eventName', 'type': 'str'}, - 'display_name': {'key': 'properties.displayName', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(EmailEventResource, self).__init__(**kwargs) - self.system_data = None - self.event_id = kwargs.get('event_id', None) - self.event_name = kwargs.get('event_name', None) - self.display_name = kwargs.get('display_name', None) - - -class ErrorDefinition(msrest.serialization.Model): - """Error definition. - - 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: The error message. - :vartype message: str - :ivar target: The target of the particular error. - :vartype target: str - :ivar details: The error details. - :vartype details: list[~test_base.models.ErrorDefinition] - """ - - _validation = { - 'code': {'readonly': True}, - 'message': {'readonly': True}, - 'target': {'readonly': True}, - 'details': {'readonly': True}, - } - - _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - 'target': {'key': 'target', 'type': 'str'}, - 'details': {'key': 'details', 'type': '[ErrorDefinition]'}, - } - - def __init__( - self, - **kwargs - ): - super(ErrorDefinition, self).__init__(**kwargs) - self.code = None - self.message = None - self.target = None - self.details = None - - -class ErrorResponse(msrest.serialization.Model): - """The error response send when an operation fails. - - :param error: The error details. - :type error: ~test_base.models.ErrorDefinition - """ - - _attribute_map = { - 'error': {'key': 'error', 'type': 'ErrorDefinition'}, - } - - def __init__( - self, - **kwargs - ): - super(ErrorResponse, self).__init__(**kwargs) - self.error = kwargs.get('error', None) - - -class FavoriteProcessListResult(msrest.serialization.Model): - """A list of favorite processes for a package. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: The list of favorite processes for a package. - :type value: list[~test_base.models.FavoriteProcessResource] - :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list - of results. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[FavoriteProcessResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(FavoriteProcessListResult, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class FavoriteProcessResource(ProxyResource): - """A favorite process identifier. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource ID. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param actual_process_name: The actual name of the favorite process. It will be equal to - resource name except for the scenario that the process name contains characters that are not - allowed in the resource name. - :type actual_process_name: str - """ - - _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'}, - 'actual_process_name': {'key': 'properties.actualProcessName', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(FavoriteProcessResource, self).__init__(**kwargs) - self.system_data = None - self.actual_process_name = kwargs.get('actual_process_name', None) - - -class FileUploadURLResponse(msrest.serialization.Model): - """The URL response. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar upload_url: The URL used for uploading the package. - :vartype upload_url: str - :ivar blob_path: The blob path of the uploaded package. It will be used as the 'blobPath' - property of PackageResource. - :vartype blob_path: str - """ - - _validation = { - 'upload_url': {'readonly': True}, - 'blob_path': {'readonly': True}, - } - - _attribute_map = { - 'upload_url': {'key': 'uploadUrl', 'type': 'str'}, - 'blob_path': {'key': 'blobPath', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(FileUploadURLResponse, self).__init__(**kwargs) - self.upload_url = None - self.blob_path = None - - -class FlightingRingListResult(msrest.serialization.Model): - """A list of flighting rings. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: The list of flighting rings. - :type value: list[~test_base.models.FlightingRingResource] - :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list - of results. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[FlightingRingResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(FlightingRingListResult, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class FlightingRingResource(ProxyResource): - """The flighting ring resource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource ID. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param actual_flighting_ring_name: The actual name of a flighting ring of a Test Base Account. - :type actual_flighting_ring_name: str - """ - - _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'}, - 'actual_flighting_ring_name': {'key': 'properties.actualFlightingRingName', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(FlightingRingResource, self).__init__(**kwargs) - self.system_data = None - self.actual_flighting_ring_name = kwargs.get('actual_flighting_ring_name', None) - - -class GetFileUploadURLParameters(msrest.serialization.Model): - """The parameters supplied to the Test Base Account GetFileUploadURL action. - - :param blob_name: The custom file name of the uploaded blob. - :type blob_name: str - """ - - _attribute_map = { - 'blob_name': {'key': 'blobName', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(GetFileUploadURLParameters, self).__init__(**kwargs) - self.blob_name = kwargs.get('blob_name', None) - - -class IdentifiedFailure(msrest.serialization.Model): - """The failure identified. - - :param failure_id: The Failure Id. - :type failure_id: str - :param category: The category of the failure. Possible values include: "None", "Unidentified", - "Package", "OSUpdate", "Infrastructure". - :type category: str or ~test_base.models.Category - :param error_message: Message that shows information about the failure. - :type error_message: str - :param guidance: Guidance that shows what the customer needs to do for this failure. - :type guidance: str - """ - - _attribute_map = { - 'failure_id': {'key': 'failureId', 'type': 'str'}, - 'category': {'key': 'category', 'type': 'str'}, - 'error_message': {'key': 'errorMessage', 'type': 'str'}, - 'guidance': {'key': 'guidance', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(IdentifiedFailure, self).__init__(**kwargs) - self.failure_id = kwargs.get('failure_id', None) - self.category = kwargs.get('category', None) - self.error_message = kwargs.get('error_message', None) - self.guidance = kwargs.get('guidance', None) - - -class MemoryRegressionResultSingletonResourceProperties(AnalysisResultSingletonResourceProperties): - """The properties of Memory Regression Result. - - All required parameters must be populated in order to send to Azure. - - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - :param memory_regression_results: The result array data. - :type memory_regression_results: list[~test_base.models.RegressionResult] - """ - - _validation = { - 'analysis_result_type': {'required': True}, - } - - _attribute_map = { - 'grade': {'key': 'grade', 'type': 'str'}, - 'analysis_result_type': {'key': 'analysisResultType', 'type': 'str'}, - 'memory_regression_results': {'key': 'memoryRegressionResults', 'type': '[RegressionResult]'}, - } - - def __init__( - self, - **kwargs - ): - super(MemoryRegressionResultSingletonResourceProperties, self).__init__(**kwargs) - self.analysis_result_type = 'MemoryRegression' # type: str - self.memory_regression_results = kwargs.get('memory_regression_results', None) - - -class MemoryUtilizationResultSingletonResourceProperties(AnalysisResultSingletonResourceProperties): - """The properties of Memory Utilization Result. - - All required parameters must be populated in order to send to Azure. - - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - :param memory_utilization_results: The result array data. - :type memory_utilization_results: list[~test_base.models.UtilizationResult] - """ - - _validation = { - 'analysis_result_type': {'required': True}, - } - - _attribute_map = { - 'grade': {'key': 'grade', 'type': 'str'}, - 'analysis_result_type': {'key': 'analysisResultType', 'type': 'str'}, - 'memory_utilization_results': {'key': 'memoryUtilizationResults', 'type': '[UtilizationResult]'}, - } - - def __init__( - self, - **kwargs - ): - super(MemoryUtilizationResultSingletonResourceProperties, self).__init__(**kwargs) - self.analysis_result_type = 'MemoryUtilization' # type: str - self.memory_utilization_results = kwargs.get('memory_utilization_results', None) - - -class NotificationEventReceiver(msrest.serialization.Model): - """A notification event receivers. - - :param receiver_type: The type of the notification event receiver. - :type receiver_type: str - :param receiver_value: The notification event receiver value. - :type receiver_value: ~test_base.models.NotificationReceiverValue - """ - - _attribute_map = { - 'receiver_type': {'key': 'receiverType', 'type': 'str'}, - 'receiver_value': {'key': 'receiverValue', 'type': 'NotificationReceiverValue'}, - } - - def __init__( - self, - **kwargs - ): - super(NotificationEventReceiver, self).__init__(**kwargs) - self.receiver_type = kwargs.get('receiver_type', None) - self.receiver_value = kwargs.get('receiver_value', None) - - -class NotificationReceiverValue(msrest.serialization.Model): - """A notification event receiver value. - - :param user_object_receiver_value: The user object receiver value. - :type user_object_receiver_value: ~test_base.models.UserObjectReceiverValue - :param subscription_receiver_value: The user object receiver value. - :type subscription_receiver_value: ~test_base.models.SubscriptionReceiverValue - :param distribution_group_list_receiver_value: The user object receiver value. - :type distribution_group_list_receiver_value: - ~test_base.models.DistributionGroupListReceiverValue - """ - - _attribute_map = { - 'user_object_receiver_value': {'key': 'userObjectReceiverValue', 'type': 'UserObjectReceiverValue'}, - 'subscription_receiver_value': {'key': 'subscriptionReceiverValue', 'type': 'SubscriptionReceiverValue'}, - 'distribution_group_list_receiver_value': {'key': 'distributionGroupListReceiverValue', 'type': 'DistributionGroupListReceiverValue'}, - } - - def __init__( - self, - **kwargs - ): - super(NotificationReceiverValue, self).__init__(**kwargs) - self.user_object_receiver_value = kwargs.get('user_object_receiver_value', None) - self.subscription_receiver_value = kwargs.get('subscription_receiver_value', None) - self.distribution_group_list_receiver_value = kwargs.get('distribution_group_list_receiver_value', None) - - -class Operation(msrest.serialization.Model): - """REST API operation. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar name: Operation name: {provider}/{resource}/{operation}. - :vartype name: str - :ivar is_data_action: Indicates whether the operation is a data action. - :vartype is_data_action: bool - :ivar origin: Origin of the operation. - :vartype origin: str - :param display: The object that describes the operation. - :type display: ~test_base.models.OperationDisplay - :param properties: Extra properties of the operation. - :type properties: any - """ - - _validation = { - 'name': {'readonly': True}, - 'is_data_action': {'readonly': True}, - 'origin': {'readonly': True}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'is_data_action': {'key': 'isDataAction', 'type': 'bool'}, - 'origin': {'key': 'origin', 'type': 'str'}, - 'display': {'key': 'display', 'type': 'OperationDisplay'}, - 'properties': {'key': 'properties', 'type': 'object'}, - } - - def __init__( - self, - **kwargs - ): - super(Operation, self).__init__(**kwargs) - self.name = None - self.is_data_action = None - self.origin = None - self.display = kwargs.get('display', None) - self.properties = kwargs.get('properties', None) - - -class OperationDisplay(msrest.serialization.Model): - """The object that describes the operation. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar provider: The resource provider name: Microsoft.TestBase. - :vartype provider: str - :ivar operation: Operation type: read, write, delete, listPackages, etc. - :vartype operation: str - :ivar resource: Resource type on which the operation is performed. - :vartype resource: str - :ivar description: Friendly name of the operation. - :vartype description: str - """ - - _validation = { - 'provider': {'readonly': True}, - 'operation': {'readonly': True}, - 'resource': {'readonly': True}, - 'description': {'readonly': True}, - } - - _attribute_map = { - 'provider': {'key': 'provider', 'type': 'str'}, - 'operation': {'key': 'operation', 'type': 'str'}, - 'resource': {'key': 'resource', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(OperationDisplay, self).__init__(**kwargs) - self.provider = None - self.operation = None - self.resource = None - self.description = None - - -class OperationListResult(msrest.serialization.Model): - """A list of operations supported by the resource provider. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: List of operations supported by the Test Base resource provider. - :type value: list[~test_base.models.Operation] - :ivar next_link: URL to get the next set of operation list results if there are any. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[Operation]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(OperationListResult, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class OSUpdateListResult(msrest.serialization.Model): - """A list of OS Updates. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: The list of OS Updates. - :type value: list[~test_base.models.OSUpdateResource] - :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list - of results. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[OSUpdateResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(OSUpdateListResult, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class OSUpdateResource(ProxyResource): - """An OS Update. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource ID. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param os_name: The name of the OS. - :type os_name: str - :param release: The name of tested release. - :type release: str - :param flighting_ring: The flighting ring, only for release of feature updates. - :type flighting_ring: str - :param build_version: The build version of the tested release (OS update). - :type build_version: str - :param build_revision: The build revision of the tested release (OS update). - :type build_revision: str - :param type_properties_type: The type of this release (OS update). Possible values include: - "SecurityUpdate", "FeatureUpdate". - :type type_properties_type: str or ~test_base.models.Type - :param release_version_date: The release version date the tested release (OS update). - :type release_version_date: ~datetime.datetime - """ - - _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'}, - 'os_name': {'key': 'properties.osName', 'type': 'str'}, - 'release': {'key': 'properties.release', 'type': 'str'}, - 'flighting_ring': {'key': 'properties.flightingRing', 'type': 'str'}, - 'build_version': {'key': 'properties.buildVersion', 'type': 'str'}, - 'build_revision': {'key': 'properties.buildRevision', 'type': 'str'}, - 'type_properties_type': {'key': 'properties.type', 'type': 'str'}, - 'release_version_date': {'key': 'properties.releaseVersionDate', 'type': 'iso-8601'}, - } - - def __init__( - self, - **kwargs - ): - super(OSUpdateResource, self).__init__(**kwargs) - self.system_data = None - self.os_name = kwargs.get('os_name', None) - self.release = kwargs.get('release', None) - self.flighting_ring = kwargs.get('flighting_ring', None) - self.build_version = kwargs.get('build_version', None) - self.build_revision = kwargs.get('build_revision', None) - self.type_properties_type = kwargs.get('type_properties_type', None) - self.release_version_date = kwargs.get('release_version_date', None) - - -class OSUpdatesTestSummary(msrest.serialization.Model): - """The summary of some tests. - - :param execution_status: The status of the last test. Possible values include: "None", - "InProgress", "Processing", "Completed", "NotExecuted", "Incomplete", "Failed", "Succeeded". - :type execution_status: str or ~test_base.models.ExecutionStatus - :param test_status: The status of last test. Possible values include: "None", - "TestExecutionInProgress", "DataProcessing", "TestFailure", "UpdateFailure", - "TestAndUpdateFailure", "InfrastructureFailure", "Completed". - :type test_status: str or ~test_base.models.TestStatus - :param grade: The grade of last test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param test_run_time: The run time of the last test. - :type test_run_time: str - :param os_update_test_summaries: Detailed summary for each OS update. - :type os_update_test_summaries: list[~test_base.models.OSUpdateTestSummary] - """ - - _attribute_map = { - 'execution_status': {'key': 'executionStatus', 'type': 'str'}, - 'test_status': {'key': 'testStatus', 'type': 'str'}, - 'grade': {'key': 'grade', 'type': 'str'}, - 'test_run_time': {'key': 'testRunTime', 'type': 'str'}, - 'os_update_test_summaries': {'key': 'osUpdateTestSummaries', 'type': '[OSUpdateTestSummary]'}, - } - - def __init__( - self, - **kwargs - ): - super(OSUpdatesTestSummary, self).__init__(**kwargs) - self.execution_status = kwargs.get('execution_status', None) - self.test_status = kwargs.get('test_status', None) - self.grade = kwargs.get('grade', None) - self.test_run_time = kwargs.get('test_run_time', None) - self.os_update_test_summaries = kwargs.get('os_update_test_summaries', None) - - -class OSUpdateTestSummary(msrest.serialization.Model): - """The summary of a test. - - :param os_name: The operating system name. e.g. Windows 10 1809. - :type os_name: str - :param release_name: The name of the tested release (OS update). - :type release_name: str - :param build_version: The build version of the tested release (OS update). - :type build_version: str - :param build_revision: The build revision of the tested release (OS update). - :type build_revision: str - :param release_version_date: The release version date. - :type release_version_date: ~datetime.datetime - :param flighting_ring: The flighting ring, only for release of feature updates. - :type flighting_ring: str - :param execution_status: The execution status of the test. Possible values include: "None", - "InProgress", "Processing", "Completed", "NotExecuted", "Incomplete", "Failed", "Succeeded". - :type execution_status: str or ~test_base.models.ExecutionStatus - :param test_status: The status of the test. Possible values include: "None", - "TestExecutionInProgress", "DataProcessing", "TestFailure", "UpdateFailure", - "TestAndUpdateFailure", "InfrastructureFailure", "Completed". - :type test_status: str or ~test_base.models.TestStatus - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param test_run_time: The run time of the test. - :type test_run_time: str - :param test_type: The test type of the package. - :type test_type: str - """ - - _attribute_map = { - 'os_name': {'key': 'osName', 'type': 'str'}, - 'release_name': {'key': 'releaseName', 'type': 'str'}, - 'build_version': {'key': 'buildVersion', 'type': 'str'}, - 'build_revision': {'key': 'buildRevision', 'type': 'str'}, - 'release_version_date': {'key': 'releaseVersionDate', 'type': 'iso-8601'}, - 'flighting_ring': {'key': 'flightingRing', 'type': 'str'}, - 'execution_status': {'key': 'executionStatus', 'type': 'str'}, - 'test_status': {'key': 'testStatus', 'type': 'str'}, - 'grade': {'key': 'grade', 'type': 'str'}, - 'test_run_time': {'key': 'testRunTime', 'type': 'str'}, - 'test_type': {'key': 'testType', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(OSUpdateTestSummary, self).__init__(**kwargs) - self.os_name = kwargs.get('os_name', None) - self.release_name = kwargs.get('release_name', None) - self.build_version = kwargs.get('build_version', None) - self.build_revision = kwargs.get('build_revision', None) - self.release_version_date = kwargs.get('release_version_date', None) - self.flighting_ring = kwargs.get('flighting_ring', None) - self.execution_status = kwargs.get('execution_status', None) - self.test_status = kwargs.get('test_status', None) - self.grade = kwargs.get('grade', None) - self.test_run_time = kwargs.get('test_run_time', None) - self.test_type = kwargs.get('test_type', None) - - -class PackageCheckNameAvailabilityParameters(msrest.serialization.Model): - """Parameters body to pass for Test Base Package name availability check. - - All required parameters must be populated in order to send to Azure. - - :param name: Required. Resource name to verify. - :type name: str - :param application_name: Required. Application name to verify. - :type application_name: str - :param version: Required. Version name to verify. - :type version: str - :param type: Required. fully qualified resource type which includes provider namespace. - :type type: str - """ - - _validation = { - 'name': {'required': True}, - 'application_name': {'required': True}, - 'version': {'required': True}, - 'type': {'required': True}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'application_name': {'key': 'applicationName', 'type': 'str'}, - 'version': {'key': 'version', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(PackageCheckNameAvailabilityParameters, self).__init__(**kwargs) - self.name = kwargs['name'] - self.application_name = kwargs['application_name'] - self.version = kwargs['version'] - self.type = kwargs['type'] - - -class PackageListResult(msrest.serialization.Model): - """A list of Test Base Packages. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: The list of Test Base Packages. - :type value: list[~test_base.models.PackageResource] - :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list - of results. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[PackageResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(PackageListResult, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class TrackedResource(Resource): - """The resource model definition for an ARM tracked top level resource. - - 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 - :param tags: A set of tags. The tags of the resource. - :type tags: dict[str, str] - :param location: Required. The geo-location where the resource lives. - :type location: str - :ivar etag: Resource Etag. - :vartype etag: str - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'location': {'required': True}, - 'etag': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'location': {'key': 'location', 'type': 'str'}, - 'etag': {'key': 'etag', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(TrackedResource, self).__init__(**kwargs) - self.tags = kwargs.get('tags', None) - self.location = kwargs['location'] - self.etag = None - - -class PackageResource(TrackedResource): - """The Test Base Package resource. - - 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 - :param tags: A set of tags. The tags of the resource. - :type tags: dict[str, str] - :param location: Required. The geo-location where the resource lives. - :type location: str - :ivar etag: Resource Etag. - :vartype etag: str - :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :ivar provisioning_state: The provisioning state of the resource. Possible values include: - "Succeeded", "Failed", "Cancelled", "Creating", "Deleting", "Updating". - :vartype provisioning_state: str or ~test_base.models.ProvisioningState - :param application_name: Application name. - :type application_name: str - :param version: Application version. - :type version: str - :ivar test_types: OOB, functional or both. Mapped to the data in 'tests' property. - :vartype test_types: list[str or ~test_base.models.TestType] - :param target_os_list: Specifies the target OSs of specific OS Update types. - :type target_os_list: list[~test_base.models.TargetOSInfo] - :ivar package_status: The status of the package. Possible values include: "Unknown", - "Registered", "Ready", "Error", "ValidatingPackage", "PreValidationCheckPass", "Deleted", - "ValidationLongerThanUsual", "VerifyingPackage". - :vartype package_status: str or ~test_base.models.PackageStatus - :ivar last_modified_time: The UTC timestamp when the package was last modified. - :vartype last_modified_time: ~datetime.datetime - :param flighting_ring: The flighting ring for feature update. - :type flighting_ring: str - :ivar is_enabled: Flag showing that whether the package is enabled. It doesn't schedule test - for package which is not enabled. - :vartype is_enabled: bool - :param blob_path: The file path of the package. - :type blob_path: str - :ivar validation_results: The validation results. There's validation on package when it's - created or updated. - :vartype validation_results: list[~test_base.models.PackageValidationResult] - :param tests: The detailed test information. - :type tests: list[~test_base.models.Test] - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'location': {'required': True}, - 'etag': {'readonly': True}, - 'system_data': {'readonly': True}, - 'provisioning_state': {'readonly': True}, - 'test_types': {'readonly': True}, - 'package_status': {'readonly': True}, - 'last_modified_time': {'readonly': True}, - 'is_enabled': {'readonly': True}, - 'validation_results': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'location': {'key': 'location', 'type': 'str'}, - 'etag': {'key': 'etag', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, - 'application_name': {'key': 'properties.applicationName', 'type': 'str'}, - 'version': {'key': 'properties.version', 'type': 'str'}, - 'test_types': {'key': 'properties.testTypes', 'type': '[str]'}, - 'target_os_list': {'key': 'properties.targetOSList', 'type': '[TargetOSInfo]'}, - 'package_status': {'key': 'properties.packageStatus', 'type': 'str'}, - 'last_modified_time': {'key': 'properties.lastModifiedTime', 'type': 'iso-8601'}, - 'flighting_ring': {'key': 'properties.flightingRing', 'type': 'str'}, - 'is_enabled': {'key': 'properties.isEnabled', 'type': 'bool'}, - 'blob_path': {'key': 'properties.blobPath', 'type': 'str'}, - 'validation_results': {'key': 'properties.validationResults', 'type': '[PackageValidationResult]'}, - 'tests': {'key': 'properties.tests', 'type': '[Test]'}, - } - - def __init__( - self, - **kwargs - ): - super(PackageResource, self).__init__(**kwargs) - self.system_data = None - self.provisioning_state = None - self.application_name = kwargs.get('application_name', None) - self.version = kwargs.get('version', None) - self.test_types = None - self.target_os_list = kwargs.get('target_os_list', None) - self.package_status = None - self.last_modified_time = None - self.flighting_ring = kwargs.get('flighting_ring', None) - self.is_enabled = None - self.blob_path = kwargs.get('blob_path', None) - self.validation_results = None - self.tests = kwargs.get('tests', None) - - -class PackageUpdateParameters(msrest.serialization.Model): - """Parameters supplied to update a Test Base Package. - - :param tags: A set of tags. The tags of the Package. - :type tags: dict[str, str] - :param target_os_list: Specifies the target OSs of specific OS Update types. - :type target_os_list: list[~test_base.models.TargetOSInfo] - :param flighting_ring: The flighting ring for feature update. - :type flighting_ring: str - :param is_enabled: Specifies whether the package is enabled. It doesn't schedule test for - package which is not enabled. - :type is_enabled: bool - :param blob_path: The file name of the package. - :type blob_path: str - :param tests: The detailed test information. - :type tests: list[~test_base.models.Test] - """ - - _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, - 'target_os_list': {'key': 'properties.targetOSList', 'type': '[TargetOSInfo]'}, - 'flighting_ring': {'key': 'properties.flightingRing', 'type': 'str'}, - 'is_enabled': {'key': 'properties.isEnabled', 'type': 'bool'}, - 'blob_path': {'key': 'properties.blobPath', 'type': 'str'}, - 'tests': {'key': 'properties.tests', 'type': '[Test]'}, - } - - def __init__( - self, - **kwargs - ): - super(PackageUpdateParameters, self).__init__(**kwargs) - self.tags = kwargs.get('tags', None) - self.target_os_list = kwargs.get('target_os_list', None) - self.flighting_ring = kwargs.get('flighting_ring', None) - self.is_enabled = kwargs.get('is_enabled', None) - self.blob_path = kwargs.get('blob_path', None) - self.tests = kwargs.get('tests', None) - - -class PackageValidationResult(msrest.serialization.Model): - """The validation results. There's validation on package when it's created or updated. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar validation_name: Validation name. - :vartype validation_name: str - :ivar is_valid: Indicates whether the package passed the validation. - :vartype is_valid: bool - :ivar errors: Error information. - :vartype errors: list[str] - """ - - _validation = { - 'validation_name': {'readonly': True}, - 'is_valid': {'readonly': True}, - 'errors': {'readonly': True}, - } - - _attribute_map = { - 'validation_name': {'key': 'validationName', 'type': 'str'}, - 'is_valid': {'key': 'isValid', 'type': 'bool'}, - 'errors': {'key': 'errors', 'type': '[str]'}, - } - - def __init__( - self, - **kwargs - ): - super(PackageValidationResult, self).__init__(**kwargs) - self.validation_name = None - self.is_valid = None - self.errors = None - - -class RegressionResult(msrest.serialization.Model): - """The regression result. - - :param file_name: FileName of the binary being analyzed. - :type file_name: str - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param details: Message that facilitates debugging a particular regression, if any was - inferred. - :type details: str - :param diff: Difference between the two datasets being analyzed. - :type diff: float - :param is_regressed: Indicates if a regression was inferred. - :type is_regressed: bool - """ - - _attribute_map = { - 'file_name': {'key': 'fileName', 'type': 'str'}, - 'grade': {'key': 'grade', 'type': 'str'}, - 'details': {'key': 'details', 'type': 'str'}, - 'diff': {'key': 'diff', 'type': 'float'}, - 'is_regressed': {'key': 'isRegressed', 'type': 'bool'}, - } - - def __init__( - self, - **kwargs - ): - super(RegressionResult, self).__init__(**kwargs) - self.file_name = kwargs.get('file_name', None) - self.grade = kwargs.get('grade', None) - self.details = kwargs.get('details', None) - self.diff = kwargs.get('diff', None) - self.is_regressed = kwargs.get('is_regressed', None) - - -class RegressionTestDetails(msrest.serialization.Model): - """The details of a regression test. - - :param diff: Difference between the two datasets being analyzed. - :type diff: float - :param is_regressed: Indicates if a regression was inferred. - :type is_regressed: bool - """ - - _attribute_map = { - 'diff': {'key': 'diff', 'type': 'float'}, - 'is_regressed': {'key': 'isRegressed', 'type': 'bool'}, - } - - def __init__( - self, - **kwargs - ): - super(RegressionTestDetails, self).__init__(**kwargs) - self.diff = kwargs.get('diff', None) - self.is_regressed = kwargs.get('is_regressed', None) - - -class ReliabilityResult(msrest.serialization.Model): - """The Reliability Result. - - :param file_name: File name. - :type file_name: str - :param launch_count: Count of number of launches. - :type launch_count: int - :param crash_count: Count of number of crashes. - :type crash_count: int - :param hang_count: Count of number of hangs. - :type hang_count: int - :param regression_grade: The regression grade. Possible values include: "None", "NotAvailable", - "Pass", "Fail". - :type regression_grade: str or ~test_base.models.Grade - :param crash_regression_grade: The statistic regression grade for crash signal. Possible values - include: "None", "NotAvailable", "Pass", "Fail". - :type crash_regression_grade: str or ~test_base.models.Grade - :param crash_regression_test_details: Details related to the crash regression analysis. - :type crash_regression_test_details: ~test_base.models.RegressionTestDetails - :param hang_regression_grade: The statistic regression grade for hang signal. Possible values - include: "None", "NotAvailable", "Pass", "Fail". - :type hang_regression_grade: str or ~test_base.models.Grade - :param hang_regression_test_details: Details related to the hang regression analysis. - :type hang_regression_test_details: ~test_base.models.RegressionTestDetails - """ - - _attribute_map = { - 'file_name': {'key': 'fileName', 'type': 'str'}, - 'launch_count': {'key': 'launchCount', 'type': 'int'}, - 'crash_count': {'key': 'crashCount', 'type': 'int'}, - 'hang_count': {'key': 'hangCount', 'type': 'int'}, - 'regression_grade': {'key': 'regressionGrade', 'type': 'str'}, - 'crash_regression_grade': {'key': 'crashRegressionGrade', 'type': 'str'}, - 'crash_regression_test_details': {'key': 'crashRegressionTestDetails', 'type': 'RegressionTestDetails'}, - 'hang_regression_grade': {'key': 'hangRegressionGrade', 'type': 'str'}, - 'hang_regression_test_details': {'key': 'hangRegressionTestDetails', 'type': 'RegressionTestDetails'}, - } - - def __init__( - self, - **kwargs - ): - super(ReliabilityResult, self).__init__(**kwargs) - self.file_name = kwargs.get('file_name', None) - self.launch_count = kwargs.get('launch_count', None) - self.crash_count = kwargs.get('crash_count', None) - self.hang_count = kwargs.get('hang_count', None) - self.regression_grade = kwargs.get('regression_grade', None) - self.crash_regression_grade = kwargs.get('crash_regression_grade', None) - self.crash_regression_test_details = kwargs.get('crash_regression_test_details', None) - self.hang_regression_grade = kwargs.get('hang_regression_grade', None) - self.hang_regression_test_details = kwargs.get('hang_regression_test_details', None) - - -class ReliabilityResultSingletonResourceProperties(AnalysisResultSingletonResourceProperties): - """The properties of Reliability Result. - - All required parameters must be populated in order to send to Azure. - - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - :param reliability_results: The result array data. - :type reliability_results: list[~test_base.models.ReliabilityResult] - """ - - _validation = { - 'analysis_result_type': {'required': True}, - } - - _attribute_map = { - 'grade': {'key': 'grade', 'type': 'str'}, - 'analysis_result_type': {'key': 'analysisResultType', 'type': 'str'}, - 'reliability_results': {'key': 'reliabilityResults', 'type': '[ReliabilityResult]'}, - } - - def __init__( - self, - **kwargs - ): - super(ReliabilityResultSingletonResourceProperties, self).__init__(**kwargs) - self.analysis_result_type = 'Reliability' # type: str - self.reliability_results = kwargs.get('reliability_results', None) - - -class ScriptExecutionResult(msrest.serialization.Model): - """The Script Execution Result. - - :param script_name: Name of script. - :type script_name: str - :param start_time: Start time of script execution. - :type start_time: ~datetime.datetime - :param end_time: End time of script execution. - :type end_time: ~datetime.datetime - :param exit_code: Exit code. - :type exit_code: int - :param timed_out: Whether the script execution is timed out. - :type timed_out: bool - """ - - _attribute_map = { - 'script_name': {'key': 'scriptName', 'type': 'str'}, - 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, - 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, - 'exit_code': {'key': 'exitCode', 'type': 'int'}, - 'timed_out': {'key': 'timedOut', 'type': 'bool'}, - } - - def __init__( - self, - **kwargs - ): - super(ScriptExecutionResult, self).__init__(**kwargs) - self.script_name = kwargs.get('script_name', None) - self.start_time = kwargs.get('start_time', None) - self.end_time = kwargs.get('end_time', None) - self.exit_code = kwargs.get('exit_code', None) - self.timed_out = kwargs.get('timed_out', None) - - -class ScriptExecutionResultSingletonResourceProperties(AnalysisResultSingletonResourceProperties): - """The properties of Script Execution Result. - - All required parameters must be populated in order to send to Azure. - - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - :param script_execution_results: The result array data. - :type script_execution_results: list[~test_base.models.ScriptExecutionResult] - """ - - _validation = { - 'analysis_result_type': {'required': True}, - } - - _attribute_map = { - 'grade': {'key': 'grade', 'type': 'str'}, - 'analysis_result_type': {'key': 'analysisResultType', 'type': 'str'}, - 'script_execution_results': {'key': 'scriptExecutionResults', 'type': '[ScriptExecutionResult]'}, - } - - def __init__( - self, - **kwargs - ): - super(ScriptExecutionResultSingletonResourceProperties, self).__init__(**kwargs) - self.analysis_result_type = 'ScriptExecution' # type: str - self.script_execution_results = kwargs.get('script_execution_results', None) - - -class SubscriptionReceiverValue(msrest.serialization.Model): - """The subscription role receiver value. - - :param subscription_id: The subscription id of the notification receiver. - :type subscription_id: str - :param subscription_name: The subscription name of the notification receiver. - :type subscription_name: str - :param role: The role of the notification receiver. - :type role: str - """ - - _attribute_map = { - 'subscription_id': {'key': 'subscriptionId', 'type': 'str'}, - 'subscription_name': {'key': 'subscriptionName', 'type': 'str'}, - 'role': {'key': 'role', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(SubscriptionReceiverValue, self).__init__(**kwargs) - self.subscription_id = kwargs.get('subscription_id', None) - self.subscription_name = kwargs.get('subscription_name', None) - self.role = kwargs.get('role', None) - - -class SystemData(msrest.serialization.Model): - """Metadata pertaining to creation and last modification of the resource. - - :param created_by: The identity that created the resource. - :type created_by: str - :param created_by_type: The type of identity that created the resource. Possible values - include: "User", "Application", "ManagedIdentity", "Key". - :type created_by_type: str or ~test_base.models.CreatedByType - :param created_at: The timestamp of resource creation (UTC). - :type created_at: ~datetime.datetime - :param last_modified_by: The identity that last modified the resource. - :type last_modified_by: str - :param last_modified_by_type: The type of identity that last modified the resource. Possible - values include: "User", "Application", "ManagedIdentity", "Key". - :type last_modified_by_type: str or ~test_base.models.CreatedByType - :param last_modified_at: The type of identity that last modified the resource. - :type last_modified_at: ~datetime.datetime - """ - - _attribute_map = { - 'created_by': {'key': 'createdBy', 'type': 'str'}, - 'created_by_type': {'key': 'createdByType', 'type': 'str'}, - 'created_at': {'key': 'createdAt', 'type': 'iso-8601'}, - 'last_modified_by': {'key': 'lastModifiedBy', 'type': 'str'}, - 'last_modified_by_type': {'key': 'lastModifiedByType', 'type': 'str'}, - 'last_modified_at': {'key': 'lastModifiedAt', 'type': 'iso-8601'}, - } - - def __init__( - self, - **kwargs - ): - super(SystemData, self).__init__(**kwargs) - self.created_by = kwargs.get('created_by', None) - self.created_by_type = kwargs.get('created_by_type', None) - self.created_at = kwargs.get('created_at', None) - self.last_modified_by = kwargs.get('last_modified_by', None) - self.last_modified_by_type = kwargs.get('last_modified_by_type', None) - self.last_modified_at = kwargs.get('last_modified_at', None) - - -class TargetOSInfo(msrest.serialization.Model): - """The information of the target OS to be tested. - - All required parameters must be populated in order to send to Azure. - - :param os_update_type: Required. Specifies the OS update type to test against, e.g., 'Security - updates' or 'Feature updates'. - :type os_update_type: str - :param target_o_ss: Required. Specifies the target OSs to be tested. - :type target_o_ss: list[str] - """ - - _validation = { - 'os_update_type': {'required': True}, - 'target_o_ss': {'required': True}, - } - - _attribute_map = { - 'os_update_type': {'key': 'osUpdateType', 'type': 'str'}, - 'target_o_ss': {'key': 'targetOSs', 'type': '[str]'}, - } - - def __init__( - self, - **kwargs - ): - super(TargetOSInfo, self).__init__(**kwargs) - self.os_update_type = kwargs['os_update_type'] - self.target_o_ss = kwargs['target_o_ss'] - - -class Test(msrest.serialization.Model): - """The definition of a Test. - - 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. - - :param test_type: Required. The type of the test. Possible values include: "OutOfBoxTest", - "FunctionalTest". - :type test_type: str or ~test_base.models.TestType - :ivar validation_run_status: The status of the validation run of the package. Possible values - include: "Unknown", "Pending", "Passed", "Failed". - :vartype validation_run_status: str or ~test_base.models.ValidationRunStatus - :param is_active: Indicates if this test is active.It doesn't schedule test for not active - Test. - :type is_active: bool - :param commands: Required. The commands used in the test. - :type commands: list[~test_base.models.Command] - """ - - _validation = { - 'test_type': {'required': True}, - 'validation_run_status': {'readonly': True}, - 'commands': {'required': True}, - } - - _attribute_map = { - 'test_type': {'key': 'testType', 'type': 'str'}, - 'validation_run_status': {'key': 'validationRunStatus', 'type': 'str'}, - 'is_active': {'key': 'isActive', 'type': 'bool'}, - 'commands': {'key': 'commands', 'type': '[Command]'}, - } - - def __init__( - self, - **kwargs - ): - super(Test, self).__init__(**kwargs) - self.test_type = kwargs['test_type'] - self.validation_run_status = None - self.is_active = kwargs.get('is_active', None) - self.commands = kwargs['commands'] - - -class TestAnalysisResult(msrest.serialization.Model): - """The test analysis result. - - :param blob_data: The data to provide more failure analysis information. - :type blob_data: str - :param test_analysis_status: The status of the analysis. Possible values include: "None", - "Analyzing", "Completed", "Failed". - :type test_analysis_status: str or ~test_base.models.TestAnalysisStatus - :param identified_failures: The array of identified failures. - :type identified_failures: list[~test_base.models.IdentifiedFailure] - """ - - _attribute_map = { - 'blob_data': {'key': 'blobData', 'type': 'str'}, - 'test_analysis_status': {'key': 'testAnalysisStatus', 'type': 'str'}, - 'identified_failures': {'key': 'identifiedFailures', 'type': '[IdentifiedFailure]'}, - } - - def __init__( - self, - **kwargs - ): - super(TestAnalysisResult, self).__init__(**kwargs) - self.blob_data = kwargs.get('blob_data', None) - self.test_analysis_status = kwargs.get('test_analysis_status', None) - self.identified_failures = kwargs.get('identified_failures', None) - - -class TestAnalysisResultSingletonResourceProperties(AnalysisResultSingletonResourceProperties): - """The properties of Test Analysis Result. - - All required parameters must be populated in order to send to Azure. - - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - :param test_analysis_result: The result of test analysis. - :type test_analysis_result: ~test_base.models.TestAnalysisResult - """ - - _validation = { - 'analysis_result_type': {'required': True}, - } - - _attribute_map = { - 'grade': {'key': 'grade', 'type': 'str'}, - 'analysis_result_type': {'key': 'analysisResultType', 'type': 'str'}, - 'test_analysis_result': {'key': 'testAnalysisResult', 'type': 'TestAnalysisResult'}, - } - - def __init__( - self, - **kwargs - ): - super(TestAnalysisResultSingletonResourceProperties, self).__init__(**kwargs) - self.analysis_result_type = 'TestAnalysis' # type: str - self.test_analysis_result = kwargs.get('test_analysis_result', None) - - -class TestBaseAccountListResult(msrest.serialization.Model): - """A list of Test Base Accounts. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: The list of Test Base Accounts. - :type value: list[~test_base.models.TestBaseAccountResource] - :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list - of results. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[TestBaseAccountResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(TestBaseAccountListResult, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class TestBaseAccountResource(TrackedResource): - """The Test Base Account resource. - - 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 - :param tags: A set of tags. The tags of the resource. - :type tags: dict[str, str] - :param location: Required. The geo-location where the resource lives. - :type location: str - :ivar etag: Resource Etag. - :vartype etag: str - :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :ivar provisioning_state: The provisioning state of the resource. Possible values include: - "Succeeded", "Failed", "Cancelled", "Creating", "Deleting", "Updating". - :vartype provisioning_state: str or ~test_base.models.ProvisioningState - :param sku: The SKU of the Test Base Account. - :type sku: ~test_base.models.TestBaseAccountSKU - :ivar access_level: The access level of the Test Base Account. - :vartype access_level: str - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'location': {'required': True}, - 'etag': {'readonly': True}, - 'system_data': {'readonly': True}, - 'provisioning_state': {'readonly': True}, - 'access_level': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'location': {'key': 'location', 'type': 'str'}, - 'etag': {'key': 'etag', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, - 'sku': {'key': 'properties.sku', 'type': 'TestBaseAccountSKU'}, - 'access_level': {'key': 'properties.accessLevel', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(TestBaseAccountResource, self).__init__(**kwargs) - self.system_data = None - self.provisioning_state = None - self.sku = kwargs.get('sku', None) - self.access_level = None - - -class TestBaseAccountSKU(msrest.serialization.Model): - """Describes a Test Base Account SKU. - - 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. - - :param resource_type: The type of resource the SKU applies to. - :type resource_type: str - :param name: Required. The name of the SKU. This is typically a letter + number code, such as - B0 or S0. - :type name: str - :param tier: Required. The tier of this particular SKU. Possible values include: "Standard". - :type tier: str or ~test_base.models.Tier - :ivar capabilities: The capabilities of a SKU. - :vartype capabilities: list[~test_base.models.TestBaseAccountSKUCapability] - :param locations: The locations that the SKU is available. - :type locations: list[str] - """ - - _validation = { - 'name': {'required': True}, - 'tier': {'required': True}, - 'capabilities': {'readonly': True}, - } - - _attribute_map = { - 'resource_type': {'key': 'resourceType', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'tier': {'key': 'tier', 'type': 'str'}, - 'capabilities': {'key': 'capabilities', 'type': '[TestBaseAccountSKUCapability]'}, - 'locations': {'key': 'locations', 'type': '[str]'}, - } - - def __init__( - self, - **kwargs - ): - super(TestBaseAccountSKU, self).__init__(**kwargs) - self.resource_type = kwargs.get('resource_type', None) - self.name = kwargs['name'] - self.tier = kwargs['tier'] - self.capabilities = None - self.locations = kwargs.get('locations', None) - - -class TestBaseAccountSKUCapability(msrest.serialization.Model): - """Properties of the Test Base Account SKU Capability. - - All required parameters must be populated in order to send to Azure. - - :param name: Required. An invariant to describe the feature, such as 'SLA'. - :type name: str - :param value: Required. An invariant if the feature is measured by quantity, such as 99.9%. - :type value: str - """ - - _validation = { - 'name': {'required': True}, - 'value': {'required': True}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'value': {'key': 'value', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(TestBaseAccountSKUCapability, self).__init__(**kwargs) - self.name = kwargs['name'] - self.value = kwargs['value'] - - -class TestBaseAccountSKUListResult(msrest.serialization.Model): - """A list of Test Base Account SKUs. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: The list of Test Base Account SKUs. - :type value: list[~test_base.models.TestBaseAccountSKU] - :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list - of results. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[TestBaseAccountSKU]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(TestBaseAccountSKUListResult, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class TestBaseAccountUpdateParameters(msrest.serialization.Model): - """Parameters supplied to update a Test Base Account. - - :param tags: A set of tags. The tags of the Test Base Account. - :type tags: dict[str, str] - :param sku: The SKU of the Test Base Account. - :type sku: ~test_base.models.TestBaseAccountSKU - """ - - _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, - 'sku': {'key': 'properties.sku', 'type': 'TestBaseAccountSKU'}, - } - - def __init__( - self, - **kwargs - ): - super(TestBaseAccountUpdateParameters, self).__init__(**kwargs) - self.tags = kwargs.get('tags', None) - self.sku = kwargs.get('sku', None) - - -class TestBaseAccountUsageData(msrest.serialization.Model): - """The usage data of a Test Base Account. - - :param id: Fully qualified ARM resource id. - :type id: str - :param name: Localizable String object containing the name and a localized value. - :type name: ~test_base.models.TestBaseAccountUsageName - :param unit: Representing the units of the usage quota. Possible values are: Count, Bytes, - Seconds, Percent, CountPerSecond, BytesPerSecond. - :type unit: str - :param limit: The maximum permitted value for the usage quota. If there is no limit, this value - will be -1. - :type limit: long - :param current_value: Current value for the usage quota. - :type current_value: long - """ - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'TestBaseAccountUsageName'}, - 'unit': {'key': 'unit', 'type': 'str'}, - 'limit': {'key': 'limit', 'type': 'long'}, - 'current_value': {'key': 'currentValue', 'type': 'long'}, - } - - def __init__( - self, - **kwargs - ): - super(TestBaseAccountUsageData, self).__init__(**kwargs) - self.id = kwargs.get('id', None) - self.name = kwargs.get('name', None) - self.unit = kwargs.get('unit', None) - self.limit = kwargs.get('limit', None) - self.current_value = kwargs.get('current_value', None) - - -class TestBaseAccountUsageDataList(msrest.serialization.Model): - """A list of Test Base Account usage data. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: The list of Test Base Account usage data. - :type value: list[~test_base.models.TestBaseAccountUsageData] - :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list - of results. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[TestBaseAccountUsageData]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(TestBaseAccountUsageDataList, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class TestBaseAccountUsageName(msrest.serialization.Model): - """Localizable String object containing the name and a localized value. - - :param value: The identifier of the usage. - :type value: str - :param localized_value: Localized name of the usage. - :type localized_value: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': 'str'}, - 'localized_value': {'key': 'localizedValue', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(TestBaseAccountUsageName, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.localized_value = kwargs.get('localized_value', None) - - -class TestResultAnalysisSummary(msrest.serialization.Model): - """The summary of a Test Analysis Result. - - :param name: Metric name. - :type name: str - :param analysis_status: The analysis status. Possible values include: "None", "Completed", - "InProgress", "Failed", "Succeeded", "Available", "NotAvailable". - :type analysis_status: str or ~test_base.models.AnalysisStatus - :param grade: The grade of the test result. Possible values include: "None", "NotAvailable", - "Pass", "Fail". - :type grade: str or ~test_base.models.Grade - """ - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'analysis_status': {'key': 'analysisStatus', 'type': 'str'}, - 'grade': {'key': 'grade', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(TestResultAnalysisSummary, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.analysis_status = kwargs.get('analysis_status', None) - self.grade = kwargs.get('grade', None) - - -class TestResultListResult(msrest.serialization.Model): - """A list of Test Results. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: The list of Test Results. - :type value: list[~test_base.models.TestResultResource] - :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list - of results. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[TestResultResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(TestResultListResult, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class TestResultResource(ProxyResource): - """The Test Result Resource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource ID. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param baseline_test_result_id: Azure Id of the baseline test result. - :type baseline_test_result_id: str - :param package_id: Resource Id of the package. - :type package_id: str - :param application_name: Application name. - :type application_name: str - :param application_version: Application version. - :type application_version: str - :param os_name: The operating system name, e.g. Windows 10 1809. - :type os_name: str - :param release_name: The name of the tested release (OS update). - :type release_name: str - :param release_version_date: The release version date of the tested release. - :type release_version_date: ~datetime.datetime - :param flighting_ring: The flighting ring, only for release of feature updates. - :type flighting_ring: str - :param build_version: The build version of the tested release (OS update). - :type build_version: str - :param build_revision: The build revision of the tested release (OS update). - :type build_revision: str - :param test_type: Test type. E.g. 'Out of box test' or 'Functional test'. - :type test_type: str - :param test_run_time: The run time of the test. - :type test_run_time: str - :param is_download_data_available: Whether download data is available. - :type is_download_data_available: bool - :param is_video_available: Whether video data is available. - :type is_video_available: bool - :param execution_status: The execution status of the test. Possible values include: "None", - "InProgress", "Processing", "Completed", "NotExecuted", "Incomplete", "Failed", "Succeeded". - :type execution_status: str or ~test_base.models.ExecutionStatus - :param test_status: The status of the test. Possible values include: "None", - "TestExecutionInProgress", "DataProcessing", "TestFailure", "UpdateFailure", - "TestAndUpdateFailure", "InfrastructureFailure", "Completed". - :type test_status: str or ~test_base.models.TestStatus - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param kb_number: KB number. - :type kb_number: str - :param package_version: The version of the Windows update package. - :type package_version: str - :param analysis_summaries: List of analysis summaries. - :type analysis_summaries: list[~test_base.models.TestResultAnalysisSummary] - """ - - _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'}, - 'baseline_test_result_id': {'key': 'properties.baselineTestResultId', 'type': 'str'}, - 'package_id': {'key': 'properties.packageId', 'type': 'str'}, - 'application_name': {'key': 'properties.applicationName', 'type': 'str'}, - 'application_version': {'key': 'properties.applicationVersion', 'type': 'str'}, - 'os_name': {'key': 'properties.osName', 'type': 'str'}, - 'release_name': {'key': 'properties.releaseName', 'type': 'str'}, - 'release_version_date': {'key': 'properties.releaseVersionDate', 'type': 'iso-8601'}, - 'flighting_ring': {'key': 'properties.flightingRing', 'type': 'str'}, - 'build_version': {'key': 'properties.buildVersion', 'type': 'str'}, - 'build_revision': {'key': 'properties.buildRevision', 'type': 'str'}, - 'test_type': {'key': 'properties.testType', 'type': 'str'}, - 'test_run_time': {'key': 'properties.testRunTime', 'type': 'str'}, - 'is_download_data_available': {'key': 'properties.isDownloadDataAvailable', 'type': 'bool'}, - 'is_video_available': {'key': 'properties.isVideoAvailable', 'type': 'bool'}, - 'execution_status': {'key': 'properties.executionStatus', 'type': 'str'}, - 'test_status': {'key': 'properties.testStatus', 'type': 'str'}, - 'grade': {'key': 'properties.grade', 'type': 'str'}, - 'kb_number': {'key': 'properties.kbNumber', 'type': 'str'}, - 'package_version': {'key': 'properties.packageVersion', 'type': 'str'}, - 'analysis_summaries': {'key': 'properties.analysisSummaries', 'type': '[TestResultAnalysisSummary]'}, - } - - def __init__( - self, - **kwargs - ): - super(TestResultResource, self).__init__(**kwargs) - self.system_data = None - self.baseline_test_result_id = kwargs.get('baseline_test_result_id', None) - self.package_id = kwargs.get('package_id', None) - self.application_name = kwargs.get('application_name', None) - self.application_version = kwargs.get('application_version', None) - self.os_name = kwargs.get('os_name', None) - self.release_name = kwargs.get('release_name', None) - self.release_version_date = kwargs.get('release_version_date', None) - self.flighting_ring = kwargs.get('flighting_ring', None) - self.build_version = kwargs.get('build_version', None) - self.build_revision = kwargs.get('build_revision', None) - self.test_type = kwargs.get('test_type', None) - self.test_run_time = kwargs.get('test_run_time', None) - self.is_download_data_available = kwargs.get('is_download_data_available', None) - self.is_video_available = kwargs.get('is_video_available', None) - self.execution_status = kwargs.get('execution_status', None) - self.test_status = kwargs.get('test_status', None) - self.grade = kwargs.get('grade', None) - self.kb_number = kwargs.get('kb_number', None) - self.package_version = kwargs.get('package_version', None) - self.analysis_summaries = kwargs.get('analysis_summaries', None) - - -class TestSummaryListResult(msrest.serialization.Model): - """A list of Test Summaries. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: The list of Test Summaries. - :type value: list[~test_base.models.TestSummaryResource] - :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list - of results. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[TestSummaryResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(TestSummaryListResult, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class TestSummaryResource(ProxyResource): - """Summary of a Test. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource ID. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param test_summary_id: The Id of the current Test Summary. - :type test_summary_id: str - :param package_id: The Azure resource Id of package. - :type package_id: str - :param application_name: Application name. - :type application_name: str - :param application_version: Application version. - :type application_version: str - :param execution_status: The execution status of last test. Possible values include: "None", - "InProgress", "Processing", "Completed", "NotExecuted", "Incomplete", "Failed", "Succeeded". - :type execution_status: str or ~test_base.models.ExecutionStatus - :param test_status: The status of last test. Possible values include: "None", - "TestExecutionInProgress", "DataProcessing", "TestFailure", "UpdateFailure", - "TestAndUpdateFailure", "InfrastructureFailure", "Completed". - :type test_status: str or ~test_base.models.TestStatus - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param test_run_time: The run time of the last test. - :type test_run_time: str - :param feature_updates_test_summary: The result summary of tests triggered by feature updates. - :type feature_updates_test_summary: ~test_base.models.OSUpdatesTestSummary - :param security_updates_test_summary: The result summary of tests triggered by security - updates. - :type security_updates_test_summary: ~test_base.models.OSUpdatesTestSummary - """ - - _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'}, - 'test_summary_id': {'key': 'properties.testSummaryId', 'type': 'str'}, - 'package_id': {'key': 'properties.packageId', 'type': 'str'}, - 'application_name': {'key': 'properties.applicationName', 'type': 'str'}, - 'application_version': {'key': 'properties.applicationVersion', 'type': 'str'}, - 'execution_status': {'key': 'properties.executionStatus', 'type': 'str'}, - 'test_status': {'key': 'properties.testStatus', 'type': 'str'}, - 'grade': {'key': 'properties.grade', 'type': 'str'}, - 'test_run_time': {'key': 'properties.testRunTime', 'type': 'str'}, - 'feature_updates_test_summary': {'key': 'properties.featureUpdatesTestSummary', 'type': 'OSUpdatesTestSummary'}, - 'security_updates_test_summary': {'key': 'properties.securityUpdatesTestSummary', 'type': 'OSUpdatesTestSummary'}, - } - - def __init__( - self, - **kwargs - ): - super(TestSummaryResource, self).__init__(**kwargs) - self.system_data = None - self.test_summary_id = kwargs.get('test_summary_id', None) - self.package_id = kwargs.get('package_id', None) - self.application_name = kwargs.get('application_name', None) - self.application_version = kwargs.get('application_version', None) - self.execution_status = kwargs.get('execution_status', None) - self.test_status = kwargs.get('test_status', None) - self.grade = kwargs.get('grade', None) - self.test_run_time = kwargs.get('test_run_time', None) - self.feature_updates_test_summary = kwargs.get('feature_updates_test_summary', None) - self.security_updates_test_summary = kwargs.get('security_updates_test_summary', None) - - -class TestTypeListResult(msrest.serialization.Model): - """A list of test types. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: The list of test types. - :type value: list[~test_base.models.TestTypeResource] - :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list - of results. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[TestTypeResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(TestTypeListResult, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class TestTypeResource(ProxyResource): - """The test type resource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource ID. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param actual_test_type_name: The actual name of a test type of a Test Base Account. - :type actual_test_type_name: str - """ - - _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'}, - 'actual_test_type_name': {'key': 'properties.actualTestTypeName', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(TestTypeResource, self).__init__(**kwargs) - self.system_data = None - self.actual_test_type_name = kwargs.get('actual_test_type_name', None) - - -class UserObjectReceiverValue(msrest.serialization.Model): - """The user object receiver value. - - :param user_object_ids: user object ids. - :type user_object_ids: list[str] - """ - - _attribute_map = { - 'user_object_ids': {'key': 'userObjectIds', 'type': '[str]'}, - } - - def __init__( - self, - **kwargs - ): - super(UserObjectReceiverValue, self).__init__(**kwargs) - self.user_object_ids = kwargs.get('user_object_ids', None) - - -class UtilizationBound(msrest.serialization.Model): - """The bound of a utilization result. - - :param percentile: The percentile of the bound. - :type percentile: float - :param value: The value of the bound. - :type value: float - """ - - _attribute_map = { - 'percentile': {'key': 'percentile', 'type': 'float'}, - 'value': {'key': 'value', 'type': 'float'}, - } - - def __init__( - self, - **kwargs - ): - super(UtilizationBound, self).__init__(**kwargs) - self.percentile = kwargs.get('percentile', None) - self.value = kwargs.get('value', None) - - -class UtilizationEntry(msrest.serialization.Model): - """The utilization entry. - - :param timestamp: The timestamp. - :type timestamp: ~datetime.datetime - :param value: The value. - :type value: float - """ - - _attribute_map = { - 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, - 'value': {'key': 'value', 'type': 'float'}, - } - - def __init__( - self, - **kwargs - ): - super(UtilizationEntry, self).__init__(**kwargs) - self.timestamp = kwargs.get('timestamp', None) - self.value = kwargs.get('value', None) - - -class UtilizationResult(msrest.serialization.Model): - """The Utilization Result. - - :param process: Process name, or '_total' for all processes. - :type process: str - :param upper_bound: Upper bound. - :type upper_bound: ~test_base.models.UtilizationBound - :param lower_bound: Lower bound. - :type lower_bound: ~test_base.models.UtilizationBound - :param utilization: Utilization data. - :type utilization: list[~test_base.models.UtilizationEntry] - """ - - _attribute_map = { - 'process': {'key': 'process', 'type': 'str'}, - 'upper_bound': {'key': 'upperBound', 'type': 'UtilizationBound'}, - 'lower_bound': {'key': 'lowerBound', 'type': 'UtilizationBound'}, - 'utilization': {'key': 'utilization', 'type': '[UtilizationEntry]'}, - } - - def __init__( - self, - **kwargs - ): - super(UtilizationResult, self).__init__(**kwargs) - self.process = kwargs.get('process', None) - self.upper_bound = kwargs.get('upper_bound', None) - self.lower_bound = kwargs.get('lower_bound', None) - self.utilization = kwargs.get('utilization', None) diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/_models_py3.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/_models_py3.py index 1275004a21b5..42ae4826cdd1 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/_models_py3.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/_models_py3.py @@ -7,12 +7,14 @@ # -------------------------------------------------------------------------- import datetime -from typing import Any, Dict, List, Optional, Union +from typing import Any, Dict, List, Optional, TYPE_CHECKING, Union from azure.core.exceptions import HttpResponseError import msrest.serialization -from ._test_base_enums import * +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + import __init__ as _models class AnalysisResultListResult(msrest.serialization.Model): @@ -20,8 +22,8 @@ class AnalysisResultListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :param value: The list of Analysis Results. - :type value: list[~test_base.models.AnalysisResultSingletonResource] + :ivar value: The list of Analysis Results. + :vartype value: list[~azure.mgmt.testbase.models.AnalysisResultSingletonResource] :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list of results. :vartype next_link: str @@ -39,9 +41,13 @@ class AnalysisResultListResult(msrest.serialization.Model): def __init__( self, *, - value: Optional[List["AnalysisResultSingletonResource"]] = None, + value: Optional[List["_models.AnalysisResultSingletonResource"]] = None, **kwargs ): + """ + :keyword value: The list of Analysis Results. + :paramtype value: list[~azure.mgmt.testbase.models.AnalysisResultSingletonResource] + """ super(AnalysisResultListResult, self).__init__(**kwargs) self.value = value self.next_link = None @@ -76,6 +82,8 @@ def __init__( self, **kwargs ): + """ + """ super(Resource, self).__init__(**kwargs) self.id = None self.name = None @@ -111,6 +119,8 @@ def __init__( self, **kwargs ): + """ + """ super(ProxyResource, self).__init__(**kwargs) @@ -126,14 +136,13 @@ class AnalysisResultSingletonResource(ProxyResource): :ivar type: Resource type. :vartype type: str :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Type of the Analysis Result.Constant filled by server. Possible - values include: "ScriptExecution", "Reliability", "CPUUtilization", "MemoryUtilization", - "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType + :vartype system_data: ~azure.mgmt.testbase.models.SystemData + :ivar grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", "Fail". + :vartype grade: str or ~azure.mgmt.testbase.models.Grade + :ivar analysis_result_type: Type of the Analysis Result.Constant filled by server. Known values + are: "ScriptExecution", "Reliability", "CPUUtilization", "MemoryUtilization", "CPURegression", + "MemoryRegression", "TestAnalysis". + :vartype analysis_result_type: str or ~azure.mgmt.testbase.models.AnalysisResultType """ _validation = { @@ -155,9 +164,14 @@ class AnalysisResultSingletonResource(ProxyResource): def __init__( self, *, - grade: Optional[Union[str, "Grade"]] = None, + grade: Optional[Union[str, "_models.Grade"]] = None, **kwargs ): + """ + :keyword grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :paramtype grade: str or ~azure.mgmt.testbase.models.Grade + """ super(AnalysisResultSingletonResource, self).__init__(**kwargs) self.system_data = None self.grade = grade @@ -172,13 +186,12 @@ class AnalysisResultSingletonResourceProperties(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType + :ivar grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", "Fail". + :vartype grade: str or ~azure.mgmt.testbase.models.Grade + :ivar analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. + Known values are: "ScriptExecution", "Reliability", "CPUUtilization", "MemoryUtilization", + "CPURegression", "MemoryRegression", "TestAnalysis". + :vartype analysis_result_type: str or ~azure.mgmt.testbase.models.AnalysisResultType """ _validation = { @@ -197,9 +210,14 @@ class AnalysisResultSingletonResourceProperties(msrest.serialization.Model): def __init__( self, *, - grade: Optional[Union[str, "Grade"]] = None, + grade: Optional[Union[str, "_models.Grade"]] = None, **kwargs ): + """ + :keyword grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :paramtype grade: str or ~azure.mgmt.testbase.models.Grade + """ super(AnalysisResultSingletonResourceProperties, self).__init__(**kwargs) self.grade = grade self.analysis_result_type = None # type: Optional[str] @@ -210,8 +228,8 @@ class AvailableOSListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :param value: The list of available OSs. - :type value: list[~test_base.models.AvailableOSResource] + :ivar value: The list of available OSs. + :vartype value: list[~azure.mgmt.testbase.models.AvailableOSResource] :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list of results. :vartype next_link: str @@ -229,9 +247,13 @@ class AvailableOSListResult(msrest.serialization.Model): def __init__( self, *, - value: Optional[List["AvailableOSResource"]] = None, + value: Optional[List["_models.AvailableOSResource"]] = None, **kwargs ): + """ + :keyword value: The list of available OSs. + :paramtype value: list[~azure.mgmt.testbase.models.AvailableOSResource] + """ super(AvailableOSListResult, self).__init__(**kwargs) self.value = value self.next_link = None @@ -249,19 +271,19 @@ class AvailableOSResource(ProxyResource): :ivar type: Resource type. :vartype type: str :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param os_id: The Id of an Available OS of a Test Base Account. - :type os_id: str - :param os_name: The name of an Available OS of a Test Base Account. - :type os_name: str - :param os_version: The version of an Available OS of a Test Base Account. - :type os_version: str - :param insider_channel: The insider channel of an Available OS of a Test Base Account. - :type insider_channel: str - :param os_update_type: The OS update type of an Available OS of a Test Base Account. - :type os_update_type: str - :param os_platform: The Platform of an Available OS of a Test Base Account. - :type os_platform: str + :vartype system_data: ~azure.mgmt.testbase.models.SystemData + :ivar os_id: The Id of an Available OS of a Test Base Account. + :vartype os_id: str + :ivar os_name: The name of an Available OS of a Test Base Account. + :vartype os_name: str + :ivar os_version: The version of an Available OS of a Test Base Account. + :vartype os_version: str + :ivar insider_channel: The insider channel of an Available OS of a Test Base Account. + :vartype insider_channel: str + :ivar os_update_type: The OS update type of an Available OS of a Test Base Account. + :vartype os_update_type: str + :ivar os_platform: The Platform of an Available OS of a Test Base Account. + :vartype os_platform: str """ _validation = { @@ -295,6 +317,20 @@ def __init__( os_platform: Optional[str] = None, **kwargs ): + """ + :keyword os_id: The Id of an Available OS of a Test Base Account. + :paramtype os_id: str + :keyword os_name: The name of an Available OS of a Test Base Account. + :paramtype os_name: str + :keyword os_version: The version of an Available OS of a Test Base Account. + :paramtype os_version: str + :keyword insider_channel: The insider channel of an Available OS of a Test Base Account. + :paramtype insider_channel: str + :keyword os_update_type: The OS update type of an Available OS of a Test Base Account. + :paramtype os_update_type: str + :keyword os_platform: The Platform of an Available OS of a Test Base Account. + :paramtype os_platform: str + """ super(AvailableOSResource, self).__init__(**kwargs) self.system_data = None self.os_id = os_id @@ -305,17 +341,604 @@ def __init__( self.os_platform = os_platform +class BillingHubExecutionUsageDetail(msrest.serialization.Model): + """BillingHubExecutionUsageDetail. + + :ivar application_name: + :vartype application_name: str + :ivar application_version: + :vartype application_version: str + :ivar execution_request_id: + :vartype execution_request_id: str + :ivar sku: + :vartype sku: str + :ivar meter_id: + :vartype meter_id: str + :ivar start_time_stamp: + :vartype start_time_stamp: ~datetime.datetime + :ivar end_time_stamp: + :vartype end_time_stamp: ~datetime.datetime + :ivar os_build: + :vartype os_build: str + :ivar release: + :vartype release: str + :ivar test_type: + :vartype test_type: str + :ivar update_type: + :vartype update_type: str + :ivar used_free_hours: + :vartype used_free_hours: float + :ivar used_billable_hours: + :vartype used_billable_hours: float + :ivar billed_charges: + :vartype billed_charges: float + """ + + _attribute_map = { + 'application_name': {'key': 'applicationName', 'type': 'str'}, + 'application_version': {'key': 'applicationVersion', 'type': 'str'}, + 'execution_request_id': {'key': 'executionRequestId', 'type': 'str'}, + 'sku': {'key': 'sku', 'type': 'str'}, + 'meter_id': {'key': 'meterId', 'type': 'str'}, + 'start_time_stamp': {'key': 'startTimeStamp', 'type': 'iso-8601'}, + 'end_time_stamp': {'key': 'endTimeStamp', 'type': 'iso-8601'}, + 'os_build': {'key': 'osBuild', 'type': 'str'}, + 'release': {'key': 'release', 'type': 'str'}, + 'test_type': {'key': 'testType', 'type': 'str'}, + 'update_type': {'key': 'updateType', 'type': 'str'}, + 'used_free_hours': {'key': 'usedFreeHours', 'type': 'float'}, + 'used_billable_hours': {'key': 'usedBillableHours', 'type': 'float'}, + 'billed_charges': {'key': 'billedCharges', 'type': 'float'}, + } + + def __init__( + self, + *, + application_name: Optional[str] = None, + application_version: Optional[str] = None, + execution_request_id: Optional[str] = None, + sku: Optional[str] = None, + meter_id: Optional[str] = None, + start_time_stamp: Optional[datetime.datetime] = None, + end_time_stamp: Optional[datetime.datetime] = None, + os_build: Optional[str] = None, + release: Optional[str] = None, + test_type: Optional[str] = None, + update_type: Optional[str] = None, + used_free_hours: Optional[float] = None, + used_billable_hours: Optional[float] = None, + billed_charges: Optional[float] = None, + **kwargs + ): + """ + :keyword application_name: + :paramtype application_name: str + :keyword application_version: + :paramtype application_version: str + :keyword execution_request_id: + :paramtype execution_request_id: str + :keyword sku: + :paramtype sku: str + :keyword meter_id: + :paramtype meter_id: str + :keyword start_time_stamp: + :paramtype start_time_stamp: ~datetime.datetime + :keyword end_time_stamp: + :paramtype end_time_stamp: ~datetime.datetime + :keyword os_build: + :paramtype os_build: str + :keyword release: + :paramtype release: str + :keyword test_type: + :paramtype test_type: str + :keyword update_type: + :paramtype update_type: str + :keyword used_free_hours: + :paramtype used_free_hours: float + :keyword used_billable_hours: + :paramtype used_billable_hours: float + :keyword billed_charges: + :paramtype billed_charges: float + """ + super(BillingHubExecutionUsageDetail, self).__init__(**kwargs) + self.application_name = application_name + self.application_version = application_version + self.execution_request_id = execution_request_id + self.sku = sku + self.meter_id = meter_id + self.start_time_stamp = start_time_stamp + self.end_time_stamp = end_time_stamp + self.os_build = os_build + self.release = release + self.test_type = test_type + self.update_type = update_type + self.used_free_hours = used_free_hours + self.used_billable_hours = used_billable_hours + self.billed_charges = billed_charges + + +class BillingHubFreeHourIncrementEntry(msrest.serialization.Model): + """BillingHubFreeHourIncrementEntry. + + :ivar create_time_stamp: + :vartype create_time_stamp: ~datetime.datetime + :ivar expiration_time_stamp: + :vartype expiration_time_stamp: ~datetime.datetime + :ivar incremental_free_hours: + :vartype incremental_free_hours: float + :ivar remaining_free_hours: + :vartype remaining_free_hours: float + """ + + _attribute_map = { + 'create_time_stamp': {'key': 'createTimeStamp', 'type': 'iso-8601'}, + 'expiration_time_stamp': {'key': 'expirationTimeStamp', 'type': 'iso-8601'}, + 'incremental_free_hours': {'key': 'incrementalFreeHours', 'type': 'float'}, + 'remaining_free_hours': {'key': 'remainingFreeHours', 'type': 'float'}, + } + + def __init__( + self, + *, + create_time_stamp: Optional[datetime.datetime] = None, + expiration_time_stamp: Optional[datetime.datetime] = None, + incremental_free_hours: Optional[float] = None, + remaining_free_hours: Optional[float] = None, + **kwargs + ): + """ + :keyword create_time_stamp: + :paramtype create_time_stamp: ~datetime.datetime + :keyword expiration_time_stamp: + :paramtype expiration_time_stamp: ~datetime.datetime + :keyword incremental_free_hours: + :paramtype incremental_free_hours: float + :keyword remaining_free_hours: + :paramtype remaining_free_hours: float + """ + super(BillingHubFreeHourIncrementEntry, self).__init__(**kwargs) + self.create_time_stamp = create_time_stamp + self.expiration_time_stamp = expiration_time_stamp + self.incremental_free_hours = incremental_free_hours + self.remaining_free_hours = remaining_free_hours + + +class BillingHubGetFreeHourBalanceResponse(msrest.serialization.Model): + """BillingHubGetFreeHourBalanceResponse. + + :ivar total_remaining_free_hours: + :vartype total_remaining_free_hours: float + :ivar increment_entries: + :vartype increment_entries: list[~azure.mgmt.testbase.models.BillingHubFreeHourIncrementEntry] + """ + + _attribute_map = { + 'total_remaining_free_hours': {'key': 'totalRemainingFreeHours', 'type': 'float'}, + 'increment_entries': {'key': 'incrementEntries', 'type': '[BillingHubFreeHourIncrementEntry]'}, + } + + def __init__( + self, + *, + total_remaining_free_hours: Optional[float] = None, + increment_entries: Optional[List["_models.BillingHubFreeHourIncrementEntry"]] = None, + **kwargs + ): + """ + :keyword total_remaining_free_hours: + :paramtype total_remaining_free_hours: float + :keyword increment_entries: + :paramtype increment_entries: + list[~azure.mgmt.testbase.models.BillingHubFreeHourIncrementEntry] + """ + super(BillingHubGetFreeHourBalanceResponse, self).__init__(**kwargs) + self.total_remaining_free_hours = total_remaining_free_hours + self.increment_entries = increment_entries + + +class BillingHubGetUsageRequest(msrest.serialization.Model): + """BillingHubGetUsageRequest. + + All required parameters must be populated in order to send to Azure. + + :ivar start_time_stamp: Required. + :vartype start_time_stamp: ~datetime.datetime + :ivar end_time_stamp: Required. + :vartype end_time_stamp: ~datetime.datetime + :ivar page_size: + :vartype page_size: int + :ivar page_index: + :vartype page_index: int + """ + + _validation = { + 'start_time_stamp': {'required': True}, + 'end_time_stamp': {'required': True}, + } + + _attribute_map = { + 'start_time_stamp': {'key': 'startTimeStamp', 'type': 'iso-8601'}, + 'end_time_stamp': {'key': 'endTimeStamp', 'type': 'iso-8601'}, + 'page_size': {'key': 'pageSize', 'type': 'int'}, + 'page_index': {'key': 'pageIndex', 'type': 'int'}, + } + + def __init__( + self, + *, + start_time_stamp: datetime.datetime, + end_time_stamp: datetime.datetime, + page_size: Optional[int] = None, + page_index: Optional[int] = None, + **kwargs + ): + """ + :keyword start_time_stamp: Required. + :paramtype start_time_stamp: ~datetime.datetime + :keyword end_time_stamp: Required. + :paramtype end_time_stamp: ~datetime.datetime + :keyword page_size: + :paramtype page_size: int + :keyword page_index: + :paramtype page_index: int + """ + super(BillingHubGetUsageRequest, self).__init__(**kwargs) + self.start_time_stamp = start_time_stamp + self.end_time_stamp = end_time_stamp + self.page_size = page_size + self.page_index = page_index + + +class BillingHubGetUsageResponse(msrest.serialization.Model): + """BillingHubGetUsageResponse. + + :ivar total_used_free_hours: + :vartype total_used_free_hours: float + :ivar total_used_billable_hours: + :vartype total_used_billable_hours: float + :ivar total_charges: + :vartype total_charges: float + :ivar package_usage_entries: + :vartype package_usage_entries: list[~azure.mgmt.testbase.models.BillingHubPackageUsage] + :ivar next_request: + :vartype next_request: ~azure.mgmt.testbase.models.BillingHubGetUsageRequest + """ + + _attribute_map = { + 'total_used_free_hours': {'key': 'totalUsedFreeHours', 'type': 'float'}, + 'total_used_billable_hours': {'key': 'totalUsedBillableHours', 'type': 'float'}, + 'total_charges': {'key': 'totalCharges', 'type': 'float'}, + 'package_usage_entries': {'key': 'packageUsageEntries', 'type': '[BillingHubPackageUsage]'}, + 'next_request': {'key': 'nextRequest', 'type': 'BillingHubGetUsageRequest'}, + } + + def __init__( + self, + *, + total_used_free_hours: Optional[float] = None, + total_used_billable_hours: Optional[float] = None, + total_charges: Optional[float] = None, + package_usage_entries: Optional[List["_models.BillingHubPackageUsage"]] = None, + next_request: Optional["_models.BillingHubGetUsageRequest"] = None, + **kwargs + ): + """ + :keyword total_used_free_hours: + :paramtype total_used_free_hours: float + :keyword total_used_billable_hours: + :paramtype total_used_billable_hours: float + :keyword total_charges: + :paramtype total_charges: float + :keyword package_usage_entries: + :paramtype package_usage_entries: list[~azure.mgmt.testbase.models.BillingHubPackageUsage] + :keyword next_request: + :paramtype next_request: ~azure.mgmt.testbase.models.BillingHubGetUsageRequest + """ + super(BillingHubGetUsageResponse, self).__init__(**kwargs) + self.total_used_free_hours = total_used_free_hours + self.total_used_billable_hours = total_used_billable_hours + self.total_charges = total_charges + self.package_usage_entries = package_usage_entries + self.next_request = next_request + + +class BillingHubPackageUsage(msrest.serialization.Model): + """BillingHubPackageUsage. + + :ivar application_name: + :vartype application_name: str + :ivar application_version: + :vartype application_version: str + :ivar azure_resource_uri: + :vartype azure_resource_uri: str + :ivar total_used_free_hours: + :vartype total_used_free_hours: float + :ivar total_used_billable_hours: + :vartype total_used_billable_hours: float + :ivar total_charges: + :vartype total_charges: float + :ivar usage_entries_grouped_by_update_type: + :vartype usage_entries_grouped_by_update_type: + list[~azure.mgmt.testbase.models.BillingHubUsageGroupedByUpdateType] + """ + + _attribute_map = { + 'application_name': {'key': 'applicationName', 'type': 'str'}, + 'application_version': {'key': 'applicationVersion', 'type': 'str'}, + 'azure_resource_uri': {'key': 'azureResourceUri', 'type': 'str'}, + 'total_used_free_hours': {'key': 'totalUsedFreeHours', 'type': 'float'}, + 'total_used_billable_hours': {'key': 'totalUsedBillableHours', 'type': 'float'}, + 'total_charges': {'key': 'totalCharges', 'type': 'float'}, + 'usage_entries_grouped_by_update_type': {'key': 'usageEntriesGroupedByUpdateType', 'type': '[BillingHubUsageGroupedByUpdateType]'}, + } + + def __init__( + self, + *, + application_name: Optional[str] = None, + application_version: Optional[str] = None, + azure_resource_uri: Optional[str] = None, + total_used_free_hours: Optional[float] = None, + total_used_billable_hours: Optional[float] = None, + total_charges: Optional[float] = None, + usage_entries_grouped_by_update_type: Optional[List["_models.BillingHubUsageGroupedByUpdateType"]] = None, + **kwargs + ): + """ + :keyword application_name: + :paramtype application_name: str + :keyword application_version: + :paramtype application_version: str + :keyword azure_resource_uri: + :paramtype azure_resource_uri: str + :keyword total_used_free_hours: + :paramtype total_used_free_hours: float + :keyword total_used_billable_hours: + :paramtype total_used_billable_hours: float + :keyword total_charges: + :paramtype total_charges: float + :keyword usage_entries_grouped_by_update_type: + :paramtype usage_entries_grouped_by_update_type: + list[~azure.mgmt.testbase.models.BillingHubUsageGroupedByUpdateType] + """ + super(BillingHubPackageUsage, self).__init__(**kwargs) + self.application_name = application_name + self.application_version = application_version + self.azure_resource_uri = azure_resource_uri + self.total_used_free_hours = total_used_free_hours + self.total_used_billable_hours = total_used_billable_hours + self.total_charges = total_charges + self.usage_entries_grouped_by_update_type = usage_entries_grouped_by_update_type + + +class BillingHubUsage(msrest.serialization.Model): + """BillingHubUsage. + + :ivar application_name: + :vartype application_name: str + :ivar application_version: + :vartype application_version: str + :ivar azure_resource_uri: + :vartype azure_resource_uri: str + :ivar total_used_free_hours: + :vartype total_used_free_hours: float + :ivar total_used_billable_hours: + :vartype total_used_billable_hours: float + :ivar total_charges: + :vartype total_charges: float + :ivar usage_groups: + :vartype usage_groups: list[~azure.mgmt.testbase.models.BillingHubUsageGroup] + """ + + _attribute_map = { + 'application_name': {'key': 'applicationName', 'type': 'str'}, + 'application_version': {'key': 'applicationVersion', 'type': 'str'}, + 'azure_resource_uri': {'key': 'azureResourceUri', 'type': 'str'}, + 'total_used_free_hours': {'key': 'totalUsedFreeHours', 'type': 'float'}, + 'total_used_billable_hours': {'key': 'totalUsedBillableHours', 'type': 'float'}, + 'total_charges': {'key': 'totalCharges', 'type': 'float'}, + 'usage_groups': {'key': 'usageGroups', 'type': '[BillingHubUsageGroup]'}, + } + + def __init__( + self, + *, + application_name: Optional[str] = None, + application_version: Optional[str] = None, + azure_resource_uri: Optional[str] = None, + total_used_free_hours: Optional[float] = None, + total_used_billable_hours: Optional[float] = None, + total_charges: Optional[float] = None, + usage_groups: Optional[List["_models.BillingHubUsageGroup"]] = None, + **kwargs + ): + """ + :keyword application_name: + :paramtype application_name: str + :keyword application_version: + :paramtype application_version: str + :keyword azure_resource_uri: + :paramtype azure_resource_uri: str + :keyword total_used_free_hours: + :paramtype total_used_free_hours: float + :keyword total_used_billable_hours: + :paramtype total_used_billable_hours: float + :keyword total_charges: + :paramtype total_charges: float + :keyword usage_groups: + :paramtype usage_groups: list[~azure.mgmt.testbase.models.BillingHubUsageGroup] + """ + super(BillingHubUsage, self).__init__(**kwargs) + self.application_name = application_name + self.application_version = application_version + self.azure_resource_uri = azure_resource_uri + self.total_used_free_hours = total_used_free_hours + self.total_used_billable_hours = total_used_billable_hours + self.total_charges = total_charges + self.usage_groups = usage_groups + + +class BillingHubUsageGroup(msrest.serialization.Model): + """BillingHubUsageGroup. + + :ivar total_used_free_hours: + :vartype total_used_free_hours: float + :ivar total_used_billable_hours: + :vartype total_used_billable_hours: float + :ivar total_charges: + :vartype total_charges: float + :ivar release_build_revision: + :vartype release_build_revision: long + :ivar release_build_number: + :vartype release_build_number: long + :ivar release_build_date: + :vartype release_build_date: ~datetime.datetime + :ivar os_build: + :vartype os_build: str + :ivar release: + :vartype release: str + :ivar test_type: + :vartype test_type: str + :ivar product_family: + :vartype product_family: str + :ivar execution_usage_details: + :vartype execution_usage_details: + list[~azure.mgmt.testbase.models.BillingHubExecutionUsageDetail] + """ + + _attribute_map = { + 'total_used_free_hours': {'key': 'totalUsedFreeHours', 'type': 'float'}, + 'total_used_billable_hours': {'key': 'totalUsedBillableHours', 'type': 'float'}, + 'total_charges': {'key': 'totalCharges', 'type': 'float'}, + 'release_build_revision': {'key': 'releaseBuildRevision', 'type': 'long'}, + 'release_build_number': {'key': 'releaseBuildNumber', 'type': 'long'}, + 'release_build_date': {'key': 'releaseBuildDate', 'type': 'iso-8601'}, + 'os_build': {'key': 'osBuild', 'type': 'str'}, + 'release': {'key': 'release', 'type': 'str'}, + 'test_type': {'key': 'testType', 'type': 'str'}, + 'product_family': {'key': 'productFamily', 'type': 'str'}, + 'execution_usage_details': {'key': 'executionUsageDetails', 'type': '[BillingHubExecutionUsageDetail]'}, + } + + def __init__( + self, + *, + total_used_free_hours: Optional[float] = None, + total_used_billable_hours: Optional[float] = None, + total_charges: Optional[float] = None, + release_build_revision: Optional[int] = None, + release_build_number: Optional[int] = None, + release_build_date: Optional[datetime.datetime] = None, + os_build: Optional[str] = None, + release: Optional[str] = None, + test_type: Optional[str] = None, + product_family: Optional[str] = None, + execution_usage_details: Optional[List["_models.BillingHubExecutionUsageDetail"]] = None, + **kwargs + ): + """ + :keyword total_used_free_hours: + :paramtype total_used_free_hours: float + :keyword total_used_billable_hours: + :paramtype total_used_billable_hours: float + :keyword total_charges: + :paramtype total_charges: float + :keyword release_build_revision: + :paramtype release_build_revision: long + :keyword release_build_number: + :paramtype release_build_number: long + :keyword release_build_date: + :paramtype release_build_date: ~datetime.datetime + :keyword os_build: + :paramtype os_build: str + :keyword release: + :paramtype release: str + :keyword test_type: + :paramtype test_type: str + :keyword product_family: + :paramtype product_family: str + :keyword execution_usage_details: + :paramtype execution_usage_details: + list[~azure.mgmt.testbase.models.BillingHubExecutionUsageDetail] + """ + super(BillingHubUsageGroup, self).__init__(**kwargs) + self.total_used_free_hours = total_used_free_hours + self.total_used_billable_hours = total_used_billable_hours + self.total_charges = total_charges + self.release_build_revision = release_build_revision + self.release_build_number = release_build_number + self.release_build_date = release_build_date + self.os_build = os_build + self.release = release + self.test_type = test_type + self.product_family = product_family + self.execution_usage_details = execution_usage_details + + +class BillingHubUsageGroupedByUpdateType(msrest.serialization.Model): + """BillingHubUsageGroupedByUpdateType. + + :ivar update_type: + :vartype update_type: str + :ivar total_used_free_hours: + :vartype total_used_free_hours: float + :ivar total_used_billable_hours: + :vartype total_used_billable_hours: float + :ivar total_charges: + :vartype total_charges: float + :ivar usage_groups: + :vartype usage_groups: list[~azure.mgmt.testbase.models.BillingHubUsageGroup] + """ + + _attribute_map = { + 'update_type': {'key': 'updateType', 'type': 'str'}, + 'total_used_free_hours': {'key': 'totalUsedFreeHours', 'type': 'float'}, + 'total_used_billable_hours': {'key': 'totalUsedBillableHours', 'type': 'float'}, + 'total_charges': {'key': 'totalCharges', 'type': 'float'}, + 'usage_groups': {'key': 'usageGroups', 'type': '[BillingHubUsageGroup]'}, + } + + def __init__( + self, + *, + update_type: Optional[str] = None, + total_used_free_hours: Optional[float] = None, + total_used_billable_hours: Optional[float] = None, + total_charges: Optional[float] = None, + usage_groups: Optional[List["_models.BillingHubUsageGroup"]] = None, + **kwargs + ): + """ + :keyword update_type: + :paramtype update_type: str + :keyword total_used_free_hours: + :paramtype total_used_free_hours: float + :keyword total_used_billable_hours: + :paramtype total_used_billable_hours: float + :keyword total_charges: + :paramtype total_charges: float + :keyword usage_groups: + :paramtype usage_groups: list[~azure.mgmt.testbase.models.BillingHubUsageGroup] + """ + super(BillingHubUsageGroupedByUpdateType, self).__init__(**kwargs) + self.update_type = update_type + self.total_used_free_hours = total_used_free_hours + self.total_used_billable_hours = total_used_billable_hours + self.total_charges = total_charges + self.usage_groups = usage_groups + + class CheckNameAvailabilityResult(msrest.serialization.Model): """Description of a Check Name availability response properties. Variables are only populated by the server, and will be ignored when sending a request. - :param name_available: Value indicating the availability of the name: true if the name is + :ivar name_available: Value indicating the availability of the name: true if the name is available; otherwise, false. - :type name_available: bool - :param reason: The reason for unavailability of a name. Required if nameAvailable == false. - Possible values include: "Invalid", "AlreadyExists". - :type reason: str or ~test_base.models.Reason + :vartype name_available: bool + :ivar reason: The reason for unavailability of a name. Required if nameAvailable == false. + Known values are: "Invalid", "AlreadyExists". + :vartype reason: str or ~azure.mgmt.testbase.models.Reason :ivar message: The detailed info regarding the reason associated with the name. Required if nameAvailable == false. :vartype message: str @@ -335,9 +958,17 @@ def __init__( self, *, name_available: Optional[bool] = None, - reason: Optional[Union[str, "Reason"]] = None, + reason: Optional[Union[str, "_models.Reason"]] = None, **kwargs ): + """ + :keyword name_available: Value indicating the availability of the name: true if the name is + available; otherwise, false. + :paramtype name_available: bool + :keyword reason: The reason for unavailability of a name. Required if nameAvailable == false. + Known values are: "Invalid", "AlreadyExists". + :paramtype reason: str or ~azure.mgmt.testbase.models.Reason + """ super(CheckNameAvailabilityResult, self).__init__(**kwargs) self.name_available = name_available self.reason = reason @@ -349,28 +980,28 @@ class Command(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :param name: Required. The name of the command. - :type name: str - :param action: Required. The action of the command. Possible values include: "Install", - "Launch", "Close", "Uninstall", "Custom". - :type action: str or ~test_base.models.Action - :param content_type: Required. The type of command content. Possible values include: "Inline", - "File", "Path". - :type content_type: str or ~test_base.models.ContentType - :param content: Required. The content of the command. The content depends on source type. - :type content: str - :param run_elevated: Specifies whether to run the command as administrator. - :type run_elevated: bool - :param restart_after: Specifies whether to restart the VM after the command executed. - :type restart_after: bool - :param max_run_time: Specifies the max run time of the command. - :type max_run_time: int - :param run_as_interactive: Specifies whether to run the command in interactive mode. - :type run_as_interactive: bool - :param always_run: Specifies whether to run the command even if a previous command is failed. - :type always_run: bool - :param apply_update_before: Specifies whether to apply update before the command. - :type apply_update_before: bool + :ivar name: Required. The name of the command. + :vartype name: str + :ivar action: Required. The action of the command. Known values are: "Install", "Launch", + "Close", "Uninstall", "Custom". + :vartype action: str or ~azure.mgmt.testbase.models.Action + :ivar content_type: Required. The type of command content. Known values are: "Inline", "File", + "Path". + :vartype content_type: str or ~azure.mgmt.testbase.models.ContentType + :ivar content: Required. The content of the command. The content depends on source type. + :vartype content: str + :ivar run_elevated: Specifies whether to run the command as administrator. + :vartype run_elevated: bool + :ivar restart_after: Specifies whether to restart the VM after the command executed. + :vartype restart_after: bool + :ivar max_run_time: Specifies the max run time of the command. + :vartype max_run_time: int + :ivar run_as_interactive: Specifies whether to run the command in interactive mode. + :vartype run_as_interactive: bool + :ivar always_run: Specifies whether to run the command even if a previous command is failed. + :vartype always_run: bool + :ivar apply_update_before: Specifies whether to apply update before the command. + :vartype apply_update_before: bool """ _validation = { @@ -397,8 +1028,8 @@ def __init__( self, *, name: str, - action: Union[str, "Action"], - content_type: Union[str, "ContentType"], + action: Union[str, "_models.Action"], + content_type: Union[str, "_models.ContentType"], content: str, run_elevated: Optional[bool] = None, restart_after: Optional[bool] = None, @@ -408,6 +1039,30 @@ def __init__( apply_update_before: Optional[bool] = None, **kwargs ): + """ + :keyword name: Required. The name of the command. + :paramtype name: str + :keyword action: Required. The action of the command. Known values are: "Install", "Launch", + "Close", "Uninstall", "Custom". + :paramtype action: str or ~azure.mgmt.testbase.models.Action + :keyword content_type: Required. The type of command content. Known values are: "Inline", + "File", "Path". + :paramtype content_type: str or ~azure.mgmt.testbase.models.ContentType + :keyword content: Required. The content of the command. The content depends on source type. + :paramtype content: str + :keyword run_elevated: Specifies whether to run the command as administrator. + :paramtype run_elevated: bool + :keyword restart_after: Specifies whether to restart the VM after the command executed. + :paramtype restart_after: bool + :keyword max_run_time: Specifies the max run time of the command. + :paramtype max_run_time: int + :keyword run_as_interactive: Specifies whether to run the command in interactive mode. + :paramtype run_as_interactive: bool + :keyword always_run: Specifies whether to run the command even if a previous command is failed. + :paramtype always_run: bool + :keyword apply_update_before: Specifies whether to apply update before the command. + :paramtype apply_update_before: bool + """ super(Command, self).__init__(**kwargs) self.name = name self.action = action @@ -426,15 +1081,14 @@ class CPURegressionResultSingletonResourceProperties(AnalysisResultSingletonReso All required parameters must be populated in order to send to Azure. - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - :param cpu_regression_results: The result array data. - :type cpu_regression_results: list[~test_base.models.RegressionResult] + :ivar grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", "Fail". + :vartype grade: str or ~azure.mgmt.testbase.models.Grade + :ivar analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. + Known values are: "ScriptExecution", "Reliability", "CPUUtilization", "MemoryUtilization", + "CPURegression", "MemoryRegression", "TestAnalysis". + :vartype analysis_result_type: str or ~azure.mgmt.testbase.models.AnalysisResultType + :ivar cpu_regression_results: The result array data. + :vartype cpu_regression_results: list[~azure.mgmt.testbase.models.RegressionResult] """ _validation = { @@ -450,10 +1104,17 @@ class CPURegressionResultSingletonResourceProperties(AnalysisResultSingletonReso def __init__( self, *, - grade: Optional[Union[str, "Grade"]] = None, - cpu_regression_results: Optional[List["RegressionResult"]] = None, + grade: Optional[Union[str, "_models.Grade"]] = None, + cpu_regression_results: Optional[List["_models.RegressionResult"]] = None, **kwargs ): + """ + :keyword grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :paramtype grade: str or ~azure.mgmt.testbase.models.Grade + :keyword cpu_regression_results: The result array data. + :paramtype cpu_regression_results: list[~azure.mgmt.testbase.models.RegressionResult] + """ super(CPURegressionResultSingletonResourceProperties, self).__init__(grade=grade, **kwargs) self.analysis_result_type = 'CPURegression' # type: str self.cpu_regression_results = cpu_regression_results @@ -464,15 +1125,14 @@ class CPUUtilizationResultSingletonResourceProperties(AnalysisResultSingletonRes All required parameters must be populated in order to send to Azure. - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - :param cpu_utilization_results: The result array data. - :type cpu_utilization_results: list[~test_base.models.UtilizationResult] + :ivar grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", "Fail". + :vartype grade: str or ~azure.mgmt.testbase.models.Grade + :ivar analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. + Known values are: "ScriptExecution", "Reliability", "CPUUtilization", "MemoryUtilization", + "CPURegression", "MemoryRegression", "TestAnalysis". + :vartype analysis_result_type: str or ~azure.mgmt.testbase.models.AnalysisResultType + :ivar cpu_utilization_results: The result array data. + :vartype cpu_utilization_results: list[~azure.mgmt.testbase.models.UtilizationResult] """ _validation = { @@ -488,10 +1148,17 @@ class CPUUtilizationResultSingletonResourceProperties(AnalysisResultSingletonRes def __init__( self, *, - grade: Optional[Union[str, "Grade"]] = None, - cpu_utilization_results: Optional[List["UtilizationResult"]] = None, + grade: Optional[Union[str, "_models.Grade"]] = None, + cpu_utilization_results: Optional[List["_models.UtilizationResult"]] = None, **kwargs ): + """ + :keyword grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :paramtype grade: str or ~azure.mgmt.testbase.models.Grade + :keyword cpu_utilization_results: The result array data. + :paramtype cpu_utilization_results: list[~azure.mgmt.testbase.models.UtilizationResult] + """ super(CPUUtilizationResultSingletonResourceProperties, self).__init__(grade=grade, **kwargs) self.analysis_result_type = 'CPUUtilization' # type: str self.cpu_utilization_results = cpu_utilization_results @@ -502,8 +1169,8 @@ class CustomerEventListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :param value: The list of Test Base Customer Events. - :type value: list[~test_base.models.CustomerEventResource] + :ivar value: The list of Test Base Customer Events. + :vartype value: list[~azure.mgmt.testbase.models.CustomerEventResource] :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list of results. :vartype next_link: str @@ -521,9 +1188,13 @@ class CustomerEventListResult(msrest.serialization.Model): def __init__( self, *, - value: Optional[List["CustomerEventResource"]] = None, + value: Optional[List["_models.CustomerEventResource"]] = None, **kwargs ): + """ + :keyword value: The list of Test Base Customer Events. + :paramtype value: list[~azure.mgmt.testbase.models.CustomerEventResource] + """ super(CustomerEventListResult, self).__init__(**kwargs) self.value = value self.next_link = None @@ -541,11 +1212,11 @@ class CustomerEventResource(ProxyResource): :ivar type: Resource type. :vartype type: str :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param event_name: The name of the event subscribed to. - :type event_name: str - :param receivers: The notification event receivers. - :type receivers: list[~test_base.models.NotificationEventReceiver] + :vartype system_data: ~azure.mgmt.testbase.models.SystemData + :ivar event_name: The name of the event subscribed to. + :vartype event_name: str + :ivar receivers: The notification event receivers. + :vartype receivers: list[~azure.mgmt.testbase.models.NotificationEventReceiver] """ _validation = { @@ -568,9 +1239,15 @@ def __init__( self, *, event_name: Optional[str] = None, - receivers: Optional[List["NotificationEventReceiver"]] = None, + receivers: Optional[List["_models.NotificationEventReceiver"]] = None, **kwargs ): + """ + :keyword event_name: The name of the event subscribed to. + :paramtype event_name: str + :keyword receivers: The notification event receivers. + :paramtype receivers: list[~azure.mgmt.testbase.models.NotificationEventReceiver] + """ super(CustomerEventResource, self).__init__(**kwargs) self.system_data = None self.event_name = event_name @@ -580,8 +1257,8 @@ def __init__( class DistributionGroupListReceiverValue(msrest.serialization.Model): """The user object receiver value. - :param distribution_groups: The list of distribution groups. - :type distribution_groups: list[str] + :ivar distribution_groups: The list of distribution groups. + :vartype distribution_groups: list[str] """ _attribute_map = { @@ -594,6 +1271,10 @@ def __init__( distribution_groups: Optional[List[str]] = None, **kwargs ): + """ + :keyword distribution_groups: The list of distribution groups. + :paramtype distribution_groups: list[str] + """ super(DistributionGroupListReceiverValue, self).__init__(**kwargs) self.distribution_groups = distribution_groups @@ -623,6 +1304,8 @@ def __init__( self, **kwargs ): + """ + """ super(DownloadURLResponse, self).__init__(**kwargs) self.download_url = None self.expiration_time = None @@ -633,8 +1316,8 @@ class EmailEventListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :param value: The list of email events. - :type value: list[~test_base.models.EmailEventResource] + :ivar value: The list of email events. + :vartype value: list[~azure.mgmt.testbase.models.EmailEventResource] :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list of results. :vartype next_link: str @@ -652,9 +1335,13 @@ class EmailEventListResult(msrest.serialization.Model): def __init__( self, *, - value: Optional[List["EmailEventResource"]] = None, + value: Optional[List["_models.EmailEventResource"]] = None, **kwargs ): + """ + :keyword value: The list of email events. + :paramtype value: list[~azure.mgmt.testbase.models.EmailEventResource] + """ super(EmailEventListResult, self).__init__(**kwargs) self.value = value self.next_link = None @@ -672,13 +1359,13 @@ class EmailEventResource(ProxyResource): :ivar type: Resource type. :vartype type: str :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param event_id: The identifier of the email event. - :type event_id: str - :param event_name: The name of the email event. - :type event_name: str - :param display_name: The display name of the email event. - :type display_name: str + :vartype system_data: ~azure.mgmt.testbase.models.SystemData + :ivar event_id: The identifier of the email event. + :vartype event_id: str + :ivar event_name: The name of the email event. + :vartype event_name: str + :ivar display_name: The display name of the email event. + :vartype display_name: str """ _validation = { @@ -706,6 +1393,14 @@ def __init__( display_name: Optional[str] = None, **kwargs ): + """ + :keyword event_id: The identifier of the email event. + :paramtype event_id: str + :keyword event_name: The name of the email event. + :paramtype event_name: str + :keyword display_name: The display name of the email event. + :paramtype display_name: str + """ super(EmailEventResource, self).__init__(**kwargs) self.system_data = None self.event_id = event_id @@ -725,7 +1420,7 @@ class ErrorDefinition(msrest.serialization.Model): :ivar target: The target of the particular error. :vartype target: str :ivar details: The error details. - :vartype details: list[~test_base.models.ErrorDefinition] + :vartype details: list[~azure.mgmt.testbase.models.ErrorDefinition] """ _validation = { @@ -746,6 +1441,8 @@ def __init__( self, **kwargs ): + """ + """ super(ErrorDefinition, self).__init__(**kwargs) self.code = None self.message = None @@ -756,8 +1453,8 @@ def __init__( class ErrorResponse(msrest.serialization.Model): """The error response send when an operation fails. - :param error: The error details. - :type error: ~test_base.models.ErrorDefinition + :ivar error: The error details. + :vartype error: ~azure.mgmt.testbase.models.ErrorDefinition """ _attribute_map = { @@ -767,9 +1464,13 @@ class ErrorResponse(msrest.serialization.Model): def __init__( self, *, - error: Optional["ErrorDefinition"] = None, + error: Optional["_models.ErrorDefinition"] = None, **kwargs ): + """ + :keyword error: The error details. + :paramtype error: ~azure.mgmt.testbase.models.ErrorDefinition + """ super(ErrorResponse, self).__init__(**kwargs) self.error = error @@ -779,8 +1480,8 @@ class FavoriteProcessListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :param value: The list of favorite processes for a package. - :type value: list[~test_base.models.FavoriteProcessResource] + :ivar value: The list of favorite processes for a package. + :vartype value: list[~azure.mgmt.testbase.models.FavoriteProcessResource] :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list of results. :vartype next_link: str @@ -798,9 +1499,13 @@ class FavoriteProcessListResult(msrest.serialization.Model): def __init__( self, *, - value: Optional[List["FavoriteProcessResource"]] = None, + value: Optional[List["_models.FavoriteProcessResource"]] = None, **kwargs ): + """ + :keyword value: The list of favorite processes for a package. + :paramtype value: list[~azure.mgmt.testbase.models.FavoriteProcessResource] + """ super(FavoriteProcessListResult, self).__init__(**kwargs) self.value = value self.next_link = None @@ -818,11 +1523,11 @@ class FavoriteProcessResource(ProxyResource): :ivar type: Resource type. :vartype type: str :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param actual_process_name: The actual name of the favorite process. It will be equal to + :vartype system_data: ~azure.mgmt.testbase.models.SystemData + :ivar actual_process_name: The actual name of the favorite process. It will be equal to resource name except for the scenario that the process name contains characters that are not allowed in the resource name. - :type actual_process_name: str + :vartype actual_process_name: str """ _validation = { @@ -846,6 +1551,12 @@ def __init__( actual_process_name: Optional[str] = None, **kwargs ): + """ + :keyword actual_process_name: The actual name of the favorite process. It will be equal to + resource name except for the scenario that the process name contains characters that are not + allowed in the resource name. + :paramtype actual_process_name: str + """ super(FavoriteProcessResource, self).__init__(**kwargs) self.system_data = None self.actual_process_name = actual_process_name @@ -877,6 +1588,8 @@ def __init__( self, **kwargs ): + """ + """ super(FileUploadURLResponse, self).__init__(**kwargs) self.upload_url = None self.blob_path = None @@ -887,8 +1600,8 @@ class FlightingRingListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :param value: The list of flighting rings. - :type value: list[~test_base.models.FlightingRingResource] + :ivar value: The list of flighting rings. + :vartype value: list[~azure.mgmt.testbase.models.FlightingRingResource] :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list of results. :vartype next_link: str @@ -906,9 +1619,13 @@ class FlightingRingListResult(msrest.serialization.Model): def __init__( self, *, - value: Optional[List["FlightingRingResource"]] = None, + value: Optional[List["_models.FlightingRingResource"]] = None, **kwargs ): + """ + :keyword value: The list of flighting rings. + :paramtype value: list[~azure.mgmt.testbase.models.FlightingRingResource] + """ super(FlightingRingListResult, self).__init__(**kwargs) self.value = value self.next_link = None @@ -926,9 +1643,9 @@ class FlightingRingResource(ProxyResource): :ivar type: Resource type. :vartype type: str :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param actual_flighting_ring_name: The actual name of a flighting ring of a Test Base Account. - :type actual_flighting_ring_name: str + :vartype system_data: ~azure.mgmt.testbase.models.SystemData + :ivar actual_flighting_ring_name: The actual name of a flighting ring of a Test Base Account. + :vartype actual_flighting_ring_name: str """ _validation = { @@ -952,6 +1669,11 @@ def __init__( actual_flighting_ring_name: Optional[str] = None, **kwargs ): + """ + :keyword actual_flighting_ring_name: The actual name of a flighting ring of a Test Base + Account. + :paramtype actual_flighting_ring_name: str + """ super(FlightingRingResource, self).__init__(**kwargs) self.system_data = None self.actual_flighting_ring_name = actual_flighting_ring_name @@ -960,8 +1682,8 @@ def __init__( class GetFileUploadURLParameters(msrest.serialization.Model): """The parameters supplied to the Test Base Account GetFileUploadURL action. - :param blob_name: The custom file name of the uploaded blob. - :type blob_name: str + :ivar blob_name: The custom file name of the uploaded blob. + :vartype blob_name: str """ _attribute_map = { @@ -974,6 +1696,10 @@ def __init__( blob_name: Optional[str] = None, **kwargs ): + """ + :keyword blob_name: The custom file name of the uploaded blob. + :paramtype blob_name: str + """ super(GetFileUploadURLParameters, self).__init__(**kwargs) self.blob_name = blob_name @@ -981,15 +1707,15 @@ def __init__( class IdentifiedFailure(msrest.serialization.Model): """The failure identified. - :param failure_id: The Failure Id. - :type failure_id: str - :param category: The category of the failure. Possible values include: "None", "Unidentified", + :ivar failure_id: The Failure Id. + :vartype failure_id: str + :ivar category: The category of the failure. Known values are: "None", "Unidentified", "Package", "OSUpdate", "Infrastructure". - :type category: str or ~test_base.models.Category - :param error_message: Message that shows information about the failure. - :type error_message: str - :param guidance: Guidance that shows what the customer needs to do for this failure. - :type guidance: str + :vartype category: str or ~azure.mgmt.testbase.models.Category + :ivar error_message: Message that shows information about the failure. + :vartype error_message: str + :ivar guidance: Guidance that shows what the customer needs to do for this failure. + :vartype guidance: str """ _attribute_map = { @@ -1003,11 +1729,22 @@ def __init__( self, *, failure_id: Optional[str] = None, - category: Optional[Union[str, "Category"]] = None, + category: Optional[Union[str, "_models.Category"]] = None, error_message: Optional[str] = None, guidance: Optional[str] = None, **kwargs ): + """ + :keyword failure_id: The Failure Id. + :paramtype failure_id: str + :keyword category: The category of the failure. Known values are: "None", "Unidentified", + "Package", "OSUpdate", "Infrastructure". + :paramtype category: str or ~azure.mgmt.testbase.models.Category + :keyword error_message: Message that shows information about the failure. + :paramtype error_message: str + :keyword guidance: Guidance that shows what the customer needs to do for this failure. + :paramtype guidance: str + """ super(IdentifiedFailure, self).__init__(**kwargs) self.failure_id = failure_id self.category = category @@ -1020,15 +1757,14 @@ class MemoryRegressionResultSingletonResourceProperties(AnalysisResultSingletonR All required parameters must be populated in order to send to Azure. - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - :param memory_regression_results: The result array data. - :type memory_regression_results: list[~test_base.models.RegressionResult] + :ivar grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", "Fail". + :vartype grade: str or ~azure.mgmt.testbase.models.Grade + :ivar analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. + Known values are: "ScriptExecution", "Reliability", "CPUUtilization", "MemoryUtilization", + "CPURegression", "MemoryRegression", "TestAnalysis". + :vartype analysis_result_type: str or ~azure.mgmt.testbase.models.AnalysisResultType + :ivar memory_regression_results: The result array data. + :vartype memory_regression_results: list[~azure.mgmt.testbase.models.RegressionResult] """ _validation = { @@ -1044,10 +1780,17 @@ class MemoryRegressionResultSingletonResourceProperties(AnalysisResultSingletonR def __init__( self, *, - grade: Optional[Union[str, "Grade"]] = None, - memory_regression_results: Optional[List["RegressionResult"]] = None, + grade: Optional[Union[str, "_models.Grade"]] = None, + memory_regression_results: Optional[List["_models.RegressionResult"]] = None, **kwargs ): + """ + :keyword grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :paramtype grade: str or ~azure.mgmt.testbase.models.Grade + :keyword memory_regression_results: The result array data. + :paramtype memory_regression_results: list[~azure.mgmt.testbase.models.RegressionResult] + """ super(MemoryRegressionResultSingletonResourceProperties, self).__init__(grade=grade, **kwargs) self.analysis_result_type = 'MemoryRegression' # type: str self.memory_regression_results = memory_regression_results @@ -1058,15 +1801,14 @@ class MemoryUtilizationResultSingletonResourceProperties(AnalysisResultSingleton All required parameters must be populated in order to send to Azure. - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - :param memory_utilization_results: The result array data. - :type memory_utilization_results: list[~test_base.models.UtilizationResult] + :ivar grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", "Fail". + :vartype grade: str or ~azure.mgmt.testbase.models.Grade + :ivar analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. + Known values are: "ScriptExecution", "Reliability", "CPUUtilization", "MemoryUtilization", + "CPURegression", "MemoryRegression", "TestAnalysis". + :vartype analysis_result_type: str or ~azure.mgmt.testbase.models.AnalysisResultType + :ivar memory_utilization_results: The result array data. + :vartype memory_utilization_results: list[~azure.mgmt.testbase.models.UtilizationResult] """ _validation = { @@ -1082,10 +1824,17 @@ class MemoryUtilizationResultSingletonResourceProperties(AnalysisResultSingleton def __init__( self, *, - grade: Optional[Union[str, "Grade"]] = None, - memory_utilization_results: Optional[List["UtilizationResult"]] = None, + grade: Optional[Union[str, "_models.Grade"]] = None, + memory_utilization_results: Optional[List["_models.UtilizationResult"]] = None, **kwargs ): + """ + :keyword grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :paramtype grade: str or ~azure.mgmt.testbase.models.Grade + :keyword memory_utilization_results: The result array data. + :paramtype memory_utilization_results: list[~azure.mgmt.testbase.models.UtilizationResult] + """ super(MemoryUtilizationResultSingletonResourceProperties, self).__init__(grade=grade, **kwargs) self.analysis_result_type = 'MemoryUtilization' # type: str self.memory_utilization_results = memory_utilization_results @@ -1094,10 +1843,10 @@ def __init__( class NotificationEventReceiver(msrest.serialization.Model): """A notification event receivers. - :param receiver_type: The type of the notification event receiver. - :type receiver_type: str - :param receiver_value: The notification event receiver value. - :type receiver_value: ~test_base.models.NotificationReceiverValue + :ivar receiver_type: The type of the notification event receiver. + :vartype receiver_type: str + :ivar receiver_value: The notification event receiver value. + :vartype receiver_value: ~azure.mgmt.testbase.models.NotificationReceiverValue """ _attribute_map = { @@ -1109,9 +1858,15 @@ def __init__( self, *, receiver_type: Optional[str] = None, - receiver_value: Optional["NotificationReceiverValue"] = None, + receiver_value: Optional["_models.NotificationReceiverValue"] = None, **kwargs ): + """ + :keyword receiver_type: The type of the notification event receiver. + :paramtype receiver_type: str + :keyword receiver_value: The notification event receiver value. + :paramtype receiver_value: ~azure.mgmt.testbase.models.NotificationReceiverValue + """ super(NotificationEventReceiver, self).__init__(**kwargs) self.receiver_type = receiver_type self.receiver_value = receiver_value @@ -1120,13 +1875,13 @@ def __init__( class NotificationReceiverValue(msrest.serialization.Model): """A notification event receiver value. - :param user_object_receiver_value: The user object receiver value. - :type user_object_receiver_value: ~test_base.models.UserObjectReceiverValue - :param subscription_receiver_value: The user object receiver value. - :type subscription_receiver_value: ~test_base.models.SubscriptionReceiverValue - :param distribution_group_list_receiver_value: The user object receiver value. - :type distribution_group_list_receiver_value: - ~test_base.models.DistributionGroupListReceiverValue + :ivar user_object_receiver_value: The user object receiver value. + :vartype user_object_receiver_value: ~azure.mgmt.testbase.models.UserObjectReceiverValue + :ivar subscription_receiver_value: The user object receiver value. + :vartype subscription_receiver_value: ~azure.mgmt.testbase.models.SubscriptionReceiverValue + :ivar distribution_group_list_receiver_value: The user object receiver value. + :vartype distribution_group_list_receiver_value: + ~azure.mgmt.testbase.models.DistributionGroupListReceiverValue """ _attribute_map = { @@ -1138,11 +1893,20 @@ class NotificationReceiverValue(msrest.serialization.Model): def __init__( self, *, - user_object_receiver_value: Optional["UserObjectReceiverValue"] = None, - subscription_receiver_value: Optional["SubscriptionReceiverValue"] = None, - distribution_group_list_receiver_value: Optional["DistributionGroupListReceiverValue"] = None, + user_object_receiver_value: Optional["_models.UserObjectReceiverValue"] = None, + subscription_receiver_value: Optional["_models.SubscriptionReceiverValue"] = None, + distribution_group_list_receiver_value: Optional["_models.DistributionGroupListReceiverValue"] = None, **kwargs ): + """ + :keyword user_object_receiver_value: The user object receiver value. + :paramtype user_object_receiver_value: ~azure.mgmt.testbase.models.UserObjectReceiverValue + :keyword subscription_receiver_value: The user object receiver value. + :paramtype subscription_receiver_value: ~azure.mgmt.testbase.models.SubscriptionReceiverValue + :keyword distribution_group_list_receiver_value: The user object receiver value. + :paramtype distribution_group_list_receiver_value: + ~azure.mgmt.testbase.models.DistributionGroupListReceiverValue + """ super(NotificationReceiverValue, self).__init__(**kwargs) self.user_object_receiver_value = user_object_receiver_value self.subscription_receiver_value = subscription_receiver_value @@ -1160,10 +1924,10 @@ class Operation(msrest.serialization.Model): :vartype is_data_action: bool :ivar origin: Origin of the operation. :vartype origin: str - :param display: The object that describes the operation. - :type display: ~test_base.models.OperationDisplay - :param properties: Extra properties of the operation. - :type properties: any + :ivar display: The object that describes the operation. + :vartype display: ~azure.mgmt.testbase.models.OperationDisplay + :ivar properties: Extra properties of the operation. + :vartype properties: any """ _validation = { @@ -1183,10 +1947,16 @@ class Operation(msrest.serialization.Model): def __init__( self, *, - display: Optional["OperationDisplay"] = None, + display: Optional["_models.OperationDisplay"] = None, properties: Optional[Any] = None, **kwargs ): + """ + :keyword display: The object that describes the operation. + :paramtype display: ~azure.mgmt.testbase.models.OperationDisplay + :keyword properties: Extra properties of the operation. + :paramtype properties: any + """ super(Operation, self).__init__(**kwargs) self.name = None self.is_data_action = None @@ -1228,6 +1998,8 @@ def __init__( self, **kwargs ): + """ + """ super(OperationDisplay, self).__init__(**kwargs) self.provider = None self.operation = None @@ -1240,8 +2012,8 @@ class OperationListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :param value: List of operations supported by the Test Base resource provider. - :type value: list[~test_base.models.Operation] + :ivar value: List of operations supported by the Test Base resource provider. + :vartype value: list[~azure.mgmt.testbase.models.Operation] :ivar next_link: URL to get the next set of operation list results if there are any. :vartype next_link: str """ @@ -1258,9 +2030,13 @@ class OperationListResult(msrest.serialization.Model): def __init__( self, *, - value: Optional[List["Operation"]] = None, + value: Optional[List["_models.Operation"]] = None, **kwargs ): + """ + :keyword value: List of operations supported by the Test Base resource provider. + :paramtype value: list[~azure.mgmt.testbase.models.Operation] + """ super(OperationListResult, self).__init__(**kwargs) self.value = value self.next_link = None @@ -1271,8 +2047,8 @@ class OSUpdateListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :param value: The list of OS Updates. - :type value: list[~test_base.models.OSUpdateResource] + :ivar value: The list of OS Updates. + :vartype value: list[~azure.mgmt.testbase.models.OSUpdateResource] :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list of results. :vartype next_link: str @@ -1290,9 +2066,13 @@ class OSUpdateListResult(msrest.serialization.Model): def __init__( self, *, - value: Optional[List["OSUpdateResource"]] = None, + value: Optional[List["_models.OSUpdateResource"]] = None, **kwargs ): + """ + :keyword value: The list of OS Updates. + :paramtype value: list[~azure.mgmt.testbase.models.OSUpdateResource] + """ super(OSUpdateListResult, self).__init__(**kwargs) self.value = value self.next_link = None @@ -1310,22 +2090,22 @@ class OSUpdateResource(ProxyResource): :ivar type: Resource type. :vartype type: str :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param os_name: The name of the OS. - :type os_name: str - :param release: The name of tested release. - :type release: str - :param flighting_ring: The flighting ring, only for release of feature updates. - :type flighting_ring: str - :param build_version: The build version of the tested release (OS update). - :type build_version: str - :param build_revision: The build revision of the tested release (OS update). - :type build_revision: str - :param type_properties_type: The type of this release (OS update). Possible values include: + :vartype system_data: ~azure.mgmt.testbase.models.SystemData + :ivar os_name: The name of the OS. + :vartype os_name: str + :ivar release: The name of tested release. + :vartype release: str + :ivar flighting_ring: The flighting ring, only for release of feature updates. + :vartype flighting_ring: str + :ivar build_version: The build version of the tested release (OS update). + :vartype build_version: str + :ivar build_revision: The build revision of the tested release (OS update). + :vartype build_revision: str + :ivar type_properties_type: The type of this release (OS update). Known values are: "SecurityUpdate", "FeatureUpdate". - :type type_properties_type: str or ~test_base.models.Type - :param release_version_date: The release version date the tested release (OS update). - :type release_version_date: ~datetime.datetime + :vartype type_properties_type: str or ~azure.mgmt.testbase.models.Type + :ivar release_version_date: The release version date the tested release (OS update). + :vartype release_version_date: ~datetime.datetime """ _validation = { @@ -1357,10 +2137,27 @@ def __init__( flighting_ring: Optional[str] = None, build_version: Optional[str] = None, build_revision: Optional[str] = None, - type_properties_type: Optional[Union[str, "Type"]] = None, + type_properties_type: Optional[Union[str, "_models.Type"]] = None, release_version_date: Optional[datetime.datetime] = None, **kwargs ): + """ + :keyword os_name: The name of the OS. + :paramtype os_name: str + :keyword release: The name of tested release. + :paramtype release: str + :keyword flighting_ring: The flighting ring, only for release of feature updates. + :paramtype flighting_ring: str + :keyword build_version: The build version of the tested release (OS update). + :paramtype build_version: str + :keyword build_revision: The build revision of the tested release (OS update). + :paramtype build_revision: str + :keyword type_properties_type: The type of this release (OS update). Known values are: + "SecurityUpdate", "FeatureUpdate". + :paramtype type_properties_type: str or ~azure.mgmt.testbase.models.Type + :keyword release_version_date: The release version date the tested release (OS update). + :paramtype release_version_date: ~datetime.datetime + """ super(OSUpdateResource, self).__init__(**kwargs) self.system_data = None self.os_name = os_name @@ -1375,20 +2172,19 @@ def __init__( class OSUpdatesTestSummary(msrest.serialization.Model): """The summary of some tests. - :param execution_status: The status of the last test. Possible values include: "None", - "InProgress", "Processing", "Completed", "NotExecuted", "Incomplete", "Failed", "Succeeded". - :type execution_status: str or ~test_base.models.ExecutionStatus - :param test_status: The status of last test. Possible values include: "None", + :ivar execution_status: The status of the last test. Known values are: "None", "InProgress", + "Processing", "Completed", "NotExecuted", "Incomplete", "Failed", "Succeeded". + :vartype execution_status: str or ~azure.mgmt.testbase.models.ExecutionStatus + :ivar test_status: The status of last test. Known values are: "None", "TestExecutionInProgress", "DataProcessing", "TestFailure", "UpdateFailure", "TestAndUpdateFailure", "InfrastructureFailure", "Completed". - :type test_status: str or ~test_base.models.TestStatus - :param grade: The grade of last test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param test_run_time: The run time of the last test. - :type test_run_time: str - :param os_update_test_summaries: Detailed summary for each OS update. - :type os_update_test_summaries: list[~test_base.models.OSUpdateTestSummary] + :vartype test_status: str or ~azure.mgmt.testbase.models.TestStatus + :ivar grade: The grade of last test. Known values are: "None", "NotAvailable", "Pass", "Fail". + :vartype grade: str or ~azure.mgmt.testbase.models.Grade + :ivar test_run_time: The run time of the last test. + :vartype test_run_time: str + :ivar os_update_test_summaries: Detailed summary for each OS update. + :vartype os_update_test_summaries: list[~azure.mgmt.testbase.models.OSUpdateTestSummary] """ _attribute_map = { @@ -1402,13 +2198,29 @@ class OSUpdatesTestSummary(msrest.serialization.Model): def __init__( self, *, - execution_status: Optional[Union[str, "ExecutionStatus"]] = None, - test_status: Optional[Union[str, "TestStatus"]] = None, - grade: Optional[Union[str, "Grade"]] = None, + execution_status: Optional[Union[str, "_models.ExecutionStatus"]] = None, + test_status: Optional[Union[str, "_models.TestStatus"]] = None, + grade: Optional[Union[str, "_models.Grade"]] = None, test_run_time: Optional[str] = None, - os_update_test_summaries: Optional[List["OSUpdateTestSummary"]] = None, + os_update_test_summaries: Optional[List["_models.OSUpdateTestSummary"]] = None, **kwargs ): + """ + :keyword execution_status: The status of the last test. Known values are: "None", "InProgress", + "Processing", "Completed", "NotExecuted", "Incomplete", "Failed", "Succeeded". + :paramtype execution_status: str or ~azure.mgmt.testbase.models.ExecutionStatus + :keyword test_status: The status of last test. Known values are: "None", + "TestExecutionInProgress", "DataProcessing", "TestFailure", "UpdateFailure", + "TestAndUpdateFailure", "InfrastructureFailure", "Completed". + :paramtype test_status: str or ~azure.mgmt.testbase.models.TestStatus + :keyword grade: The grade of last test. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :paramtype grade: str or ~azure.mgmt.testbase.models.Grade + :keyword test_run_time: The run time of the last test. + :paramtype test_run_time: str + :keyword os_update_test_summaries: Detailed summary for each OS update. + :paramtype os_update_test_summaries: list[~azure.mgmt.testbase.models.OSUpdateTestSummary] + """ super(OSUpdatesTestSummary, self).__init__(**kwargs) self.execution_status = execution_status self.test_status = test_status @@ -1420,32 +2232,31 @@ def __init__( class OSUpdateTestSummary(msrest.serialization.Model): """The summary of a test. - :param os_name: The operating system name. e.g. Windows 10 1809. - :type os_name: str - :param release_name: The name of the tested release (OS update). - :type release_name: str - :param build_version: The build version of the tested release (OS update). - :type build_version: str - :param build_revision: The build revision of the tested release (OS update). - :type build_revision: str - :param release_version_date: The release version date. - :type release_version_date: ~datetime.datetime - :param flighting_ring: The flighting ring, only for release of feature updates. - :type flighting_ring: str - :param execution_status: The execution status of the test. Possible values include: "None", + :ivar os_name: The operating system name. e.g. Windows 10 1809. + :vartype os_name: str + :ivar release_name: The name of the tested release (OS update). + :vartype release_name: str + :ivar build_version: The build version of the tested release (OS update). + :vartype build_version: str + :ivar build_revision: The build revision of the tested release (OS update). + :vartype build_revision: str + :ivar release_version_date: The release version date. + :vartype release_version_date: ~datetime.datetime + :ivar flighting_ring: The flighting ring, only for release of feature updates. + :vartype flighting_ring: str + :ivar execution_status: The execution status of the test. Known values are: "None", "InProgress", "Processing", "Completed", "NotExecuted", "Incomplete", "Failed", "Succeeded". - :type execution_status: str or ~test_base.models.ExecutionStatus - :param test_status: The status of the test. Possible values include: "None", - "TestExecutionInProgress", "DataProcessing", "TestFailure", "UpdateFailure", - "TestAndUpdateFailure", "InfrastructureFailure", "Completed". - :type test_status: str or ~test_base.models.TestStatus - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param test_run_time: The run time of the test. - :type test_run_time: str - :param test_type: The test type of the package. - :type test_type: str + :vartype execution_status: str or ~azure.mgmt.testbase.models.ExecutionStatus + :ivar test_status: The status of the test. Known values are: "None", "TestExecutionInProgress", + "DataProcessing", "TestFailure", "UpdateFailure", "TestAndUpdateFailure", + "InfrastructureFailure", "Completed". + :vartype test_status: str or ~azure.mgmt.testbase.models.TestStatus + :ivar grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", "Fail". + :vartype grade: str or ~azure.mgmt.testbase.models.Grade + :ivar test_run_time: The run time of the test. + :vartype test_run_time: str + :ivar test_type: The test type of the package. + :vartype test_type: str """ _attribute_map = { @@ -1471,13 +2282,41 @@ def __init__( build_revision: Optional[str] = None, release_version_date: Optional[datetime.datetime] = None, flighting_ring: Optional[str] = None, - execution_status: Optional[Union[str, "ExecutionStatus"]] = None, - test_status: Optional[Union[str, "TestStatus"]] = None, - grade: Optional[Union[str, "Grade"]] = None, + execution_status: Optional[Union[str, "_models.ExecutionStatus"]] = None, + test_status: Optional[Union[str, "_models.TestStatus"]] = None, + grade: Optional[Union[str, "_models.Grade"]] = None, test_run_time: Optional[str] = None, test_type: Optional[str] = None, **kwargs ): + """ + :keyword os_name: The operating system name. e.g. Windows 10 1809. + :paramtype os_name: str + :keyword release_name: The name of the tested release (OS update). + :paramtype release_name: str + :keyword build_version: The build version of the tested release (OS update). + :paramtype build_version: str + :keyword build_revision: The build revision of the tested release (OS update). + :paramtype build_revision: str + :keyword release_version_date: The release version date. + :paramtype release_version_date: ~datetime.datetime + :keyword flighting_ring: The flighting ring, only for release of feature updates. + :paramtype flighting_ring: str + :keyword execution_status: The execution status of the test. Known values are: "None", + "InProgress", "Processing", "Completed", "NotExecuted", "Incomplete", "Failed", "Succeeded". + :paramtype execution_status: str or ~azure.mgmt.testbase.models.ExecutionStatus + :keyword test_status: The status of the test. Known values are: "None", + "TestExecutionInProgress", "DataProcessing", "TestFailure", "UpdateFailure", + "TestAndUpdateFailure", "InfrastructureFailure", "Completed". + :paramtype test_status: str or ~azure.mgmt.testbase.models.TestStatus + :keyword grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :paramtype grade: str or ~azure.mgmt.testbase.models.Grade + :keyword test_run_time: The run time of the test. + :paramtype test_run_time: str + :keyword test_type: The test type of the package. + :paramtype test_type: str + """ super(OSUpdateTestSummary, self).__init__(**kwargs) self.os_name = os_name self.release_name = release_name @@ -1497,21 +2336,20 @@ class PackageCheckNameAvailabilityParameters(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :param name: Required. Resource name to verify. - :type name: str - :param application_name: Required. Application name to verify. - :type application_name: str - :param version: Required. Version name to verify. - :type version: str - :param type: Required. fully qualified resource type which includes provider namespace. - :type type: str + :ivar name: Required. Resource name to verify. + :vartype name: str + :ivar application_name: Required. Application name to verify. + :vartype application_name: str + :ivar version: Required. Version name to verify. + :vartype version: str + :ivar type: fully qualified resource type which includes provider namespace. + :vartype type: str """ _validation = { 'name': {'required': True}, 'application_name': {'required': True}, 'version': {'required': True}, - 'type': {'required': True}, } _attribute_map = { @@ -1527,9 +2365,19 @@ def __init__( name: str, application_name: str, version: str, - type: str, + type: Optional[str] = None, **kwargs ): + """ + :keyword name: Required. Resource name to verify. + :paramtype name: str + :keyword application_name: Required. Application name to verify. + :paramtype application_name: str + :keyword version: Required. Version name to verify. + :paramtype version: str + :keyword type: fully qualified resource type which includes provider namespace. + :paramtype type: str + """ super(PackageCheckNameAvailabilityParameters, self).__init__(**kwargs) self.name = name self.application_name = application_name @@ -1542,8 +2390,8 @@ class PackageListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :param value: The list of Test Base Packages. - :type value: list[~test_base.models.PackageResource] + :ivar value: The list of Test Base Packages. + :vartype value: list[~azure.mgmt.testbase.models.PackageResource] :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list of results. :vartype next_link: str @@ -1561,9 +2409,13 @@ class PackageListResult(msrest.serialization.Model): def __init__( self, *, - value: Optional[List["PackageResource"]] = None, + value: Optional[List["_models.PackageResource"]] = None, **kwargs ): + """ + :keyword value: The list of Test Base Packages. + :paramtype value: list[~azure.mgmt.testbase.models.PackageResource] + """ super(PackageListResult, self).__init__(**kwargs) self.value = value self.next_link = None @@ -1582,10 +2434,10 @@ class TrackedResource(Resource): :vartype name: str :ivar type: Resource type. :vartype type: str - :param tags: A set of tags. The tags of the resource. - :type tags: dict[str, str] - :param location: Required. The geo-location where the resource lives. - :type location: str + :ivar tags: A set of tags. The tags of the resource. + :vartype tags: dict[str, str] + :ivar location: Required. The geo-location where the resource lives. + :vartype location: str :ivar etag: Resource Etag. :vartype etag: str """ @@ -1614,6 +2466,12 @@ def __init__( tags: Optional[Dict[str, str]] = None, **kwargs ): + """ + :keyword tags: A set of tags. The tags of the resource. + :paramtype tags: dict[str, str] + :keyword location: Required. The geo-location where the resource lives. + :paramtype location: str + """ super(TrackedResource, self).__init__(**kwargs) self.tags = tags self.location = location @@ -1633,43 +2491,43 @@ class PackageResource(TrackedResource): :vartype name: str :ivar type: Resource type. :vartype type: str - :param tags: A set of tags. The tags of the resource. - :type tags: dict[str, str] - :param location: Required. The geo-location where the resource lives. - :type location: str + :ivar tags: A set of tags. The tags of the resource. + :vartype tags: dict[str, str] + :ivar location: Required. The geo-location where the resource lives. + :vartype location: str :ivar etag: Resource Etag. :vartype etag: str :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :ivar provisioning_state: The provisioning state of the resource. Possible values include: + :vartype system_data: ~azure.mgmt.testbase.models.SystemData + :ivar provisioning_state: The provisioning state of the resource. Known values are: "Succeeded", "Failed", "Cancelled", "Creating", "Deleting", "Updating". - :vartype provisioning_state: str or ~test_base.models.ProvisioningState - :param application_name: Application name. - :type application_name: str - :param version: Application version. - :type version: str + :vartype provisioning_state: str or ~azure.mgmt.testbase.models.ProvisioningState + :ivar application_name: Application name. + :vartype application_name: str + :ivar version: Application version. + :vartype version: str :ivar test_types: OOB, functional or both. Mapped to the data in 'tests' property. - :vartype test_types: list[str or ~test_base.models.TestType] - :param target_os_list: Specifies the target OSs of specific OS Update types. - :type target_os_list: list[~test_base.models.TargetOSInfo] - :ivar package_status: The status of the package. Possible values include: "Unknown", - "Registered", "Ready", "Error", "ValidatingPackage", "PreValidationCheckPass", "Deleted", + :vartype test_types: list[str or ~azure.mgmt.testbase.models.TestType] + :ivar target_os_list: Specifies the target OSs of specific OS Update types. + :vartype target_os_list: list[~azure.mgmt.testbase.models.TargetOSInfo] + :ivar package_status: The status of the package. Known values are: "Unknown", "Registered", + "Ready", "Error", "ValidatingPackage", "PreValidationCheckPass", "Deleted", "ValidationLongerThanUsual", "VerifyingPackage". - :vartype package_status: str or ~test_base.models.PackageStatus + :vartype package_status: str or ~azure.mgmt.testbase.models.PackageStatus :ivar last_modified_time: The UTC timestamp when the package was last modified. :vartype last_modified_time: ~datetime.datetime - :param flighting_ring: The flighting ring for feature update. - :type flighting_ring: str + :ivar flighting_ring: The flighting ring for feature update. + :vartype flighting_ring: str :ivar is_enabled: Flag showing that whether the package is enabled. It doesn't schedule test for package which is not enabled. :vartype is_enabled: bool - :param blob_path: The file path of the package. - :type blob_path: str + :ivar blob_path: The file path of the package. + :vartype blob_path: str :ivar validation_results: The validation results. There's validation on package when it's created or updated. - :vartype validation_results: list[~test_base.models.PackageValidationResult] - :param tests: The detailed test information. - :type tests: list[~test_base.models.Test] + :vartype validation_results: list[~azure.mgmt.testbase.models.PackageValidationResult] + :ivar tests: The detailed test information. + :vartype tests: list[~azure.mgmt.testbase.models.Test] """ _validation = { @@ -1716,12 +2574,30 @@ def __init__( tags: Optional[Dict[str, str]] = None, application_name: Optional[str] = None, version: Optional[str] = None, - target_os_list: Optional[List["TargetOSInfo"]] = None, + target_os_list: Optional[List["_models.TargetOSInfo"]] = None, flighting_ring: Optional[str] = None, blob_path: Optional[str] = None, - tests: Optional[List["Test"]] = None, + tests: Optional[List["_models.Test"]] = None, **kwargs ): + """ + :keyword tags: A set of tags. The tags of the resource. + :paramtype tags: dict[str, str] + :keyword location: Required. The geo-location where the resource lives. + :paramtype location: str + :keyword application_name: Application name. + :paramtype application_name: str + :keyword version: Application version. + :paramtype version: str + :keyword target_os_list: Specifies the target OSs of specific OS Update types. + :paramtype target_os_list: list[~azure.mgmt.testbase.models.TargetOSInfo] + :keyword flighting_ring: The flighting ring for feature update. + :paramtype flighting_ring: str + :keyword blob_path: The file path of the package. + :paramtype blob_path: str + :keyword tests: The detailed test information. + :paramtype tests: list[~azure.mgmt.testbase.models.Test] + """ super(PackageResource, self).__init__(tags=tags, location=location, **kwargs) self.system_data = None self.provisioning_state = None @@ -1738,22 +2614,86 @@ def __init__( self.tests = tests +class PackageRunTestParameters(msrest.serialization.Model): + """The parameters supplied to the Test Base Package to start a Test Run. + + All required parameters must be populated in order to send to Azure. + + :ivar test_type: Required. The type of the test. Known values are: "OutOfBoxTest", + "FunctionalTest". + :vartype test_type: str or ~azure.mgmt.testbase.models.TestType + :ivar os_update_type: Specifies the OS update type to test against. Known values are: + "SecurityUpdate", "FeatureUpdate". + :vartype os_update_type: str or ~azure.mgmt.testbase.models.OsUpdateType + :ivar os_name: Required. The operating system name. e.g. Windows 10 1809. + :vartype os_name: str + :ivar release_name: The name of the tested release (OS update). + :vartype release_name: str + :ivar flighting_ring: The flighting ring, only for release of feature updates. + :vartype flighting_ring: str + """ + + _validation = { + 'test_type': {'required': True}, + 'os_name': {'required': True}, + } + + _attribute_map = { + 'test_type': {'key': 'testType', 'type': 'str'}, + 'os_update_type': {'key': 'osUpdateType', 'type': 'str'}, + 'os_name': {'key': 'osName', 'type': 'str'}, + 'release_name': {'key': 'releaseName', 'type': 'str'}, + 'flighting_ring': {'key': 'flightingRing', 'type': 'str'}, + } + + def __init__( + self, + *, + test_type: Union[str, "_models.TestType"], + os_name: str, + os_update_type: Optional[Union[str, "_models.OsUpdateType"]] = None, + release_name: Optional[str] = None, + flighting_ring: Optional[str] = None, + **kwargs + ): + """ + :keyword test_type: Required. The type of the test. Known values are: "OutOfBoxTest", + "FunctionalTest". + :paramtype test_type: str or ~azure.mgmt.testbase.models.TestType + :keyword os_update_type: Specifies the OS update type to test against. Known values are: + "SecurityUpdate", "FeatureUpdate". + :paramtype os_update_type: str or ~azure.mgmt.testbase.models.OsUpdateType + :keyword os_name: Required. The operating system name. e.g. Windows 10 1809. + :paramtype os_name: str + :keyword release_name: The name of the tested release (OS update). + :paramtype release_name: str + :keyword flighting_ring: The flighting ring, only for release of feature updates. + :paramtype flighting_ring: str + """ + super(PackageRunTestParameters, self).__init__(**kwargs) + self.test_type = test_type + self.os_update_type = os_update_type + self.os_name = os_name + self.release_name = release_name + self.flighting_ring = flighting_ring + + class PackageUpdateParameters(msrest.serialization.Model): """Parameters supplied to update a Test Base Package. - :param tags: A set of tags. The tags of the Package. - :type tags: dict[str, str] - :param target_os_list: Specifies the target OSs of specific OS Update types. - :type target_os_list: list[~test_base.models.TargetOSInfo] - :param flighting_ring: The flighting ring for feature update. - :type flighting_ring: str - :param is_enabled: Specifies whether the package is enabled. It doesn't schedule test for + :ivar tags: A set of tags. The tags of the Package. + :vartype tags: dict[str, str] + :ivar target_os_list: Specifies the target OSs of specific OS Update types. + :vartype target_os_list: list[~azure.mgmt.testbase.models.TargetOSInfo] + :ivar flighting_ring: The flighting ring for feature update. + :vartype flighting_ring: str + :ivar is_enabled: Specifies whether the package is enabled. It doesn't schedule test for package which is not enabled. - :type is_enabled: bool - :param blob_path: The file name of the package. - :type blob_path: str - :param tests: The detailed test information. - :type tests: list[~test_base.models.Test] + :vartype is_enabled: bool + :ivar blob_path: The file name of the package. + :vartype blob_path: str + :ivar tests: The detailed test information. + :vartype tests: list[~azure.mgmt.testbase.models.Test] """ _attribute_map = { @@ -1769,13 +2709,28 @@ def __init__( self, *, tags: Optional[Dict[str, str]] = None, - target_os_list: Optional[List["TargetOSInfo"]] = None, + target_os_list: Optional[List["_models.TargetOSInfo"]] = None, flighting_ring: Optional[str] = None, is_enabled: Optional[bool] = None, blob_path: Optional[str] = None, - tests: Optional[List["Test"]] = None, + tests: Optional[List["_models.Test"]] = None, **kwargs ): + """ + :keyword tags: A set of tags. The tags of the Package. + :paramtype tags: dict[str, str] + :keyword target_os_list: Specifies the target OSs of specific OS Update types. + :paramtype target_os_list: list[~azure.mgmt.testbase.models.TargetOSInfo] + :keyword flighting_ring: The flighting ring for feature update. + :paramtype flighting_ring: str + :keyword is_enabled: Specifies whether the package is enabled. It doesn't schedule test for + package which is not enabled. + :paramtype is_enabled: bool + :keyword blob_path: The file name of the package. + :paramtype blob_path: str + :keyword tests: The detailed test information. + :paramtype tests: list[~azure.mgmt.testbase.models.Test] + """ super(PackageUpdateParameters, self).__init__(**kwargs) self.tags = tags self.target_os_list = target_os_list @@ -1814,6 +2769,8 @@ def __init__( self, **kwargs ): + """ + """ super(PackageValidationResult, self).__init__(**kwargs) self.validation_name = None self.is_valid = None @@ -1823,18 +2780,16 @@ def __init__( class RegressionResult(msrest.serialization.Model): """The regression result. - :param file_name: FileName of the binary being analyzed. - :type file_name: str - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param details: Message that facilitates debugging a particular regression, if any was - inferred. - :type details: str - :param diff: Difference between the two datasets being analyzed. - :type diff: float - :param is_regressed: Indicates if a regression was inferred. - :type is_regressed: bool + :ivar file_name: FileName of the binary being analyzed. + :vartype file_name: str + :ivar grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", "Fail". + :vartype grade: str or ~azure.mgmt.testbase.models.Grade + :ivar details: Message that facilitates debugging a particular regression, if any was inferred. + :vartype details: str + :ivar diff: Difference between the two datasets being analyzed. + :vartype diff: float + :ivar is_regressed: Indicates if a regression was inferred. + :vartype is_regressed: bool """ _attribute_map = { @@ -1849,12 +2804,26 @@ def __init__( self, *, file_name: Optional[str] = None, - grade: Optional[Union[str, "Grade"]] = None, + grade: Optional[Union[str, "_models.Grade"]] = None, details: Optional[str] = None, diff: Optional[float] = None, is_regressed: Optional[bool] = None, **kwargs ): + """ + :keyword file_name: FileName of the binary being analyzed. + :paramtype file_name: str + :keyword grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :paramtype grade: str or ~azure.mgmt.testbase.models.Grade + :keyword details: Message that facilitates debugging a particular regression, if any was + inferred. + :paramtype details: str + :keyword diff: Difference between the two datasets being analyzed. + :paramtype diff: float + :keyword is_regressed: Indicates if a regression was inferred. + :paramtype is_regressed: bool + """ super(RegressionResult, self).__init__(**kwargs) self.file_name = file_name self.grade = grade @@ -1866,10 +2835,10 @@ def __init__( class RegressionTestDetails(msrest.serialization.Model): """The details of a regression test. - :param diff: Difference between the two datasets being analyzed. - :type diff: float - :param is_regressed: Indicates if a regression was inferred. - :type is_regressed: bool + :ivar diff: Difference between the two datasets being analyzed. + :vartype diff: float + :ivar is_regressed: Indicates if a regression was inferred. + :vartype is_regressed: bool """ _attribute_map = { @@ -1884,6 +2853,12 @@ def __init__( is_regressed: Optional[bool] = None, **kwargs ): + """ + :keyword diff: Difference between the two datasets being analyzed. + :paramtype diff: float + :keyword is_regressed: Indicates if a regression was inferred. + :paramtype is_regressed: bool + """ super(RegressionTestDetails, self).__init__(**kwargs) self.diff = diff self.is_regressed = is_regressed @@ -1892,27 +2867,27 @@ def __init__( class ReliabilityResult(msrest.serialization.Model): """The Reliability Result. - :param file_name: File name. - :type file_name: str - :param launch_count: Count of number of launches. - :type launch_count: int - :param crash_count: Count of number of crashes. - :type crash_count: int - :param hang_count: Count of number of hangs. - :type hang_count: int - :param regression_grade: The regression grade. Possible values include: "None", "NotAvailable", - "Pass", "Fail". - :type regression_grade: str or ~test_base.models.Grade - :param crash_regression_grade: The statistic regression grade for crash signal. Possible values - include: "None", "NotAvailable", "Pass", "Fail". - :type crash_regression_grade: str or ~test_base.models.Grade - :param crash_regression_test_details: Details related to the crash regression analysis. - :type crash_regression_test_details: ~test_base.models.RegressionTestDetails - :param hang_regression_grade: The statistic regression grade for hang signal. Possible values - include: "None", "NotAvailable", "Pass", "Fail". - :type hang_regression_grade: str or ~test_base.models.Grade - :param hang_regression_test_details: Details related to the hang regression analysis. - :type hang_regression_test_details: ~test_base.models.RegressionTestDetails + :ivar file_name: File name. + :vartype file_name: str + :ivar launch_count: Count of number of launches. + :vartype launch_count: int + :ivar crash_count: Count of number of crashes. + :vartype crash_count: int + :ivar hang_count: Count of number of hangs. + :vartype hang_count: int + :ivar regression_grade: The regression grade. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :vartype regression_grade: str or ~azure.mgmt.testbase.models.Grade + :ivar crash_regression_grade: The statistic regression grade for crash signal. Known values + are: "None", "NotAvailable", "Pass", "Fail". + :vartype crash_regression_grade: str or ~azure.mgmt.testbase.models.Grade + :ivar crash_regression_test_details: Details related to the crash regression analysis. + :vartype crash_regression_test_details: ~azure.mgmt.testbase.models.RegressionTestDetails + :ivar hang_regression_grade: The statistic regression grade for hang signal. Known values are: + "None", "NotAvailable", "Pass", "Fail". + :vartype hang_regression_grade: str or ~azure.mgmt.testbase.models.Grade + :ivar hang_regression_test_details: Details related to the hang regression analysis. + :vartype hang_regression_test_details: ~azure.mgmt.testbase.models.RegressionTestDetails """ _attribute_map = { @@ -1934,13 +2909,36 @@ def __init__( launch_count: Optional[int] = None, crash_count: Optional[int] = None, hang_count: Optional[int] = None, - regression_grade: Optional[Union[str, "Grade"]] = None, - crash_regression_grade: Optional[Union[str, "Grade"]] = None, - crash_regression_test_details: Optional["RegressionTestDetails"] = None, - hang_regression_grade: Optional[Union[str, "Grade"]] = None, - hang_regression_test_details: Optional["RegressionTestDetails"] = None, + regression_grade: Optional[Union[str, "_models.Grade"]] = None, + crash_regression_grade: Optional[Union[str, "_models.Grade"]] = None, + crash_regression_test_details: Optional["_models.RegressionTestDetails"] = None, + hang_regression_grade: Optional[Union[str, "_models.Grade"]] = None, + hang_regression_test_details: Optional["_models.RegressionTestDetails"] = None, **kwargs ): + """ + :keyword file_name: File name. + :paramtype file_name: str + :keyword launch_count: Count of number of launches. + :paramtype launch_count: int + :keyword crash_count: Count of number of crashes. + :paramtype crash_count: int + :keyword hang_count: Count of number of hangs. + :paramtype hang_count: int + :keyword regression_grade: The regression grade. Known values are: "None", "NotAvailable", + "Pass", "Fail". + :paramtype regression_grade: str or ~azure.mgmt.testbase.models.Grade + :keyword crash_regression_grade: The statistic regression grade for crash signal. Known values + are: "None", "NotAvailable", "Pass", "Fail". + :paramtype crash_regression_grade: str or ~azure.mgmt.testbase.models.Grade + :keyword crash_regression_test_details: Details related to the crash regression analysis. + :paramtype crash_regression_test_details: ~azure.mgmt.testbase.models.RegressionTestDetails + :keyword hang_regression_grade: The statistic regression grade for hang signal. Known values + are: "None", "NotAvailable", "Pass", "Fail". + :paramtype hang_regression_grade: str or ~azure.mgmt.testbase.models.Grade + :keyword hang_regression_test_details: Details related to the hang regression analysis. + :paramtype hang_regression_test_details: ~azure.mgmt.testbase.models.RegressionTestDetails + """ super(ReliabilityResult, self).__init__(**kwargs) self.file_name = file_name self.launch_count = launch_count @@ -1958,15 +2956,14 @@ class ReliabilityResultSingletonResourceProperties(AnalysisResultSingletonResour All required parameters must be populated in order to send to Azure. - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - :param reliability_results: The result array data. - :type reliability_results: list[~test_base.models.ReliabilityResult] + :ivar grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", "Fail". + :vartype grade: str or ~azure.mgmt.testbase.models.Grade + :ivar analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. + Known values are: "ScriptExecution", "Reliability", "CPUUtilization", "MemoryUtilization", + "CPURegression", "MemoryRegression", "TestAnalysis". + :vartype analysis_result_type: str or ~azure.mgmt.testbase.models.AnalysisResultType + :ivar reliability_results: The result array data. + :vartype reliability_results: list[~azure.mgmt.testbase.models.ReliabilityResult] """ _validation = { @@ -1982,10 +2979,17 @@ class ReliabilityResultSingletonResourceProperties(AnalysisResultSingletonResour def __init__( self, *, - grade: Optional[Union[str, "Grade"]] = None, - reliability_results: Optional[List["ReliabilityResult"]] = None, + grade: Optional[Union[str, "_models.Grade"]] = None, + reliability_results: Optional[List["_models.ReliabilityResult"]] = None, **kwargs ): + """ + :keyword grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :paramtype grade: str or ~azure.mgmt.testbase.models.Grade + :keyword reliability_results: The result array data. + :paramtype reliability_results: list[~azure.mgmt.testbase.models.ReliabilityResult] + """ super(ReliabilityResultSingletonResourceProperties, self).__init__(grade=grade, **kwargs) self.analysis_result_type = 'Reliability' # type: str self.reliability_results = reliability_results @@ -1994,16 +2998,20 @@ def __init__( class ScriptExecutionResult(msrest.serialization.Model): """The Script Execution Result. - :param script_name: Name of script. - :type script_name: str - :param start_time: Start time of script execution. - :type start_time: ~datetime.datetime - :param end_time: End time of script execution. - :type end_time: ~datetime.datetime - :param exit_code: Exit code. - :type exit_code: int - :param timed_out: Whether the script execution is timed out. - :type timed_out: bool + :ivar script_name: Name of script. + :vartype script_name: str + :ivar start_time: Start time of script execution. + :vartype start_time: ~datetime.datetime + :ivar end_time: End time of script execution. + :vartype end_time: ~datetime.datetime + :ivar exit_code: Exit code. + :vartype exit_code: int + :ivar timed_out: Whether the script execution is timed out. + :vartype timed_out: bool + :ivar stdout_log_file_name: The stdout log file name. + :vartype stdout_log_file_name: str + :ivar stderr_log_file_name: The stderr log file name. + :vartype stderr_log_file_name: str """ _attribute_map = { @@ -2012,6 +3020,8 @@ class ScriptExecutionResult(msrest.serialization.Model): 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, 'exit_code': {'key': 'exitCode', 'type': 'int'}, 'timed_out': {'key': 'timedOut', 'type': 'bool'}, + 'stdout_log_file_name': {'key': 'stdoutLogFileName', 'type': 'str'}, + 'stderr_log_file_name': {'key': 'stderrLogFileName', 'type': 'str'}, } def __init__( @@ -2022,14 +3032,34 @@ def __init__( end_time: Optional[datetime.datetime] = None, exit_code: Optional[int] = None, timed_out: Optional[bool] = None, + stdout_log_file_name: Optional[str] = None, + stderr_log_file_name: Optional[str] = None, **kwargs ): + """ + :keyword script_name: Name of script. + :paramtype script_name: str + :keyword start_time: Start time of script execution. + :paramtype start_time: ~datetime.datetime + :keyword end_time: End time of script execution. + :paramtype end_time: ~datetime.datetime + :keyword exit_code: Exit code. + :paramtype exit_code: int + :keyword timed_out: Whether the script execution is timed out. + :paramtype timed_out: bool + :keyword stdout_log_file_name: The stdout log file name. + :paramtype stdout_log_file_name: str + :keyword stderr_log_file_name: The stderr log file name. + :paramtype stderr_log_file_name: str + """ super(ScriptExecutionResult, self).__init__(**kwargs) self.script_name = script_name self.start_time = start_time self.end_time = end_time self.exit_code = exit_code self.timed_out = timed_out + self.stdout_log_file_name = stdout_log_file_name + self.stderr_log_file_name = stderr_log_file_name class ScriptExecutionResultSingletonResourceProperties(AnalysisResultSingletonResourceProperties): @@ -2037,15 +3067,14 @@ class ScriptExecutionResultSingletonResourceProperties(AnalysisResultSingletonRe All required parameters must be populated in order to send to Azure. - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - :param script_execution_results: The result array data. - :type script_execution_results: list[~test_base.models.ScriptExecutionResult] + :ivar grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", "Fail". + :vartype grade: str or ~azure.mgmt.testbase.models.Grade + :ivar analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. + Known values are: "ScriptExecution", "Reliability", "CPUUtilization", "MemoryUtilization", + "CPURegression", "MemoryRegression", "TestAnalysis". + :vartype analysis_result_type: str or ~azure.mgmt.testbase.models.AnalysisResultType + :ivar script_execution_results: The result array data. + :vartype script_execution_results: list[~azure.mgmt.testbase.models.ScriptExecutionResult] """ _validation = { @@ -2061,10 +3090,17 @@ class ScriptExecutionResultSingletonResourceProperties(AnalysisResultSingletonRe def __init__( self, *, - grade: Optional[Union[str, "Grade"]] = None, - script_execution_results: Optional[List["ScriptExecutionResult"]] = None, + grade: Optional[Union[str, "_models.Grade"]] = None, + script_execution_results: Optional[List["_models.ScriptExecutionResult"]] = None, **kwargs ): + """ + :keyword grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :paramtype grade: str or ~azure.mgmt.testbase.models.Grade + :keyword script_execution_results: The result array data. + :paramtype script_execution_results: list[~azure.mgmt.testbase.models.ScriptExecutionResult] + """ super(ScriptExecutionResultSingletonResourceProperties, self).__init__(grade=grade, **kwargs) self.analysis_result_type = 'ScriptExecution' # type: str self.script_execution_results = script_execution_results @@ -2073,12 +3109,12 @@ def __init__( class SubscriptionReceiverValue(msrest.serialization.Model): """The subscription role receiver value. - :param subscription_id: The subscription id of the notification receiver. - :type subscription_id: str - :param subscription_name: The subscription name of the notification receiver. - :type subscription_name: str - :param role: The role of the notification receiver. - :type role: str + :ivar subscription_id: The subscription id of the notification receiver. + :vartype subscription_id: str + :ivar subscription_name: The subscription name of the notification receiver. + :vartype subscription_name: str + :ivar role: The role of the notification receiver. + :vartype role: str """ _attribute_map = { @@ -2095,6 +3131,14 @@ def __init__( role: Optional[str] = None, **kwargs ): + """ + :keyword subscription_id: The subscription id of the notification receiver. + :paramtype subscription_id: str + :keyword subscription_name: The subscription name of the notification receiver. + :paramtype subscription_name: str + :keyword role: The role of the notification receiver. + :paramtype role: str + """ super(SubscriptionReceiverValue, self).__init__(**kwargs) self.subscription_id = subscription_id self.subscription_name = subscription_name @@ -2104,20 +3148,20 @@ def __init__( class SystemData(msrest.serialization.Model): """Metadata pertaining to creation and last modification of the resource. - :param created_by: The identity that created the resource. - :type created_by: str - :param created_by_type: The type of identity that created the resource. Possible values - include: "User", "Application", "ManagedIdentity", "Key". - :type created_by_type: str or ~test_base.models.CreatedByType - :param created_at: The timestamp of resource creation (UTC). - :type created_at: ~datetime.datetime - :param last_modified_by: The identity that last modified the resource. - :type last_modified_by: str - :param last_modified_by_type: The type of identity that last modified the resource. Possible - values include: "User", "Application", "ManagedIdentity", "Key". - :type last_modified_by_type: str or ~test_base.models.CreatedByType - :param last_modified_at: The type of identity that last modified the resource. - :type last_modified_at: ~datetime.datetime + :ivar created_by: The identity that created the resource. + :vartype created_by: str + :ivar created_by_type: The type of identity that created the resource. Known values are: + "User", "Application", "ManagedIdentity", "Key". + :vartype created_by_type: str or ~azure.mgmt.testbase.models.CreatedByType + :ivar created_at: The timestamp of resource creation (UTC). + :vartype created_at: ~datetime.datetime + :ivar last_modified_by: The identity that last modified the resource. + :vartype last_modified_by: str + :ivar last_modified_by_type: The type of identity that last modified the resource. Known values + are: "User", "Application", "ManagedIdentity", "Key". + :vartype last_modified_by_type: str or ~azure.mgmt.testbase.models.CreatedByType + :ivar last_modified_at: The type of identity that last modified the resource. + :vartype last_modified_at: ~datetime.datetime """ _attribute_map = { @@ -2133,13 +3177,29 @@ def __init__( self, *, created_by: Optional[str] = None, - created_by_type: Optional[Union[str, "CreatedByType"]] = None, + created_by_type: Optional[Union[str, "_models.CreatedByType"]] = None, created_at: Optional[datetime.datetime] = None, last_modified_by: Optional[str] = None, - last_modified_by_type: Optional[Union[str, "CreatedByType"]] = None, + last_modified_by_type: Optional[Union[str, "_models.CreatedByType"]] = None, last_modified_at: Optional[datetime.datetime] = None, **kwargs ): + """ + :keyword created_by: The identity that created the resource. + :paramtype created_by: str + :keyword created_by_type: The type of identity that created the resource. Known values are: + "User", "Application", "ManagedIdentity", "Key". + :paramtype created_by_type: str or ~azure.mgmt.testbase.models.CreatedByType + :keyword created_at: The timestamp of resource creation (UTC). + :paramtype created_at: ~datetime.datetime + :keyword last_modified_by: The identity that last modified the resource. + :paramtype last_modified_by: str + :keyword last_modified_by_type: The type of identity that last modified the resource. Known + values are: "User", "Application", "ManagedIdentity", "Key". + :paramtype last_modified_by_type: str or ~azure.mgmt.testbase.models.CreatedByType + :keyword last_modified_at: The type of identity that last modified the resource. + :paramtype last_modified_at: ~datetime.datetime + """ super(SystemData, self).__init__(**kwargs) self.created_by = created_by self.created_by_type = created_by_type @@ -2154,11 +3214,13 @@ class TargetOSInfo(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :param os_update_type: Required. Specifies the OS update type to test against, e.g., 'Security + :ivar os_update_type: Required. Specifies the OS update type to test against, e.g., 'Security updates' or 'Feature updates'. - :type os_update_type: str - :param target_o_ss: Required. Specifies the target OSs to be tested. - :type target_o_ss: list[str] + :vartype os_update_type: str + :ivar target_o_ss: Required. Specifies the target OSs to be tested. + :vartype target_o_ss: list[str] + :ivar baseline_o_ss: Specifies the baseline OSs to be tested. + :vartype baseline_o_ss: list[str] """ _validation = { @@ -2169,6 +3231,7 @@ class TargetOSInfo(msrest.serialization.Model): _attribute_map = { 'os_update_type': {'key': 'osUpdateType', 'type': 'str'}, 'target_o_ss': {'key': 'targetOSs', 'type': '[str]'}, + 'baseline_o_ss': {'key': 'baselineOSs', 'type': '[str]'}, } def __init__( @@ -2176,11 +3239,22 @@ def __init__( *, os_update_type: str, target_o_ss: List[str], + baseline_o_ss: Optional[List[str]] = None, **kwargs ): + """ + :keyword os_update_type: Required. Specifies the OS update type to test against, e.g., + 'Security updates' or 'Feature updates'. + :paramtype os_update_type: str + :keyword target_o_ss: Required. Specifies the target OSs to be tested. + :paramtype target_o_ss: list[str] + :keyword baseline_o_ss: Specifies the baseline OSs to be tested. + :paramtype baseline_o_ss: list[str] + """ super(TargetOSInfo, self).__init__(**kwargs) self.os_update_type = os_update_type self.target_o_ss = target_o_ss + self.baseline_o_ss = baseline_o_ss class Test(msrest.serialization.Model): @@ -2190,28 +3264,31 @@ class Test(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :param test_type: Required. The type of the test. Possible values include: "OutOfBoxTest", + :ivar test_type: Required. The type of the test. Known values are: "OutOfBoxTest", "FunctionalTest". - :type test_type: str or ~test_base.models.TestType - :ivar validation_run_status: The status of the validation run of the package. Possible values - include: "Unknown", "Pending", "Passed", "Failed". - :vartype validation_run_status: str or ~test_base.models.ValidationRunStatus - :param is_active: Indicates if this test is active.It doesn't schedule test for not active - Test. - :type is_active: bool - :param commands: Required. The commands used in the test. - :type commands: list[~test_base.models.Command] + :vartype test_type: str or ~azure.mgmt.testbase.models.TestType + :ivar validation_run_status: The status of the validation run of the package. Known values are: + "Unknown", "Pending", "Passed", "Failed". + :vartype validation_run_status: str or ~azure.mgmt.testbase.models.ValidationRunStatus + :ivar validation_result_id: Resource identifier of the validation test result. + :vartype validation_result_id: str + :ivar is_active: Indicates if this test is active.It doesn't schedule test for not active Test. + :vartype is_active: bool + :ivar commands: Required. The commands used in the test. + :vartype commands: list[~azure.mgmt.testbase.models.Command] """ _validation = { 'test_type': {'required': True}, 'validation_run_status': {'readonly': True}, + 'validation_result_id': {'readonly': True}, 'commands': {'required': True}, } _attribute_map = { 'test_type': {'key': 'testType', 'type': 'str'}, 'validation_run_status': {'key': 'validationRunStatus', 'type': 'str'}, + 'validation_result_id': {'key': 'validationResultId', 'type': 'str'}, 'is_active': {'key': 'isActive', 'type': 'bool'}, 'commands': {'key': 'commands', 'type': '[Command]'}, } @@ -2219,14 +3296,25 @@ class Test(msrest.serialization.Model): def __init__( self, *, - test_type: Union[str, "TestType"], - commands: List["Command"], + test_type: Union[str, "_models.TestType"], + commands: List["_models.Command"], is_active: Optional[bool] = None, **kwargs ): + """ + :keyword test_type: Required. The type of the test. Known values are: "OutOfBoxTest", + "FunctionalTest". + :paramtype test_type: str or ~azure.mgmt.testbase.models.TestType + :keyword is_active: Indicates if this test is active.It doesn't schedule test for not active + Test. + :paramtype is_active: bool + :keyword commands: Required. The commands used in the test. + :paramtype commands: list[~azure.mgmt.testbase.models.Command] + """ super(Test, self).__init__(**kwargs) self.test_type = test_type self.validation_run_status = None + self.validation_result_id = None self.is_active = is_active self.commands = commands @@ -2234,13 +3322,13 @@ def __init__( class TestAnalysisResult(msrest.serialization.Model): """The test analysis result. - :param blob_data: The data to provide more failure analysis information. - :type blob_data: str - :param test_analysis_status: The status of the analysis. Possible values include: "None", - "Analyzing", "Completed", "Failed". - :type test_analysis_status: str or ~test_base.models.TestAnalysisStatus - :param identified_failures: The array of identified failures. - :type identified_failures: list[~test_base.models.IdentifiedFailure] + :ivar blob_data: The data to provide more failure analysis information. + :vartype blob_data: str + :ivar test_analysis_status: The status of the analysis. Known values are: "None", "Analyzing", + "Completed", "Failed". + :vartype test_analysis_status: str or ~azure.mgmt.testbase.models.TestAnalysisStatus + :ivar identified_failures: The array of identified failures. + :vartype identified_failures: list[~azure.mgmt.testbase.models.IdentifiedFailure] """ _attribute_map = { @@ -2253,10 +3341,19 @@ def __init__( self, *, blob_data: Optional[str] = None, - test_analysis_status: Optional[Union[str, "TestAnalysisStatus"]] = None, - identified_failures: Optional[List["IdentifiedFailure"]] = None, + test_analysis_status: Optional[Union[str, "_models.TestAnalysisStatus"]] = None, + identified_failures: Optional[List["_models.IdentifiedFailure"]] = None, **kwargs ): + """ + :keyword blob_data: The data to provide more failure analysis information. + :paramtype blob_data: str + :keyword test_analysis_status: The status of the analysis. Known values are: "None", + "Analyzing", "Completed", "Failed". + :paramtype test_analysis_status: str or ~azure.mgmt.testbase.models.TestAnalysisStatus + :keyword identified_failures: The array of identified failures. + :paramtype identified_failures: list[~azure.mgmt.testbase.models.IdentifiedFailure] + """ super(TestAnalysisResult, self).__init__(**kwargs) self.blob_data = blob_data self.test_analysis_status = test_analysis_status @@ -2268,15 +3365,14 @@ class TestAnalysisResultSingletonResourceProperties(AnalysisResultSingletonResou All required parameters must be populated in order to send to Azure. - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. - Possible values include: "ScriptExecution", "Reliability", "CPUUtilization", - "MemoryUtilization", "CPURegression", "MemoryRegression", "TestAnalysis". - :type analysis_result_type: str or ~test_base.models.AnalysisResultType - :param test_analysis_result: The result of test analysis. - :type test_analysis_result: ~test_base.models.TestAnalysisResult + :ivar grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", "Fail". + :vartype grade: str or ~azure.mgmt.testbase.models.Grade + :ivar analysis_result_type: Required. Type of the Analysis Result.Constant filled by server. + Known values are: "ScriptExecution", "Reliability", "CPUUtilization", "MemoryUtilization", + "CPURegression", "MemoryRegression", "TestAnalysis". + :vartype analysis_result_type: str or ~azure.mgmt.testbase.models.AnalysisResultType + :ivar test_analysis_result: The result of test analysis. + :vartype test_analysis_result: ~azure.mgmt.testbase.models.TestAnalysisResult """ _validation = { @@ -2292,10 +3388,17 @@ class TestAnalysisResultSingletonResourceProperties(AnalysisResultSingletonResou def __init__( self, *, - grade: Optional[Union[str, "Grade"]] = None, - test_analysis_result: Optional["TestAnalysisResult"] = None, + grade: Optional[Union[str, "_models.Grade"]] = None, + test_analysis_result: Optional["_models.TestAnalysisResult"] = None, **kwargs ): + """ + :keyword grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :paramtype grade: str or ~azure.mgmt.testbase.models.Grade + :keyword test_analysis_result: The result of test analysis. + :paramtype test_analysis_result: ~azure.mgmt.testbase.models.TestAnalysisResult + """ super(TestAnalysisResultSingletonResourceProperties, self).__init__(grade=grade, **kwargs) self.analysis_result_type = 'TestAnalysis' # type: str self.test_analysis_result = test_analysis_result @@ -2306,8 +3409,8 @@ class TestBaseAccountListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :param value: The list of Test Base Accounts. - :type value: list[~test_base.models.TestBaseAccountResource] + :ivar value: The list of Test Base Accounts. + :vartype value: list[~azure.mgmt.testbase.models.TestBaseAccountResource] :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list of results. :vartype next_link: str @@ -2325,9 +3428,13 @@ class TestBaseAccountListResult(msrest.serialization.Model): def __init__( self, *, - value: Optional[List["TestBaseAccountResource"]] = None, + value: Optional[List["_models.TestBaseAccountResource"]] = None, **kwargs ): + """ + :keyword value: The list of Test Base Accounts. + :paramtype value: list[~azure.mgmt.testbase.models.TestBaseAccountResource] + """ super(TestBaseAccountListResult, self).__init__(**kwargs) self.value = value self.next_link = None @@ -2346,19 +3453,19 @@ class TestBaseAccountResource(TrackedResource): :vartype name: str :ivar type: Resource type. :vartype type: str - :param tags: A set of tags. The tags of the resource. - :type tags: dict[str, str] - :param location: Required. The geo-location where the resource lives. - :type location: str + :ivar tags: A set of tags. The tags of the resource. + :vartype tags: dict[str, str] + :ivar location: Required. The geo-location where the resource lives. + :vartype location: str :ivar etag: Resource Etag. :vartype etag: str :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :ivar provisioning_state: The provisioning state of the resource. Possible values include: + :vartype system_data: ~azure.mgmt.testbase.models.SystemData + :ivar provisioning_state: The provisioning state of the resource. Known values are: "Succeeded", "Failed", "Cancelled", "Creating", "Deleting", "Updating". - :vartype provisioning_state: str or ~test_base.models.ProvisioningState - :param sku: The SKU of the Test Base Account. - :type sku: ~test_base.models.TestBaseAccountSKU + :vartype provisioning_state: str or ~azure.mgmt.testbase.models.ProvisioningState + :ivar sku: The SKU of the Test Base Account. + :vartype sku: ~azure.mgmt.testbase.models.TestBaseAccountSKU :ivar access_level: The access level of the Test Base Account. :vartype access_level: str """ @@ -2392,9 +3499,17 @@ def __init__( *, location: str, tags: Optional[Dict[str, str]] = None, - sku: Optional["TestBaseAccountSKU"] = None, + sku: Optional["_models.TestBaseAccountSKU"] = None, **kwargs ): + """ + :keyword tags: A set of tags. The tags of the resource. + :paramtype tags: dict[str, str] + :keyword location: Required. The geo-location where the resource lives. + :paramtype location: str + :keyword sku: The SKU of the Test Base Account. + :paramtype sku: ~azure.mgmt.testbase.models.TestBaseAccountSKU + """ super(TestBaseAccountResource, self).__init__(tags=tags, location=location, **kwargs) self.system_data = None self.provisioning_state = None @@ -2409,17 +3524,17 @@ class TestBaseAccountSKU(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :param resource_type: The type of resource the SKU applies to. - :type resource_type: str - :param name: Required. The name of the SKU. This is typically a letter + number code, such as - B0 or S0. - :type name: str - :param tier: Required. The tier of this particular SKU. Possible values include: "Standard". - :type tier: str or ~test_base.models.Tier + :ivar resource_type: The type of resource the SKU applies to. + :vartype resource_type: str + :ivar name: Required. The name of the SKU. This is typically a letter + number code, such as B0 + or S0. + :vartype name: str + :ivar tier: Required. The tier of this particular SKU. Known values are: "Standard". + :vartype tier: str or ~azure.mgmt.testbase.models.Tier :ivar capabilities: The capabilities of a SKU. - :vartype capabilities: list[~test_base.models.TestBaseAccountSKUCapability] - :param locations: The locations that the SKU is available. - :type locations: list[str] + :vartype capabilities: list[~azure.mgmt.testbase.models.TestBaseAccountSKUCapability] + :ivar locations: The locations that the SKU is available. + :vartype locations: list[str] """ _validation = { @@ -2440,11 +3555,22 @@ def __init__( self, *, name: str, - tier: Union[str, "Tier"], + tier: Union[str, "_models.Tier"], resource_type: Optional[str] = None, locations: Optional[List[str]] = None, **kwargs ): + """ + :keyword resource_type: The type of resource the SKU applies to. + :paramtype resource_type: str + :keyword name: Required. The name of the SKU. This is typically a letter + number code, such as + B0 or S0. + :paramtype name: str + :keyword tier: Required. The tier of this particular SKU. Known values are: "Standard". + :paramtype tier: str or ~azure.mgmt.testbase.models.Tier + :keyword locations: The locations that the SKU is available. + :paramtype locations: list[str] + """ super(TestBaseAccountSKU, self).__init__(**kwargs) self.resource_type = resource_type self.name = name @@ -2458,10 +3584,10 @@ class TestBaseAccountSKUCapability(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :param name: Required. An invariant to describe the feature, such as 'SLA'. - :type name: str - :param value: Required. An invariant if the feature is measured by quantity, such as 99.9%. - :type value: str + :ivar name: Required. An invariant to describe the feature, such as 'SLA'. + :vartype name: str + :ivar value: Required. An invariant if the feature is measured by quantity, such as 99.9%. + :vartype value: str """ _validation = { @@ -2481,6 +3607,12 @@ def __init__( value: str, **kwargs ): + """ + :keyword name: Required. An invariant to describe the feature, such as 'SLA'. + :paramtype name: str + :keyword value: Required. An invariant if the feature is measured by quantity, such as 99.9%. + :paramtype value: str + """ super(TestBaseAccountSKUCapability, self).__init__(**kwargs) self.name = name self.value = value @@ -2491,8 +3623,8 @@ class TestBaseAccountSKUListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :param value: The list of Test Base Account SKUs. - :type value: list[~test_base.models.TestBaseAccountSKU] + :ivar value: The list of Test Base Account SKUs. + :vartype value: list[~azure.mgmt.testbase.models.TestBaseAccountSKU] :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list of results. :vartype next_link: str @@ -2510,9 +3642,13 @@ class TestBaseAccountSKUListResult(msrest.serialization.Model): def __init__( self, *, - value: Optional[List["TestBaseAccountSKU"]] = None, + value: Optional[List["_models.TestBaseAccountSKU"]] = None, **kwargs ): + """ + :keyword value: The list of Test Base Account SKUs. + :paramtype value: list[~azure.mgmt.testbase.models.TestBaseAccountSKU] + """ super(TestBaseAccountSKUListResult, self).__init__(**kwargs) self.value = value self.next_link = None @@ -2521,10 +3657,10 @@ def __init__( class TestBaseAccountUpdateParameters(msrest.serialization.Model): """Parameters supplied to update a Test Base Account. - :param tags: A set of tags. The tags of the Test Base Account. - :type tags: dict[str, str] - :param sku: The SKU of the Test Base Account. - :type sku: ~test_base.models.TestBaseAccountSKU + :ivar tags: A set of tags. The tags of the Test Base Account. + :vartype tags: dict[str, str] + :ivar sku: The SKU of the Test Base Account. + :vartype sku: ~azure.mgmt.testbase.models.TestBaseAccountSKU """ _attribute_map = { @@ -2536,9 +3672,15 @@ def __init__( self, *, tags: Optional[Dict[str, str]] = None, - sku: Optional["TestBaseAccountSKU"] = None, + sku: Optional["_models.TestBaseAccountSKU"] = None, **kwargs ): + """ + :keyword tags: A set of tags. The tags of the Test Base Account. + :paramtype tags: dict[str, str] + :keyword sku: The SKU of the Test Base Account. + :paramtype sku: ~azure.mgmt.testbase.models.TestBaseAccountSKU + """ super(TestBaseAccountUpdateParameters, self).__init__(**kwargs) self.tags = tags self.sku = sku @@ -2547,18 +3689,18 @@ def __init__( class TestBaseAccountUsageData(msrest.serialization.Model): """The usage data of a Test Base Account. - :param id: Fully qualified ARM resource id. - :type id: str - :param name: Localizable String object containing the name and a localized value. - :type name: ~test_base.models.TestBaseAccountUsageName - :param unit: Representing the units of the usage quota. Possible values are: Count, Bytes, + :ivar id: Fully qualified ARM resource id. + :vartype id: str + :ivar name: Localizable String object containing the name and a localized value. + :vartype name: ~azure.mgmt.testbase.models.TestBaseAccountUsageName + :ivar unit: Representing the units of the usage quota. Possible values are: Count, Bytes, Seconds, Percent, CountPerSecond, BytesPerSecond. - :type unit: str - :param limit: The maximum permitted value for the usage quota. If there is no limit, this value + :vartype unit: str + :ivar limit: The maximum permitted value for the usage quota. If there is no limit, this value will be -1. - :type limit: long - :param current_value: Current value for the usage quota. - :type current_value: long + :vartype limit: long + :ivar current_value: Current value for the usage quota. + :vartype current_value: long """ _attribute_map = { @@ -2573,12 +3715,26 @@ def __init__( self, *, id: Optional[str] = None, - name: Optional["TestBaseAccountUsageName"] = None, + name: Optional["_models.TestBaseAccountUsageName"] = None, unit: Optional[str] = None, limit: Optional[int] = None, current_value: Optional[int] = None, **kwargs ): + """ + :keyword id: Fully qualified ARM resource id. + :paramtype id: str + :keyword name: Localizable String object containing the name and a localized value. + :paramtype name: ~azure.mgmt.testbase.models.TestBaseAccountUsageName + :keyword unit: Representing the units of the usage quota. Possible values are: Count, Bytes, + Seconds, Percent, CountPerSecond, BytesPerSecond. + :paramtype unit: str + :keyword limit: The maximum permitted value for the usage quota. If there is no limit, this + value will be -1. + :paramtype limit: long + :keyword current_value: Current value for the usage quota. + :paramtype current_value: long + """ super(TestBaseAccountUsageData, self).__init__(**kwargs) self.id = id self.name = name @@ -2592,8 +3748,8 @@ class TestBaseAccountUsageDataList(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :param value: The list of Test Base Account usage data. - :type value: list[~test_base.models.TestBaseAccountUsageData] + :ivar value: The list of Test Base Account usage data. + :vartype value: list[~azure.mgmt.testbase.models.TestBaseAccountUsageData] :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list of results. :vartype next_link: str @@ -2611,9 +3767,13 @@ class TestBaseAccountUsageDataList(msrest.serialization.Model): def __init__( self, *, - value: Optional[List["TestBaseAccountUsageData"]] = None, + value: Optional[List["_models.TestBaseAccountUsageData"]] = None, **kwargs ): + """ + :keyword value: The list of Test Base Account usage data. + :paramtype value: list[~azure.mgmt.testbase.models.TestBaseAccountUsageData] + """ super(TestBaseAccountUsageDataList, self).__init__(**kwargs) self.value = value self.next_link = None @@ -2622,10 +3782,10 @@ def __init__( class TestBaseAccountUsageName(msrest.serialization.Model): """Localizable String object containing the name and a localized value. - :param value: The identifier of the usage. - :type value: str - :param localized_value: Localized name of the usage. - :type localized_value: str + :ivar value: The identifier of the usage. + :vartype value: str + :ivar localized_value: Localized name of the usage. + :vartype localized_value: str """ _attribute_map = { @@ -2640,6 +3800,12 @@ def __init__( localized_value: Optional[str] = None, **kwargs ): + """ + :keyword value: The identifier of the usage. + :paramtype value: str + :keyword localized_value: Localized name of the usage. + :paramtype localized_value: str + """ super(TestBaseAccountUsageName, self).__init__(**kwargs) self.value = value self.localized_value = localized_value @@ -2648,14 +3814,14 @@ def __init__( class TestResultAnalysisSummary(msrest.serialization.Model): """The summary of a Test Analysis Result. - :param name: Metric name. - :type name: str - :param analysis_status: The analysis status. Possible values include: "None", "Completed", + :ivar name: Metric name. + :vartype name: str + :ivar analysis_status: The analysis status. Known values are: "None", "Completed", "InProgress", "Failed", "Succeeded", "Available", "NotAvailable". - :type analysis_status: str or ~test_base.models.AnalysisStatus - :param grade: The grade of the test result. Possible values include: "None", "NotAvailable", - "Pass", "Fail". - :type grade: str or ~test_base.models.Grade + :vartype analysis_status: str or ~azure.mgmt.testbase.models.AnalysisStatus + :ivar grade: The grade of the test result. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :vartype grade: str or ~azure.mgmt.testbase.models.Grade """ _attribute_map = { @@ -2668,23 +3834,64 @@ def __init__( self, *, name: Optional[str] = None, - analysis_status: Optional[Union[str, "AnalysisStatus"]] = None, - grade: Optional[Union[str, "Grade"]] = None, + analysis_status: Optional[Union[str, "_models.AnalysisStatus"]] = None, + grade: Optional[Union[str, "_models.Grade"]] = None, **kwargs ): + """ + :keyword name: Metric name. + :paramtype name: str + :keyword analysis_status: The analysis status. Known values are: "None", "Completed", + "InProgress", "Failed", "Succeeded", "Available", "NotAvailable". + :paramtype analysis_status: str or ~azure.mgmt.testbase.models.AnalysisStatus + :keyword grade: The grade of the test result. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :paramtype grade: str or ~azure.mgmt.testbase.models.Grade + """ super(TestResultAnalysisSummary, self).__init__(**kwargs) self.name = name self.analysis_status = analysis_status self.grade = grade +class TestResultConsoleLogDownloadURLParameters(msrest.serialization.Model): + """Parameters body to pass for getting the download URL of the test execution console log file. + + All required parameters must be populated in order to send to Azure. + + :ivar log_file_name: Required. The log file name corresponding to the download URL. + :vartype log_file_name: str + """ + + _validation = { + 'log_file_name': {'required': True}, + } + + _attribute_map = { + 'log_file_name': {'key': 'logFileName', 'type': 'str'}, + } + + def __init__( + self, + *, + log_file_name: str, + **kwargs + ): + """ + :keyword log_file_name: Required. The log file name corresponding to the download URL. + :paramtype log_file_name: str + """ + super(TestResultConsoleLogDownloadURLParameters, self).__init__(**kwargs) + self.log_file_name = log_file_name + + class TestResultListResult(msrest.serialization.Model): """A list of Test Results. Variables are only populated by the server, and will be ignored when sending a request. - :param value: The list of Test Results. - :type value: list[~test_base.models.TestResultResource] + :ivar value: The list of Test Results. + :vartype value: list[~azure.mgmt.testbase.models.TestResultResource] :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list of results. :vartype next_link: str @@ -2702,9 +3909,13 @@ class TestResultListResult(msrest.serialization.Model): def __init__( self, *, - value: Optional[List["TestResultResource"]] = None, + value: Optional[List["_models.TestResultResource"]] = None, **kwargs ): + """ + :keyword value: The list of Test Results. + :paramtype value: list[~azure.mgmt.testbase.models.TestResultResource] + """ super(TestResultListResult, self).__init__(**kwargs) self.value = value self.next_link = None @@ -2722,51 +3933,54 @@ class TestResultResource(ProxyResource): :ivar type: Resource type. :vartype type: str :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param baseline_test_result_id: Azure Id of the baseline test result. - :type baseline_test_result_id: str - :param package_id: Resource Id of the package. - :type package_id: str - :param application_name: Application name. - :type application_name: str - :param application_version: Application version. - :type application_version: str - :param os_name: The operating system name, e.g. Windows 10 1809. - :type os_name: str - :param release_name: The name of the tested release (OS update). - :type release_name: str - :param release_version_date: The release version date of the tested release. - :type release_version_date: ~datetime.datetime - :param flighting_ring: The flighting ring, only for release of feature updates. - :type flighting_ring: str - :param build_version: The build version of the tested release (OS update). - :type build_version: str - :param build_revision: The build revision of the tested release (OS update). - :type build_revision: str - :param test_type: Test type. E.g. 'Out of box test' or 'Functional test'. - :type test_type: str - :param test_run_time: The run time of the test. - :type test_run_time: str - :param is_download_data_available: Whether download data is available. - :type is_download_data_available: bool - :param is_video_available: Whether video data is available. - :type is_video_available: bool - :param execution_status: The execution status of the test. Possible values include: "None", + :vartype system_data: ~azure.mgmt.testbase.models.SystemData + :ivar baseline_test_result_id: Azure Id of the baseline test result. + :vartype baseline_test_result_id: str + :ivar package_id: Resource Id of the package. + :vartype package_id: str + :ivar application_name: Application name. + :vartype application_name: str + :ivar application_version: Application version. + :vartype application_version: str + :ivar os_name: The operating system name, e.g. Windows 10 1809. + :vartype os_name: str + :ivar release_name: The name of the tested release (OS update). + :vartype release_name: str + :ivar release_version_date: The release version date of the tested release. + :vartype release_version_date: ~datetime.datetime + :ivar flighting_ring: The flighting ring, only for release of feature updates. + :vartype flighting_ring: str + :ivar build_version: The build version of the tested release (OS update). + :vartype build_version: str + :ivar build_revision: The build revision of the tested release (OS update). + :vartype build_revision: str + :ivar test_type: Test type. E.g. 'Out of box test' or 'Functional test'. + :vartype test_type: str + :ivar test_run_time: The run time of the test. + :vartype test_run_time: str + :ivar is_download_data_available: Whether download data is available. + :vartype is_download_data_available: bool + :ivar is_video_available: Whether video data is available. + :vartype is_video_available: bool + :ivar execution_status: The execution status of the test. Known values are: "None", "InProgress", "Processing", "Completed", "NotExecuted", "Incomplete", "Failed", "Succeeded". - :type execution_status: str or ~test_base.models.ExecutionStatus - :param test_status: The status of the test. Possible values include: "None", - "TestExecutionInProgress", "DataProcessing", "TestFailure", "UpdateFailure", - "TestAndUpdateFailure", "InfrastructureFailure", "Completed". - :type test_status: str or ~test_base.models.TestStatus - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param kb_number: KB number. - :type kb_number: str - :param package_version: The version of the Windows update package. - :type package_version: str - :param analysis_summaries: List of analysis summaries. - :type analysis_summaries: list[~test_base.models.TestResultAnalysisSummary] + :vartype execution_status: str or ~azure.mgmt.testbase.models.ExecutionStatus + :ivar test_status: The status of the test. Known values are: "None", "TestExecutionInProgress", + "DataProcessing", "TestFailure", "UpdateFailure", "TestAndUpdateFailure", + "InfrastructureFailure", "Completed". + :vartype test_status: str or ~azure.mgmt.testbase.models.TestStatus + :ivar grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", "Fail". + :vartype grade: str or ~azure.mgmt.testbase.models.Grade + :ivar kb_number: KB number. + :vartype kb_number: str + :ivar interop_media_type: Interop media type. + :vartype interop_media_type: str + :ivar interop_media_version: Interop media version. + :vartype interop_media_version: str + :ivar package_version: The version of the Windows update package. + :vartype package_version: str + :ivar analysis_summaries: List of analysis summaries. + :vartype analysis_summaries: list[~azure.mgmt.testbase.models.TestResultAnalysisSummary] """ _validation = { @@ -2799,6 +4013,8 @@ class TestResultResource(ProxyResource): 'test_status': {'key': 'properties.testStatus', 'type': 'str'}, 'grade': {'key': 'properties.grade', 'type': 'str'}, 'kb_number': {'key': 'properties.kbNumber', 'type': 'str'}, + 'interop_media_type': {'key': 'properties.interopMediaType', 'type': 'str'}, + 'interop_media_version': {'key': 'properties.interopMediaVersion', 'type': 'str'}, 'package_version': {'key': 'properties.packageVersion', 'type': 'str'}, 'analysis_summaries': {'key': 'properties.analysisSummaries', 'type': '[TestResultAnalysisSummary]'}, } @@ -2820,14 +4036,66 @@ def __init__( test_run_time: Optional[str] = None, is_download_data_available: Optional[bool] = None, is_video_available: Optional[bool] = None, - execution_status: Optional[Union[str, "ExecutionStatus"]] = None, - test_status: Optional[Union[str, "TestStatus"]] = None, - grade: Optional[Union[str, "Grade"]] = None, + execution_status: Optional[Union[str, "_models.ExecutionStatus"]] = None, + test_status: Optional[Union[str, "_models.TestStatus"]] = None, + grade: Optional[Union[str, "_models.Grade"]] = None, kb_number: Optional[str] = None, + interop_media_type: Optional[str] = None, + interop_media_version: Optional[str] = None, package_version: Optional[str] = None, - analysis_summaries: Optional[List["TestResultAnalysisSummary"]] = None, + analysis_summaries: Optional[List["_models.TestResultAnalysisSummary"]] = None, **kwargs ): + """ + :keyword baseline_test_result_id: Azure Id of the baseline test result. + :paramtype baseline_test_result_id: str + :keyword package_id: Resource Id of the package. + :paramtype package_id: str + :keyword application_name: Application name. + :paramtype application_name: str + :keyword application_version: Application version. + :paramtype application_version: str + :keyword os_name: The operating system name, e.g. Windows 10 1809. + :paramtype os_name: str + :keyword release_name: The name of the tested release (OS update). + :paramtype release_name: str + :keyword release_version_date: The release version date of the tested release. + :paramtype release_version_date: ~datetime.datetime + :keyword flighting_ring: The flighting ring, only for release of feature updates. + :paramtype flighting_ring: str + :keyword build_version: The build version of the tested release (OS update). + :paramtype build_version: str + :keyword build_revision: The build revision of the tested release (OS update). + :paramtype build_revision: str + :keyword test_type: Test type. E.g. 'Out of box test' or 'Functional test'. + :paramtype test_type: str + :keyword test_run_time: The run time of the test. + :paramtype test_run_time: str + :keyword is_download_data_available: Whether download data is available. + :paramtype is_download_data_available: bool + :keyword is_video_available: Whether video data is available. + :paramtype is_video_available: bool + :keyword execution_status: The execution status of the test. Known values are: "None", + "InProgress", "Processing", "Completed", "NotExecuted", "Incomplete", "Failed", "Succeeded". + :paramtype execution_status: str or ~azure.mgmt.testbase.models.ExecutionStatus + :keyword test_status: The status of the test. Known values are: "None", + "TestExecutionInProgress", "DataProcessing", "TestFailure", "UpdateFailure", + "TestAndUpdateFailure", "InfrastructureFailure", "Completed". + :paramtype test_status: str or ~azure.mgmt.testbase.models.TestStatus + :keyword grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :paramtype grade: str or ~azure.mgmt.testbase.models.Grade + :keyword kb_number: KB number. + :paramtype kb_number: str + :keyword interop_media_type: Interop media type. + :paramtype interop_media_type: str + :keyword interop_media_version: Interop media version. + :paramtype interop_media_version: str + :keyword package_version: The version of the Windows update package. + :paramtype package_version: str + :keyword analysis_summaries: List of analysis summaries. + :paramtype analysis_summaries: list[~azure.mgmt.testbase.models.TestResultAnalysisSummary] + """ super(TestResultResource, self).__init__(**kwargs) self.system_data = None self.baseline_test_result_id = baseline_test_result_id @@ -2848,6 +4116,8 @@ def __init__( self.test_status = test_status self.grade = grade self.kb_number = kb_number + self.interop_media_type = interop_media_type + self.interop_media_version = interop_media_version self.package_version = package_version self.analysis_summaries = analysis_summaries @@ -2857,8 +4127,8 @@ class TestSummaryListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :param value: The list of Test Summaries. - :type value: list[~test_base.models.TestSummaryResource] + :ivar value: The list of Test Summaries. + :vartype value: list[~azure.mgmt.testbase.models.TestSummaryResource] :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list of results. :vartype next_link: str @@ -2876,9 +4146,13 @@ class TestSummaryListResult(msrest.serialization.Model): def __init__( self, *, - value: Optional[List["TestSummaryResource"]] = None, + value: Optional[List["_models.TestSummaryResource"]] = None, **kwargs ): + """ + :keyword value: The list of Test Summaries. + :paramtype value: list[~azure.mgmt.testbase.models.TestSummaryResource] + """ super(TestSummaryListResult, self).__init__(**kwargs) self.value = value self.next_link = None @@ -2896,32 +4170,32 @@ class TestSummaryResource(ProxyResource): :ivar type: Resource type. :vartype type: str :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param test_summary_id: The Id of the current Test Summary. - :type test_summary_id: str - :param package_id: The Azure resource Id of package. - :type package_id: str - :param application_name: Application name. - :type application_name: str - :param application_version: Application version. - :type application_version: str - :param execution_status: The execution status of last test. Possible values include: "None", + :vartype system_data: ~azure.mgmt.testbase.models.SystemData + :ivar test_summary_id: The Id of the current Test Summary. + :vartype test_summary_id: str + :ivar package_id: The Azure resource Id of package. + :vartype package_id: str + :ivar application_name: Application name. + :vartype application_name: str + :ivar application_version: Application version. + :vartype application_version: str + :ivar execution_status: The execution status of last test. Known values are: "None", "InProgress", "Processing", "Completed", "NotExecuted", "Incomplete", "Failed", "Succeeded". - :type execution_status: str or ~test_base.models.ExecutionStatus - :param test_status: The status of last test. Possible values include: "None", + :vartype execution_status: str or ~azure.mgmt.testbase.models.ExecutionStatus + :ivar test_status: The status of last test. Known values are: "None", "TestExecutionInProgress", "DataProcessing", "TestFailure", "UpdateFailure", "TestAndUpdateFailure", "InfrastructureFailure", "Completed". - :type test_status: str or ~test_base.models.TestStatus - :param grade: The grade of the test. Possible values include: "None", "NotAvailable", "Pass", - "Fail". - :type grade: str or ~test_base.models.Grade - :param test_run_time: The run time of the last test. - :type test_run_time: str - :param feature_updates_test_summary: The result summary of tests triggered by feature updates. - :type feature_updates_test_summary: ~test_base.models.OSUpdatesTestSummary - :param security_updates_test_summary: The result summary of tests triggered by security - updates. - :type security_updates_test_summary: ~test_base.models.OSUpdatesTestSummary + :vartype test_status: str or ~azure.mgmt.testbase.models.TestStatus + :ivar grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", "Fail". + :vartype grade: str or ~azure.mgmt.testbase.models.Grade + :ivar test_run_time: The run time of the last test. + :vartype test_run_time: str + :ivar feature_updates_test_summary: The result summary of tests triggered by feature updates. + :vartype feature_updates_test_summary: ~azure.mgmt.testbase.models.OSUpdatesTestSummary + :ivar security_updates_test_summary: The result summary of tests triggered by security updates. + :vartype security_updates_test_summary: ~azure.mgmt.testbase.models.OSUpdatesTestSummary + :ivar package_tags: The tags of Package resource that are associated with the testSummary. + :vartype package_tags: dict[str, str] """ _validation = { @@ -2946,6 +4220,7 @@ class TestSummaryResource(ProxyResource): 'test_run_time': {'key': 'properties.testRunTime', 'type': 'str'}, 'feature_updates_test_summary': {'key': 'properties.featureUpdatesTestSummary', 'type': 'OSUpdatesTestSummary'}, 'security_updates_test_summary': {'key': 'properties.securityUpdatesTestSummary', 'type': 'OSUpdatesTestSummary'}, + 'package_tags': {'key': 'properties.packageTags', 'type': '{str}'}, } def __init__( @@ -2955,14 +4230,45 @@ def __init__( package_id: Optional[str] = None, application_name: Optional[str] = None, application_version: Optional[str] = None, - execution_status: Optional[Union[str, "ExecutionStatus"]] = None, - test_status: Optional[Union[str, "TestStatus"]] = None, - grade: Optional[Union[str, "Grade"]] = None, + execution_status: Optional[Union[str, "_models.ExecutionStatus"]] = None, + test_status: Optional[Union[str, "_models.TestStatus"]] = None, + grade: Optional[Union[str, "_models.Grade"]] = None, test_run_time: Optional[str] = None, - feature_updates_test_summary: Optional["OSUpdatesTestSummary"] = None, - security_updates_test_summary: Optional["OSUpdatesTestSummary"] = None, + feature_updates_test_summary: Optional["_models.OSUpdatesTestSummary"] = None, + security_updates_test_summary: Optional["_models.OSUpdatesTestSummary"] = None, + package_tags: Optional[Dict[str, str]] = None, **kwargs ): + """ + :keyword test_summary_id: The Id of the current Test Summary. + :paramtype test_summary_id: str + :keyword package_id: The Azure resource Id of package. + :paramtype package_id: str + :keyword application_name: Application name. + :paramtype application_name: str + :keyword application_version: Application version. + :paramtype application_version: str + :keyword execution_status: The execution status of last test. Known values are: "None", + "InProgress", "Processing", "Completed", "NotExecuted", "Incomplete", "Failed", "Succeeded". + :paramtype execution_status: str or ~azure.mgmt.testbase.models.ExecutionStatus + :keyword test_status: The status of last test. Known values are: "None", + "TestExecutionInProgress", "DataProcessing", "TestFailure", "UpdateFailure", + "TestAndUpdateFailure", "InfrastructureFailure", "Completed". + :paramtype test_status: str or ~azure.mgmt.testbase.models.TestStatus + :keyword grade: The grade of the test. Known values are: "None", "NotAvailable", "Pass", + "Fail". + :paramtype grade: str or ~azure.mgmt.testbase.models.Grade + :keyword test_run_time: The run time of the last test. + :paramtype test_run_time: str + :keyword feature_updates_test_summary: The result summary of tests triggered by feature + updates. + :paramtype feature_updates_test_summary: ~azure.mgmt.testbase.models.OSUpdatesTestSummary + :keyword security_updates_test_summary: The result summary of tests triggered by security + updates. + :paramtype security_updates_test_summary: ~azure.mgmt.testbase.models.OSUpdatesTestSummary + :keyword package_tags: The tags of Package resource that are associated with the testSummary. + :paramtype package_tags: dict[str, str] + """ super(TestSummaryResource, self).__init__(**kwargs) self.system_data = None self.test_summary_id = test_summary_id @@ -2975,6 +4281,7 @@ def __init__( self.test_run_time = test_run_time self.feature_updates_test_summary = feature_updates_test_summary self.security_updates_test_summary = security_updates_test_summary + self.package_tags = package_tags class TestTypeListResult(msrest.serialization.Model): @@ -2982,8 +4289,8 @@ class TestTypeListResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :param value: The list of test types. - :type value: list[~test_base.models.TestTypeResource] + :ivar value: The list of test types. + :vartype value: list[~azure.mgmt.testbase.models.TestTypeResource] :ivar next_link: Link to the next set of results. Not empty if value contains incomplete list of results. :vartype next_link: str @@ -3001,9 +4308,13 @@ class TestTypeListResult(msrest.serialization.Model): def __init__( self, *, - value: Optional[List["TestTypeResource"]] = None, + value: Optional[List["_models.TestTypeResource"]] = None, **kwargs ): + """ + :keyword value: The list of test types. + :paramtype value: list[~azure.mgmt.testbase.models.TestTypeResource] + """ super(TestTypeListResult, self).__init__(**kwargs) self.value = value self.next_link = None @@ -3021,9 +4332,9 @@ class TestTypeResource(ProxyResource): :ivar type: Resource type. :vartype type: str :ivar system_data: The system metadata relating to this resource. - :vartype system_data: ~test_base.models.SystemData - :param actual_test_type_name: The actual name of a test type of a Test Base Account. - :type actual_test_type_name: str + :vartype system_data: ~azure.mgmt.testbase.models.SystemData + :ivar actual_test_type_name: The actual name of a test type of a Test Base Account. + :vartype actual_test_type_name: str """ _validation = { @@ -3047,6 +4358,10 @@ def __init__( actual_test_type_name: Optional[str] = None, **kwargs ): + """ + :keyword actual_test_type_name: The actual name of a test type of a Test Base Account. + :paramtype actual_test_type_name: str + """ super(TestTypeResource, self).__init__(**kwargs) self.system_data = None self.actual_test_type_name = actual_test_type_name @@ -3055,8 +4370,8 @@ def __init__( class UserObjectReceiverValue(msrest.serialization.Model): """The user object receiver value. - :param user_object_ids: user object ids. - :type user_object_ids: list[str] + :ivar user_object_ids: user object ids. + :vartype user_object_ids: list[str] """ _attribute_map = { @@ -3069,6 +4384,10 @@ def __init__( user_object_ids: Optional[List[str]] = None, **kwargs ): + """ + :keyword user_object_ids: user object ids. + :paramtype user_object_ids: list[str] + """ super(UserObjectReceiverValue, self).__init__(**kwargs) self.user_object_ids = user_object_ids @@ -3076,10 +4395,10 @@ def __init__( class UtilizationBound(msrest.serialization.Model): """The bound of a utilization result. - :param percentile: The percentile of the bound. - :type percentile: float - :param value: The value of the bound. - :type value: float + :ivar percentile: The percentile of the bound. + :vartype percentile: float + :ivar value: The value of the bound. + :vartype value: float """ _attribute_map = { @@ -3094,6 +4413,12 @@ def __init__( value: Optional[float] = None, **kwargs ): + """ + :keyword percentile: The percentile of the bound. + :paramtype percentile: float + :keyword value: The value of the bound. + :paramtype value: float + """ super(UtilizationBound, self).__init__(**kwargs) self.percentile = percentile self.value = value @@ -3102,10 +4427,10 @@ def __init__( class UtilizationEntry(msrest.serialization.Model): """The utilization entry. - :param timestamp: The timestamp. - :type timestamp: ~datetime.datetime - :param value: The value. - :type value: float + :ivar timestamp: The timestamp. + :vartype timestamp: ~datetime.datetime + :ivar value: The value. + :vartype value: float """ _attribute_map = { @@ -3120,6 +4445,12 @@ def __init__( value: Optional[float] = None, **kwargs ): + """ + :keyword timestamp: The timestamp. + :paramtype timestamp: ~datetime.datetime + :keyword value: The value. + :paramtype value: float + """ super(UtilizationEntry, self).__init__(**kwargs) self.timestamp = timestamp self.value = value @@ -3128,14 +4459,14 @@ def __init__( class UtilizationResult(msrest.serialization.Model): """The Utilization Result. - :param process: Process name, or '_total' for all processes. - :type process: str - :param upper_bound: Upper bound. - :type upper_bound: ~test_base.models.UtilizationBound - :param lower_bound: Lower bound. - :type lower_bound: ~test_base.models.UtilizationBound - :param utilization: Utilization data. - :type utilization: list[~test_base.models.UtilizationEntry] + :ivar process: Process name, or '_total' for all processes. + :vartype process: str + :ivar upper_bound: Upper bound. + :vartype upper_bound: ~azure.mgmt.testbase.models.UtilizationBound + :ivar lower_bound: Lower bound. + :vartype lower_bound: ~azure.mgmt.testbase.models.UtilizationBound + :ivar utilization: Utilization data. + :vartype utilization: list[~azure.mgmt.testbase.models.UtilizationEntry] """ _attribute_map = { @@ -3149,11 +4480,21 @@ def __init__( self, *, process: Optional[str] = None, - upper_bound: Optional["UtilizationBound"] = None, - lower_bound: Optional["UtilizationBound"] = None, - utilization: Optional[List["UtilizationEntry"]] = None, + upper_bound: Optional["_models.UtilizationBound"] = None, + lower_bound: Optional["_models.UtilizationBound"] = None, + utilization: Optional[List["_models.UtilizationEntry"]] = None, **kwargs ): + """ + :keyword process: Process name, or '_total' for all processes. + :paramtype process: str + :keyword upper_bound: Upper bound. + :paramtype upper_bound: ~azure.mgmt.testbase.models.UtilizationBound + :keyword lower_bound: Lower bound. + :paramtype lower_bound: ~azure.mgmt.testbase.models.UtilizationBound + :keyword utilization: Utilization data. + :paramtype utilization: list[~azure.mgmt.testbase.models.UtilizationEntry] + """ super(UtilizationResult, self).__init__(**kwargs) self.process = process self.upper_bound = upper_bound diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/_patch.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/_patch.py new file mode 100644 index 000000000000..0ad201a8c586 --- /dev/null +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/_patch.py @@ -0,0 +1,19 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" +from typing import List + +__all__: List[str] = [] # Add all objects you want publicly available to users at this package level + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/_test_base_enums.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/_test_base_enums.py index 21985c268a9c..a4278d51400d 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/_test_base_enums.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/models/_test_base_enums.py @@ -6,27 +6,11 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from enum import Enum, EnumMeta -from six import with_metaclass - -class _CaseInsensitiveEnumMeta(EnumMeta): - def __getitem__(self, name): - return super().__getitem__(name.upper()) - - def __getattr__(cls, name): - """Return the enum member matching `name` - We use __getattr__ instead of descriptors or inserting into the enum - class' __dict__ in order to support `name` and `value` being both - properties for enum members (which live in the class' __dict__) and - enum members themselves. - """ - try: - return cls._member_map_[name.upper()] - except KeyError: - raise AttributeError(name) - - -class Action(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +from enum import Enum +from azure.core import CaseInsensitiveEnumMeta + + +class Action(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The action of the command. """ @@ -36,7 +20,7 @@ class Action(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): UNINSTALL = "Uninstall" CUSTOM = "Custom" -class AnalysisResultName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class AnalysisResultName(str, Enum, metaclass=CaseInsensitiveEnumMeta): SCRIPT_EXECUTION = "scriptExecution" RELIABILITY = "reliability" @@ -46,7 +30,7 @@ class AnalysisResultName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): CPU_REGRESSION = "cpuRegression" TEST_ANALYSIS = "testAnalysis" -class AnalysisResultType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class AnalysisResultType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of the Analysis Result. """ @@ -58,7 +42,7 @@ class AnalysisResultType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): MEMORY_REGRESSION = "MemoryRegression" TEST_ANALYSIS = "TestAnalysis" -class AnalysisStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class AnalysisStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The analysis status. """ @@ -70,7 +54,7 @@ class AnalysisStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): AVAILABLE = "Available" NOT_AVAILABLE = "NotAvailable" -class Category(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class Category(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The category of the failure. """ @@ -80,7 +64,7 @@ class Category(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): OS_UPDATE = "OSUpdate" INFRASTRUCTURE = "Infrastructure" -class ContentType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class ContentType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The type of command content. """ @@ -88,7 +72,7 @@ class ContentType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): FILE = "File" PATH = "Path" -class CreatedByType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class CreatedByType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The type of identity that created the resource. """ @@ -97,7 +81,7 @@ class CreatedByType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): MANAGED_IDENTITY = "ManagedIdentity" KEY = "Key" -class ExecutionStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class ExecutionStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The execution status of a test. """ @@ -110,7 +94,7 @@ class ExecutionStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): FAILED = "Failed" SUCCEEDED = "Succeeded" -class Grade(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class Grade(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The grade of a test. """ @@ -119,12 +103,14 @@ class Grade(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): PASS_ENUM = "Pass" FAIL = "Fail" -class OsUpdateType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class OsUpdateType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Specifies the OS update type to test against. + """ SECURITY_UPDATE = "SecurityUpdate" FEATURE_UPDATE = "FeatureUpdate" -class PackageStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class PackageStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The status of the package. """ @@ -138,7 +124,7 @@ class PackageStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): VALIDATION_LONGER_THAN_USUAL = "ValidationLongerThanUsual" VERIFYING_PACKAGE = "VerifyingPackage" -class ProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class ProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): """ARM provisioning state, see https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#provisioningstate-property """ @@ -150,14 +136,14 @@ class ProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): DELETING = "Deleting" UPDATING = "Updating" -class Reason(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class Reason(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The reason for unavailability of a name. Required if nameAvailable == false. """ INVALID = "Invalid" ALREADY_EXISTS = "AlreadyExists" -class TestAnalysisStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class TestAnalysisStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The status of the analysis. """ @@ -166,7 +152,7 @@ class TestAnalysisStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): COMPLETED = "Completed" FAILED = "Failed" -class TestStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class TestStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The status of a test. """ @@ -179,27 +165,27 @@ class TestStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): INFRASTRUCTURE_FAILURE = "InfrastructureFailure" COMPLETED = "Completed" -class TestType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class TestType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The test type. """ OUT_OF_BOX_TEST = "OutOfBoxTest" FUNCTIONAL_TEST = "FunctionalTest" -class Tier(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class Tier(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The tier of this particular SKU. """ STANDARD = "Standard" -class Type(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class Type(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The type of this release (OS update). """ SECURITY_UPDATE = "SecurityUpdate" FEATURE_UPDATE = "FeatureUpdate" -class ValidationRunStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class ValidationRunStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The status of the validation run of the package. """ diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/__init__.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/__init__.py index 5ceab87ab585..65b1a4a357a3 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/__init__.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/__init__.py @@ -21,7 +21,11 @@ from ._email_events_operations import EmailEventsOperations from ._customer_events_operations import CustomerEventsOperations from ._operations import Operations +from ._billing_hub_service_operations import BillingHubServiceOperations +from ._patch import __all__ as _patch_all +from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import +from ._patch import patch_sdk as _patch_sdk __all__ = [ 'SkusOperations', 'TestBaseAccountsOperations', @@ -38,4 +42,7 @@ 'EmailEventsOperations', 'CustomerEventsOperations', 'Operations', + 'BillingHubServiceOperations', ] +__all__.extend([p for p in _patch_all if p not in __all__]) +_patch_sdk() \ No newline at end of file diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_analysis_results_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_analysis_results_operations.py index 956f65bd192b..93aa49c21e96 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_analysis_results_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_analysis_results_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,56 +6,143 @@ # 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 TYPE_CHECKING -import warnings +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar, Union + +from msrest import Serializer from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse +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 .._vendor import _convert_request, _format_url_section +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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + test_result_name: str, + *, + analysis_result_type: Union[str, "_models.AnalysisResultType"], + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/analysisResults") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + "testResultName": _SERIALIZER.url("test_result_name", test_result_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + _params['analysisResultType'] = _SERIALIZER.query("analysis_result_type", analysis_result_type, 'str') + _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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + test_result_name: str, + analysis_result_name: Union[str, "_models.AnalysisResultName"], + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/analysisResults/{analysisResultName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + "testResultName": _SERIALIZER.url("test_result_name", test_result_name, 'str'), + "analysisResultName": _SERIALIZER.url("analysis_result_name", analysis_result_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union + # Construct parameters + _params['api-version'] = _SERIALIZER.query("api_version", api_version, 'str') - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + # Construct headers + _headers['Accept'] = _SERIALIZER.header("accept", accept, 'str') -class AnalysisResultsOperations(object): - """AnalysisResultsOperations operations. + return HttpRequest( + method="GET", + url=_url, + params=_params, + headers=_headers, + **kwargs + ) - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. +class AnalysisResultsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`analysis_results` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - test_result_name, # type: str - analysis_result_type, # type: Union[str, "_models.AnalysisResultType"] - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.AnalysisResultListResult"] + resource_group_name: str, + test_base_account_name: str, + package_name: str, + test_result_name: str, + analysis_result_type: Union[str, "_models.AnalysisResultType"], + **kwargs: Any + ) -> Iterable[_models.AnalysisResultListResult]: """Lists the Analysis Results of a Test Result. The result collection will only contain one element as all the data will be nested in a singleton object. @@ -64,53 +152,65 @@ def list( :type test_base_account_name: str :param package_name: The resource name of the Test Base Package. :type package_name: str - :param test_result_name: The Test Result Name. It equals to {osName}-{TestResultId} string. + :param test_result_name: The Test Result Name. It equals to TestResult-{TestResultId} string. :type test_result_name: str :param analysis_result_type: The type of the Analysis Result of a Test Result. - :type analysis_result_type: str or ~test_base.models.AnalysisResultType + :type analysis_result_type: str or ~azure.mgmt.testbase.models.AnalysisResultType :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either AnalysisResultListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.AnalysisResultListResult] + :return: An iterator like instance of either AnalysisResultListResult or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.AnalysisResultListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.AnalysisResultListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.AnalysisResultListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'testResultName': self._serialize.url("test_result_name", test_result_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['analysisResultType'] = self._serialize.query("analysis_result_type", analysis_result_type, 'str') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + test_result_name=test_result_name, + api_version=api_version, + analysis_result_type=analysis_result_type, + template_url=self.list.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + test_result_name=test_result_name, + api_version=api_version, + analysis_result_type=analysis_result_type, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('AnalysisResultListResult', pipeline_response) + deserialized = self._deserialize("AnalysisResultListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -119,31 +219,36 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/analysisResults'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/analysisResults"} # type: ignore + @distributed_trace def get( self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - test_result_name, # type: str - analysis_result_name, # type: Union[str, "_models.AnalysisResultName"] - **kwargs # type: Any - ): - # type: (...) -> "_models.AnalysisResultSingletonResource" + resource_group_name: str, + test_base_account_name: str, + package_name: str, + test_result_name: str, + analysis_result_name: Union[str, "_models.AnalysisResultName"], + **kwargs: Any + ) -> _models.AnalysisResultSingletonResource: """Gets an Analysis Result of a Test Result by name. :param resource_group_name: The name of the resource group that contains the resource. @@ -152,50 +257,52 @@ def get( :type test_base_account_name: str :param package_name: The resource name of the Test Base Package. :type package_name: str - :param test_result_name: The Test Result Name. It equals to {osName}-{TestResultId} string. + :param test_result_name: The Test Result Name. It equals to TestResult-{TestResultId} string. :type test_result_name: str :param analysis_result_name: The name of the Analysis Result of a Test Result. - :type analysis_result_name: str or ~test_base.models.AnalysisResultName + :type analysis_result_name: str or ~azure.mgmt.testbase.models.AnalysisResultName :keyword callable cls: A custom type or function that will be passed the direct response :return: AnalysisResultSingletonResource, or the result of cls(response) - :rtype: ~test_base.models.AnalysisResultSingletonResource + :rtype: ~azure.mgmt.testbase.models.AnalysisResultSingletonResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.AnalysisResultSingletonResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'testResultName': self._serialize.url("test_result_name", test_result_name, 'str'), - 'analysisResultName': self._serialize.url("analysis_result_name", analysis_result_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.AnalysisResultSingletonResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + test_result_name=test_result_name, + analysis_result_name=analysis_result_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('AnalysisResultSingletonResource', pipeline_response) @@ -204,4 +311,6 @@ def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/analysisResults/{analysisResultName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/analysisResults/{analysisResultName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_available_os_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_available_os_operations.py index 2e571de3c1b0..1b6c06763d62 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_available_os_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_available_os_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,54 +6,133 @@ # 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 TYPE_CHECKING -import warnings +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar, Union + +from msrest import Serializer from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse +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 .._vendor import _convert_request, _format_url_section +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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + *, + os_update_type: Union[str, "_models.OsUpdateType"], + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/availableOSs") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + _params['osUpdateType'] = _SERIALIZER.query("os_update_type", os_update_type, 'str') + _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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + available_os_resource_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/availableOSs/{availableOSResourceName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "availableOSResourceName": _SERIALIZER.url("available_os_resource_name", available_os_resource_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union + # Construct parameters + _params['api-version'] = _SERIALIZER.query("api_version", api_version, 'str') - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + # Construct headers + _headers['Accept'] = _SERIALIZER.header("accept", accept, 'str') -class AvailableOSOperations(object): - """AvailableOSOperations operations. + return HttpRequest( + method="GET", + url=_url, + params=_params, + headers=_headers, + **kwargs + ) - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. +class AvailableOSOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`available_os` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name, # type: str - test_base_account_name, # type: str - os_update_type, # type: Union[str, "_models.OsUpdateType"] - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.AvailableOSListResult"] + resource_group_name: str, + test_base_account_name: str, + os_update_type: Union[str, "_models.OsUpdateType"], + **kwargs: Any + ) -> Iterable[_models.AvailableOSListResult]: """Lists all the available OSs to run a package under a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -60,48 +140,58 @@ def list( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :param os_update_type: The type of the OS Update. - :type os_update_type: str or ~test_base.models.OsUpdateType + :type os_update_type: str or ~azure.mgmt.testbase.models.OsUpdateType :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either AvailableOSListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.AvailableOSListResult] + :return: An iterator like instance of either AvailableOSListResult or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.AvailableOSListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.AvailableOSListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.AvailableOSListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['osUpdateType'] = self._serialize.query("os_update_type", os_update_type, 'str') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + os_update_type=os_update_type, + template_url=self.list.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + os_update_type=os_update_type, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('AvailableOSListResult', pipeline_response) + deserialized = self._deserialize("AvailableOSListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -110,29 +200,34 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/availableOSs'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/availableOSs"} # type: ignore + @distributed_trace def get( self, - resource_group_name, # type: str - test_base_account_name, # type: str - available_os_resource_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.AvailableOSResource" + resource_group_name: str, + test_base_account_name: str, + available_os_resource_name: str, + **kwargs: Any + ) -> _models.AvailableOSResource: """Gets an available OS to run a package under a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -143,42 +238,44 @@ def get( :type available_os_resource_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: AvailableOSResource, or the result of cls(response) - :rtype: ~test_base.models.AvailableOSResource + :rtype: ~azure.mgmt.testbase.models.AvailableOSResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.AvailableOSResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'availableOSResourceName': self._serialize.url("available_os_resource_name", available_os_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.AvailableOSResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + available_os_resource_name=available_os_resource_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('AvailableOSResource', pipeline_response) @@ -187,4 +284,6 @@ def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/availableOSs/{availableOSResourceName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/availableOSs/{availableOSResourceName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_billing_hub_service_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_billing_hub_service_operations.py new file mode 100644 index 000000000000..e1511d3a88ba --- /dev/null +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_billing_hub_service_operations.py @@ -0,0 +1,266 @@ +# 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. +# -------------------------------------------------------------------------- +from typing import Any, Callable, Dict, Optional, TypeVar + +from msrest import Serializer + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +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 .._vendor import _convert_request, _format_url_section +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +_SERIALIZER = Serializer() +_SERIALIZER.client_side_validation = False + +def build_get_free_hour_balance_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/getFreeHourBalance") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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_get_usage_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + *, + json: Optional[_models.BillingHubGetUsageRequest] = None, + content: Any = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', None)) # type: Optional[str] + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/getUsage") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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, + json=json, + content=content, + **kwargs + ) + +class BillingHubServiceOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`billing_hub_service` 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_free_hour_balance( + self, + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any + ) -> _models.BillingHubGetFreeHourBalanceResponse: + """get_free_hour_balance. + + :param resource_group_name: The name of the resource group that contains the resource. + :type resource_group_name: str + :param test_base_account_name: The resource name of the Test Base Account. + :type test_base_account_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BillingHubGetFreeHourBalanceResponse, or the result of cls(response) + :rtype: ~azure.mgmt.testbase.models.BillingHubGetFreeHourBalanceResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.BillingHubGetFreeHourBalanceResponse] + + + request = build_get_free_hour_balance_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=self.get_free_hour_balance.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # 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('BillingHubGetFreeHourBalanceResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + get_free_hour_balance.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/getFreeHourBalance"} # type: ignore + + + @distributed_trace + def get_usage( + self, + resource_group_name: str, + test_base_account_name: str, + get_usage_request: Optional[_models.BillingHubGetUsageRequest] = None, + **kwargs: Any + ) -> _models.BillingHubGetUsageResponse: + """get_usage. + + :param resource_group_name: The name of the resource group that contains the resource. + :type resource_group_name: str + :param test_base_account_name: The resource name of the Test Base Account. + :type test_base_account_name: str + :param get_usage_request: Default value is None. + :type get_usage_request: ~azure.mgmt.testbase.models.BillingHubGetUsageRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BillingHubGetUsageResponse, or the result of cls(response) + :rtype: ~azure.mgmt.testbase.models.BillingHubGetUsageResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.BillingHubGetUsageResponse] + + if get_usage_request is not None: + _json = self._serialize.body(get_usage_request, 'BillingHubGetUsageRequest') + else: + _json = None + + request = build_get_usage_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self.get_usage.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # 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('BillingHubGetUsageResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + get_usage.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/getUsage"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_customer_events_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_customer_events_operations.py index 851338b217d8..8b4187b57fad 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_customer_events_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_customer_events_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,55 +6,217 @@ # 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 TYPE_CHECKING -import warnings +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar, Union, cast + +from msrest import Serializer from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse +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 .._vendor import _convert_request, _format_url_section +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_test_base_account_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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_initial( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + customer_event_name: str, + *, + json: Optional[_models.CustomerEventResource] = None, + content: Any = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', None)) # type: Optional[str] + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "customerEventName": _SERIALIZER.url("customer_event_name", customer_event_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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, + json=json, + content=content, + **kwargs + ) + + +def build_delete_request_initial( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + customer_event_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "customerEventName": _SERIALIZER.url("customer_event_name", customer_event_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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 + ) + + +def build_get_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + customer_event_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "customerEventName": _SERIALIZER.url("customer_event_name", customer_event_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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 CustomerEventsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class CustomerEventsOperations(object): - """CustomerEventsOperations operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. - - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`customer_events` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_test_base_account( self, - resource_group_name, # type: str - test_base_account_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.CustomerEventListResult"] + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any + ) -> Iterable[_models.CustomerEventListResult]: """Lists all notification events subscribed under a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -61,45 +224,54 @@ def list_by_test_base_account( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either CustomerEventListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.CustomerEventListResult] + :return: An iterator like instance of either CustomerEventListResult or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.CustomerEventListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.CustomerEventListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.CustomerEventListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list_by_test_base_account.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_test_base_account_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=self.list_by_test_base_account.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_test_base_account_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('CustomerEventListResult', pipeline_response) + deserialized = self._deserialize("CustomerEventListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -108,69 +280,73 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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_test_base_account.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents'} # type: ignore + list_by_test_base_account.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents"} # type: ignore def _create_initial( self, - resource_group_name, # type: str - test_base_account_name, # type: str - customer_event_name, # type: str - parameters, # type: "_models.CustomerEventResource" - **kwargs # type: Any - ): - # type: (...) -> "_models.CustomerEventResource" - cls = kwargs.pop('cls', None) # type: ClsType["_models.CustomerEventResource"] + resource_group_name: str, + test_base_account_name: str, + customer_event_name: str, + parameters: _models.CustomerEventResource, + **kwargs: Any + ) -> _models.CustomerEventResource: error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._create_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'customerEventName': self._serialize.url("customer_event_name", customer_event_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(parameters, 'CustomerEventResource') - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.CustomerEventResource] + + _json = self._serialize.body(parameters, 'CustomerEventResource') + + request = build_create_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + customer_event_name=customer_event_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self._create_initial.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 200: @@ -178,23 +354,26 @@ def _create_initial( if response.status_code == 201: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('CustomerEventResource', pipeline_response) if cls: return cls(pipeline_response, deserialized, response_headers) return deserialized - _create_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}'} # type: ignore + _create_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}"} # type: ignore + + + @distributed_trace def begin_create( self, - resource_group_name, # type: str - test_base_account_name, # type: str - customer_event_name, # type: str - parameters, # type: "_models.CustomerEventResource" - **kwargs # type: Any - ): - # type: (...) -> LROPoller["_models.CustomerEventResource"] + resource_group_name: str, + test_base_account_name: str, + customer_event_name: str, + parameters: _models.CustomerEventResource, + **kwargs: Any + ) -> LROPoller[_models.CustomerEventResource]: """Create or replace a Test Base Customer Event. :param resource_group_name: The name of the resource group that contains the resource. @@ -204,53 +383,62 @@ def begin_create( :param customer_event_name: The resource name of the Test Base Customer event. :type customer_event_name: str :param parameters: Parameters supplied to create a Test Base CustomerEvent. - :type parameters: ~test_base.models.CustomerEventResource + :type parameters: ~azure.mgmt.testbase.models.CustomerEventResource :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. + :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 CustomerEventResource or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~test_base.models.CustomerEventResource] - :raises ~azure.core.exceptions.HttpResponseError: + :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 CustomerEventResource or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.testbase.models.CustomerEventResource] + :raises: ~azure.core.exceptions.HttpResponseError """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.CustomerEventResource] polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["_models.CustomerEventResource"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = self._create_initial( + raw_result = self._create_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, customer_event_name=customer_event_name, parameters=parameters, + api_version=api_version, + content_type=content_type, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): deserialized = self._deserialize('CustomerEventResource', pipeline_response) - if cls: return cls(pipeline_response, deserialized, {}) return deserialized - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'customerEventName': self._serialize.url("customer_event_name", customer_event_name, 'str'), - } - if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = NoPolling() + if polling is True: + polling_method = cast(PollingMethod, ARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: PollingMethod + elif polling is False: polling_method = cast(PollingMethod, NoPolling()) else: polling_method = polling if cont_token: return LROPoller.from_continuation_token( @@ -259,71 +447,73 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}'} # type: ignore + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - def _delete_initial( + begin_create.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}"} # type: ignore + + def _delete_initial( # pylint: disable=inconsistent-return-statements self, - resource_group_name, # type: str - test_base_account_name, # type: str - customer_event_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> None - cls = kwargs.pop('cls', None) # type: ClsType[None] + resource_group_name: str, + test_base_account_name: str, + customer_event_name: str, + **kwargs: Any + ) -> None: error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self._delete_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'customerEventName': self._serialize.url("customer_event_name", customer_event_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[None] - request = self._client.delete(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + + request = build_delete_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + customer_event_name=customer_event_name, + 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) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 202: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if cls: return cls(pipeline_response, None, response_headers) - _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}'} # type: ignore + _delete_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}"} # type: ignore - def begin_delete( + + @distributed_trace + def begin_delete( # pylint: disable=inconsistent-return-statements self, - resource_group_name, # type: str - test_base_account_name, # type: str - customer_event_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> LROPoller[None] + resource_group_name: str, + test_base_account_name: str, + customer_event_name: str, + **kwargs: Any + ) -> LROPoller[None]: """Deletes a Test Base Customer Event. :param resource_group_name: The name of the resource group that contains the resource. @@ -334,46 +524,53 @@ def begin_delete( :type customer_event_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. + :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. + :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: + :raises: ~azure.core.exceptions.HttpResponseError """ - polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str cls = kwargs.pop('cls', None) # type: ClsType[None] + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = self._delete_initial( + raw_result = self._delete_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, customer_event_name=customer_event_name, + api_version=api_version, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): if cls: return cls(pipeline_response, None, {}) - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'customerEventName': self._serialize.url("customer_event_name", customer_event_name, 'str'), - } - if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = NoPolling() + if polling is True: + polling_method = cast(PollingMethod, ARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: PollingMethod + elif polling is False: polling_method = cast(PollingMethod, NoPolling()) else: polling_method = polling if cont_token: return LROPoller.from_continuation_token( @@ -382,18 +579,18 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}'} # type: ignore + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + + begin_delete.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}"} # type: ignore + @distributed_trace def get( self, - resource_group_name, # type: str - test_base_account_name, # type: str - customer_event_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.CustomerEventResource" + resource_group_name: str, + test_base_account_name: str, + customer_event_name: str, + **kwargs: Any + ) -> _models.CustomerEventResource: """Gets a Test Base CustomerEvent. :param resource_group_name: The name of the resource group that contains the resource. @@ -404,42 +601,44 @@ def get( :type customer_event_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: CustomerEventResource, or the result of cls(response) - :rtype: ~test_base.models.CustomerEventResource + :rtype: ~azure.mgmt.testbase.models.CustomerEventResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.CustomerEventResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'customerEventName': self._serialize.url("customer_event_name", customer_event_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.CustomerEventResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + customer_event_name=customer_event_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('CustomerEventResource', pipeline_response) @@ -448,4 +647,6 @@ def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/customerEvents/{customerEventName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_email_events_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_email_events_operations.py index 28d674f47e2a..6a6f5610a179 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_email_events_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_email_events_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,53 +6,129 @@ # 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 TYPE_CHECKING -import warnings +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar + +from msrest import Serializer from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse +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 .._vendor import _convert_request, _format_url_section +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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/emailEvents") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + email_event_resource_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/emailEvents/{emailEventResourceName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "emailEventResourceName": _SERIALIZER.url("email_event_resource_name", email_event_resource_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + # Construct parameters + _params['api-version'] = _SERIALIZER.query("api_version", api_version, 'str') - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + # Construct headers + _headers['Accept'] = _SERIALIZER.header("accept", accept, 'str') -class EmailEventsOperations(object): - """EmailEventsOperations operations. + return HttpRequest( + method="GET", + url=_url, + params=_params, + headers=_headers, + **kwargs + ) - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. +class EmailEventsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`email_events` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name, # type: str - test_base_account_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.EmailEventListResult"] + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any + ) -> Iterable[_models.EmailEventListResult]: """Lists all the email events of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -59,45 +136,54 @@ def list( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either EmailEventListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.EmailEventListResult] + :return: An iterator like instance of either EmailEventListResult or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.EmailEventListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.EmailEventListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.EmailEventListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + 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) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('EmailEventListResult', pipeline_response) + deserialized = self._deserialize("EmailEventListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -106,29 +192,34 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/emailEvents'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/emailEvents"} # type: ignore + @distributed_trace def get( self, - resource_group_name, # type: str - test_base_account_name, # type: str - email_event_resource_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.EmailEventResource" + resource_group_name: str, + test_base_account_name: str, + email_event_resource_name: str, + **kwargs: Any + ) -> _models.EmailEventResource: """Gets a email event of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -139,42 +230,44 @@ def get( :type email_event_resource_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: EmailEventResource, or the result of cls(response) - :rtype: ~test_base.models.EmailEventResource + :rtype: ~azure.mgmt.testbase.models.EmailEventResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.EmailEventResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'emailEventResourceName': self._serialize.url("email_event_resource_name", email_event_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.EmailEventResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + email_event_resource_name=email_event_resource_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('EmailEventResource', pipeline_response) @@ -183,4 +276,6 @@ def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/emailEvents/{emailEventResourceName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/emailEvents/{emailEventResourceName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_favorite_processes_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_favorite_processes_operations.py index 5416c0ed5653..e2c0739e1900 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_favorite_processes_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_favorite_processes_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,54 +6,224 @@ # 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 TYPE_CHECKING -import warnings +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar + +from msrest import Serializer from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse +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 .._vendor import _convert_request, _format_url_section +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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + favorite_process_resource_name: str, + *, + json: Optional[_models.FavoriteProcessResource] = None, + content: Any = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', None)) # type: Optional[str] + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses/{favoriteProcessResourceName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + "favoriteProcessResourceName": _SERIALIZER.url("favorite_process_resource_name", favorite_process_resource_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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, + json=json, + content=content, + **kwargs + ) + + +def build_delete_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + favorite_process_resource_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses/{favoriteProcessResourceName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + "favoriteProcessResourceName": _SERIALIZER.url("favorite_process_resource_name", favorite_process_resource_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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 + ) + + +def build_get_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + favorite_process_resource_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses/{favoriteProcessResourceName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + "favoriteProcessResourceName": _SERIALIZER.url("favorite_process_resource_name", favorite_process_resource_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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 FavoriteProcessesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class FavoriteProcessesOperations(object): - """FavoriteProcessesOperations operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. - - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`favorite_processes` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.FavoriteProcessListResult"] + resource_group_name: str, + test_base_account_name: str, + package_name: str, + **kwargs: Any + ) -> Iterable[_models.FavoriteProcessListResult]: """Lists the favorite processes for a specific package. :param resource_group_name: The name of the resource group that contains the resource. @@ -62,46 +233,56 @@ def list( :param package_name: The resource name of the Test Base Package. :type package_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either FavoriteProcessListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.FavoriteProcessListResult] + :return: An iterator like instance of either FavoriteProcessListResult or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.FavoriteProcessListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.FavoriteProcessListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.FavoriteProcessListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + 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) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('FavoriteProcessListResult', pipeline_response) + deserialized = self._deserialize("FavoriteProcessListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -110,31 +291,36 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses"} # type: ignore + @distributed_trace def create( self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - favorite_process_resource_name, # type: str - parameters, # type: "_models.FavoriteProcessResource" - **kwargs # type: Any - ): - # type: (...) -> "_models.FavoriteProcessResource" + resource_group_name: str, + test_base_account_name: str, + package_name: str, + favorite_process_resource_name: str, + parameters: _models.FavoriteProcessResource, + **kwargs: Any + ) -> _models.FavoriteProcessResource: """Create or replace a favorite process for a Test Base Package. :param resource_group_name: The name of the resource group that contains the resource. @@ -148,51 +334,52 @@ def create( 'actualProcessName' in request body to submit the name. :type favorite_process_resource_name: str :param parameters: Parameters supplied to create a favorite process in a package. - :type parameters: ~test_base.models.FavoriteProcessResource + :type parameters: ~azure.mgmt.testbase.models.FavoriteProcessResource :keyword callable cls: A custom type or function that will be passed the direct response :return: FavoriteProcessResource, or the result of cls(response) - :rtype: ~test_base.models.FavoriteProcessResource + :rtype: ~azure.mgmt.testbase.models.FavoriteProcessResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.FavoriteProcessResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.create.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'favoriteProcessResourceName': self._serialize.url("favorite_process_resource_name", favorite_process_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(parameters, 'FavoriteProcessResource') - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.FavoriteProcessResource] + + _json = self._serialize.body(parameters, 'FavoriteProcessResource') + + request = build_create_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + favorite_process_resource_name=favorite_process_resource_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self.create.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('FavoriteProcessResource', pipeline_response) @@ -201,17 +388,19 @@ def create( return cls(pipeline_response, deserialized, {}) return deserialized - create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses/{favoriteProcessResourceName}'} # type: ignore - def delete( + create.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses/{favoriteProcessResourceName}"} # type: ignore + + + @distributed_trace + def delete( # pylint: disable=inconsistent-return-statements self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - favorite_process_resource_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> None + resource_group_name: str, + test_base_account_name: str, + package_name: str, + favorite_process_resource_name: str, + **kwargs: Any + ) -> None: """Deletes a favorite process for a specific package. :param resource_group_name: The name of the resource group that contains the resource. @@ -229,56 +418,59 @@ def delete( :rtype: None :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType[None] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.delete.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'favoriteProcessResourceName': self._serialize.url("favorite_process_resource_name", favorite_process_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[None] + + + request = build_delete_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + favorite_process_resource_name=favorite_process_resource_name, + 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) # type: ignore - request = self._client.delete(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + 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.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses/{favoriteProcessResourceName}'} # type: ignore + delete.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses/{favoriteProcessResourceName}"} # type: ignore + + @distributed_trace def get( self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - favorite_process_resource_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.FavoriteProcessResource" + resource_group_name: str, + test_base_account_name: str, + package_name: str, + favorite_process_resource_name: str, + **kwargs: Any + ) -> _models.FavoriteProcessResource: """Gets a favorite process for a Test Base Package. :param resource_group_name: The name of the resource group that contains the resource. @@ -293,43 +485,45 @@ def get( :type favorite_process_resource_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: FavoriteProcessResource, or the result of cls(response) - :rtype: ~test_base.models.FavoriteProcessResource + :rtype: ~azure.mgmt.testbase.models.FavoriteProcessResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.FavoriteProcessResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'favoriteProcessResourceName': self._serialize.url("favorite_process_resource_name", favorite_process_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.FavoriteProcessResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + favorite_process_resource_name=favorite_process_resource_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('FavoriteProcessResource', pipeline_response) @@ -338,4 +532,6 @@ def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses/{favoriteProcessResourceName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/favoriteProcesses/{favoriteProcessResourceName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_flighting_rings_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_flighting_rings_operations.py index 63e1329f2a71..b04be85a9951 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_flighting_rings_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_flighting_rings_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,53 +6,129 @@ # 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 TYPE_CHECKING -import warnings +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar + +from msrest import Serializer from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse +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 .._vendor import _convert_request, _format_url_section +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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/flightingRings") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + flighting_ring_resource_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/flightingRings/{flightingRingResourceName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "flightingRingResourceName": _SERIALIZER.url("flighting_ring_resource_name", flighting_ring_resource_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + # Construct parameters + _params['api-version'] = _SERIALIZER.query("api_version", api_version, 'str') - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + # Construct headers + _headers['Accept'] = _SERIALIZER.header("accept", accept, 'str') -class FlightingRingsOperations(object): - """FlightingRingsOperations operations. + return HttpRequest( + method="GET", + url=_url, + params=_params, + headers=_headers, + **kwargs + ) - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. +class FlightingRingsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`flighting_rings` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name, # type: str - test_base_account_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.FlightingRingListResult"] + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any + ) -> Iterable[_models.FlightingRingListResult]: """Lists all the flighting rings of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -59,45 +136,54 @@ def list( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either FlightingRingListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.FlightingRingListResult] + :return: An iterator like instance of either FlightingRingListResult or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.FlightingRingListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.FlightingRingListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.FlightingRingListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + 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) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('FlightingRingListResult', pipeline_response) + deserialized = self._deserialize("FlightingRingListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -106,29 +192,34 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/flightingRings'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/flightingRings"} # type: ignore + @distributed_trace def get( self, - resource_group_name, # type: str - test_base_account_name, # type: str - flighting_ring_resource_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.FlightingRingResource" + resource_group_name: str, + test_base_account_name: str, + flighting_ring_resource_name: str, + **kwargs: Any + ) -> _models.FlightingRingResource: """Gets a flighting ring of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -139,42 +230,44 @@ def get( :type flighting_ring_resource_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: FlightingRingResource, or the result of cls(response) - :rtype: ~test_base.models.FlightingRingResource + :rtype: ~azure.mgmt.testbase.models.FlightingRingResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.FlightingRingResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'flightingRingResourceName': self._serialize.url("flighting_ring_resource_name", flighting_ring_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.FlightingRingResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + flighting_ring_resource_name=flighting_ring_resource_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('FlightingRingResource', pipeline_response) @@ -183,4 +276,6 @@ def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/flightingRings/{flightingRingResourceName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/flightingRings/{flightingRingResourceName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_operations.py index 035ecdd06d5f..97a067c2eccf 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,87 +6,122 @@ # 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 TYPE_CHECKING -import warnings +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar + +from msrest import Serializer from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse +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 .._vendor import _convert_request +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( + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + # Construct URL + _url = kwargs.pop("template_url", "/providers/Microsoft.TestBase/operations") -class Operations(object): - """Operations operations. + # Construct parameters + _params['api-version'] = _SERIALIZER.query("api_version", api_version, 'str') - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. + # Construct headers + _headers['Accept'] = _SERIALIZER.header("accept", accept, 'str') + + return HttpRequest( + method="GET", + url=_url, + params=_params, + headers=_headers, + **kwargs + ) + +class Operations: + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`operations` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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, - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.OperationListResult"] + **kwargs: Any + ) -> Iterable[_models.OperationListResult]: """Lists all of the available REST API operations of the Microsoft.TestBase provider. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either OperationListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.OperationListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.OperationListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.OperationListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.OperationListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('OperationListResult', pipeline_response) + deserialized = self._deserialize("OperationListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -94,17 +130,22 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/providers/Microsoft.TestBase/operations'} # type: ignore + list.metadata = {'url': "/providers/Microsoft.TestBase/operations"} # type: ignore diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_os_updates_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_os_updates_operations.py index 935453776807..27d85a33f557 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_os_updates_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_os_updates_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,55 +6,138 @@ # 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 TYPE_CHECKING -import warnings +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar, Union + +from msrest import Serializer from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse +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 .._vendor import _convert_request, _format_url_section +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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + *, + os_update_type: Union[str, "_models.OsUpdateType"], + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/osUpdates") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + _params['osUpdateType'] = _SERIALIZER.query("os_update_type", os_update_type, 'str') + _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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + os_update_resource_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/osUpdates/{osUpdateResourceName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + "osUpdateResourceName": _SERIALIZER.url("os_update_resource_name", os_update_resource_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union + # Construct parameters + _params['api-version'] = _SERIALIZER.query("api_version", api_version, 'str') - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + # Construct headers + _headers['Accept'] = _SERIALIZER.header("accept", accept, 'str') -class OSUpdatesOperations(object): - """OSUpdatesOperations operations. + return HttpRequest( + method="GET", + url=_url, + params=_params, + headers=_headers, + **kwargs + ) - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. +class OSUpdatesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`os_updates` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - os_update_type, # type: Union[str, "_models.OsUpdateType"] - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.OSUpdateListResult"] + resource_group_name: str, + test_base_account_name: str, + package_name: str, + os_update_type: Union[str, "_models.OsUpdateType"], + **kwargs: Any + ) -> Iterable[_models.OSUpdateListResult]: """Lists the OS Updates in which the package were tested before. :param resource_group_name: The name of the resource group that contains the resource. @@ -63,49 +147,59 @@ def list( :param package_name: The resource name of the Test Base Package. :type package_name: str :param os_update_type: The type of the OS Update. - :type os_update_type: str or ~test_base.models.OsUpdateType + :type os_update_type: str or ~azure.mgmt.testbase.models.OsUpdateType :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either OSUpdateListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.OSUpdateListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.OSUpdateListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.OSUpdateListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.OSUpdateListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['osUpdateType'] = self._serialize.query("os_update_type", os_update_type, 'str') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + os_update_type=os_update_type, + template_url=self.list.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + os_update_type=os_update_type, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('OSUpdateListResult', pipeline_response) + deserialized = self._deserialize("OSUpdateListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -114,30 +208,35 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/osUpdates'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/osUpdates"} # type: ignore + @distributed_trace def get( self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - os_update_resource_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.OSUpdateResource" + resource_group_name: str, + test_base_account_name: str, + package_name: str, + os_update_resource_name: str, + **kwargs: Any + ) -> _models.OSUpdateResource: """Gets an OS Update by name in which the package was tested before. :param resource_group_name: The name of the resource group that contains the resource. @@ -150,43 +249,45 @@ def get( :type os_update_resource_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: OSUpdateResource, or the result of cls(response) - :rtype: ~test_base.models.OSUpdateResource + :rtype: ~azure.mgmt.testbase.models.OSUpdateResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.OSUpdateResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'osUpdateResourceName': self._serialize.url("os_update_resource_name", os_update_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.OSUpdateResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + os_update_resource_name=os_update_resource_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('OSUpdateResource', pipeline_response) @@ -195,4 +296,6 @@ def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/osUpdates/{osUpdateResourceName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/osUpdates/{osUpdateResourceName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_packages_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_packages_operations.py index afb416b2bb3e..ac2e80be9a03 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_packages_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_packages_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,55 +6,389 @@ # 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 TYPE_CHECKING -import warnings +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar, Union, cast + +from msrest import Serializer from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse +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 .._vendor import _convert_request, _format_url_section +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_test_base_account_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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_initial( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + *, + json: Optional[_models.PackageResource] = None, + content: Any = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', None)) # type: Optional[str] + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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, + json=json, + content=content, + **kwargs + ) + + +def build_update_request_initial( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + *, + json: Optional[_models.PackageUpdateParameters] = None, + content: Any = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', None)) # type: Optional[str] + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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, + json=json, + content=content, + **kwargs + ) + + +def build_delete_request_initial( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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 + ) + + +def build_get_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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_hard_delete_request_initial( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/hardDelete") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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_get_download_url_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/getDownloadUrl") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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_run_test_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + *, + json: Optional[_models.PackageRunTestParameters] = None, + content: Any = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', None)) # type: Optional[str] + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/runTest") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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, + json=json, + content=content, + **kwargs + ) + +class PackagesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class PackagesOperations(object): - """PackagesOperations operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. - - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`packages` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_test_base_account( self, - resource_group_name, # type: str - test_base_account_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.PackageListResult"] + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any + ) -> Iterable[_models.PackageListResult]: """Lists all the packages under a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -62,44 +397,52 @@ def list_by_test_base_account( :type test_base_account_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PackageListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.PackageListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.PackageListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.PackageListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.PackageListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list_by_test_base_account.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_test_base_account_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=self.list_by_test_base_account.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_test_base_account_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('PackageListResult', pipeline_response) + deserialized = self._deserialize("PackageListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -108,69 +451,73 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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_test_base_account.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages'} # type: ignore + list_by_test_base_account.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages"} # type: ignore def _create_initial( self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - parameters, # type: "_models.PackageResource" - **kwargs # type: Any - ): - # type: (...) -> "_models.PackageResource" - cls = kwargs.pop('cls', None) # type: ClsType["_models.PackageResource"] + resource_group_name: str, + test_base_account_name: str, + package_name: str, + parameters: _models.PackageResource, + **kwargs: Any + ) -> _models.PackageResource: error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._create_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(parameters, 'PackageResource') - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.PackageResource] + + _json = self._serialize.body(parameters, 'PackageResource') + + request = build_create_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self._create_initial.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 200: @@ -178,23 +525,26 @@ def _create_initial( if response.status_code == 201: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('PackageResource', pipeline_response) if cls: return cls(pipeline_response, deserialized, response_headers) return deserialized - _create_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}'} # type: ignore + _create_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}"} # type: ignore + + + @distributed_trace def begin_create( self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - parameters, # type: "_models.PackageResource" - **kwargs # type: Any - ): - # type: (...) -> LROPoller["_models.PackageResource"] + resource_group_name: str, + test_base_account_name: str, + package_name: str, + parameters: _models.PackageResource, + **kwargs: Any + ) -> LROPoller[_models.PackageResource]: """Create or replace (overwrite/recreate, with potential downtime) a Test Base Package. :param resource_group_name: The name of the resource group that contains the resource. @@ -204,53 +554,62 @@ def begin_create( :param package_name: The resource name of the Test Base Package. :type package_name: str :param parameters: Parameters supplied to create a Test Base Package. - :type parameters: ~test_base.models.PackageResource + :type parameters: ~azure.mgmt.testbase.models.PackageResource :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. + :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 PackageResource or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~test_base.models.PackageResource] - :raises ~azure.core.exceptions.HttpResponseError: + :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 PackageResource or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.testbase.models.PackageResource] + :raises: ~azure.core.exceptions.HttpResponseError """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.PackageResource] polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["_models.PackageResource"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = self._create_initial( + raw_result = self._create_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, package_name=package_name, parameters=parameters, + api_version=api_version, + content_type=content_type, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): deserialized = self._deserialize('PackageResource', pipeline_response) - if cls: return cls(pipeline_response, deserialized, {}) return deserialized - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = NoPolling() + if polling is True: + polling_method = cast(PollingMethod, ARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: PollingMethod + elif polling is False: polling_method = cast(PollingMethod, NoPolling()) else: polling_method = polling if cont_token: return LROPoller.from_continuation_token( @@ -259,87 +618,90 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}'} # type: ignore + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + + begin_create.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}"} # type: ignore def _update_initial( self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - parameters, # type: "_models.PackageUpdateParameters" - **kwargs # type: Any - ): - # type: (...) -> Optional["_models.PackageResource"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.PackageResource"]] + resource_group_name: str, + test_base_account_name: str, + package_name: str, + parameters: _models.PackageUpdateParameters, + **kwargs: Any + ) -> Optional[_models.PackageResource]: error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._update_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(parameters, 'PackageUpdateParameters') - body_content_kwargs['content'] = body_content - request = self._client.patch(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[Optional[_models.PackageResource]] + + _json = self._serialize.body(parameters, 'PackageUpdateParameters') + + request = build_update_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self._update_initial.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) - response_headers = {} deserialized = None + response_headers = {} if response.status_code == 200: deserialized = self._deserialize('PackageResource', pipeline_response) if response.status_code == 201: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if response.status_code == 202: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if cls: return cls(pipeline_response, deserialized, response_headers) return deserialized - _update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}'} # type: ignore + _update_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}"} # type: ignore + + + @distributed_trace def begin_update( self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - parameters, # type: "_models.PackageUpdateParameters" - **kwargs # type: Any - ): - # type: (...) -> LROPoller["_models.PackageResource"] + resource_group_name: str, + test_base_account_name: str, + package_name: str, + parameters: _models.PackageUpdateParameters, + **kwargs: Any + ) -> LROPoller[_models.PackageResource]: """Update an existing Test Base Package. :param resource_group_name: The name of the resource group that contains the resource. @@ -349,53 +711,62 @@ def begin_update( :param package_name: The resource name of the Test Base Package. :type package_name: str :param parameters: Parameters supplied to update a Test Base Package. - :type parameters: ~test_base.models.PackageUpdateParameters + :type parameters: ~azure.mgmt.testbase.models.PackageUpdateParameters :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. + :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 PackageResource or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~test_base.models.PackageResource] - :raises ~azure.core.exceptions.HttpResponseError: + :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 PackageResource or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.testbase.models.PackageResource] + :raises: ~azure.core.exceptions.HttpResponseError """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.PackageResource] polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["_models.PackageResource"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = self._update_initial( + raw_result = self._update_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, package_name=package_name, parameters=parameters, + api_version=api_version, + content_type=content_type, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): deserialized = self._deserialize('PackageResource', pipeline_response) - if cls: return cls(pipeline_response, deserialized, {}) return deserialized - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = NoPolling() + if polling is True: + polling_method = cast(PollingMethod, ARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: PollingMethod + elif polling is False: polling_method = cast(PollingMethod, NoPolling()) else: polling_method = polling if cont_token: return LROPoller.from_continuation_token( @@ -404,71 +775,73 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}'} # type: ignore + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + + begin_update.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}"} # type: ignore - def _delete_initial( + def _delete_initial( # pylint: disable=inconsistent-return-statements self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> None - cls = kwargs.pop('cls', None) # type: ClsType[None] + resource_group_name: str, + test_base_account_name: str, + package_name: str, + **kwargs: Any + ) -> None: error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self._delete_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[None] - request = self._client.delete(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + + request = build_delete_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + 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) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 202: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if cls: return cls(pipeline_response, None, response_headers) - _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}'} # type: ignore + _delete_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}"} # type: ignore + - def begin_delete( + @distributed_trace + def begin_delete( # pylint: disable=inconsistent-return-statements self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> LROPoller[None] + resource_group_name: str, + test_base_account_name: str, + package_name: str, + **kwargs: Any + ) -> LROPoller[None]: """Deletes a Test Base Package. :param resource_group_name: The name of the resource group that contains the resource. @@ -479,46 +852,53 @@ def begin_delete( :type package_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. + :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. + :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: + :raises: ~azure.core.exceptions.HttpResponseError """ - polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str cls = kwargs.pop('cls', None) # type: ClsType[None] + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = self._delete_initial( + raw_result = self._delete_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, package_name=package_name, + api_version=api_version, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): if cls: return cls(pipeline_response, None, {}) - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = NoPolling() + if polling is True: + polling_method = cast(PollingMethod, ARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: PollingMethod + elif polling is False: polling_method = cast(PollingMethod, NoPolling()) else: polling_method = polling if cont_token: return LROPoller.from_continuation_token( @@ -527,18 +907,18 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}'} # type: ignore + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}"} # type: ignore + + @distributed_trace def get( self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.PackageResource" + resource_group_name: str, + test_base_account_name: str, + package_name: str, + **kwargs: Any + ) -> _models.PackageResource: """Gets a Test Base Package. :param resource_group_name: The name of the resource group that contains the resource. @@ -549,42 +929,44 @@ def get( :type package_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: PackageResource, or the result of cls(response) - :rtype: ~test_base.models.PackageResource + :rtype: ~azure.mgmt.testbase.models.PackageResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.PackageResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.PackageResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('PackageResource', pipeline_response) @@ -593,69 +975,73 @@ def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}'} # type: ignore - def _hard_delete_initial( + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}"} # type: ignore + + + def _hard_delete_initial( # pylint: disable=inconsistent-return-statements self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> None - cls = kwargs.pop('cls', None) # type: ClsType[None] + resource_group_name: str, + test_base_account_name: str, + package_name: str, + **kwargs: Any + ) -> None: error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self._hard_delete_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[None] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = build_hard_delete_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + template_url=self._hard_delete_initial.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 202: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if cls: return cls(pipeline_response, None, response_headers) - _hard_delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/hardDelete'} # type: ignore + _hard_delete_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/hardDelete"} # type: ignore - def begin_hard_delete( + + @distributed_trace + def begin_hard_delete( # pylint: disable=inconsistent-return-statements self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> LROPoller[None] + resource_group_name: str, + test_base_account_name: str, + package_name: str, + **kwargs: Any + ) -> LROPoller[None]: """Hard Delete a Test Base Package. :param resource_group_name: The name of the resource group that contains the resource. @@ -666,46 +1052,53 @@ def begin_hard_delete( :type package_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. + :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. + :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: + :raises: ~azure.core.exceptions.HttpResponseError """ - polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str cls = kwargs.pop('cls', None) # type: ClsType[None] + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = self._hard_delete_initial( + raw_result = self._hard_delete_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, package_name=package_name, + api_version=api_version, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): if cls: return cls(pipeline_response, None, {}) - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = NoPolling() + if polling is True: + polling_method = cast(PollingMethod, ARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: PollingMethod + elif polling is False: polling_method = cast(PollingMethod, NoPolling()) else: polling_method = polling if cont_token: return LROPoller.from_continuation_token( @@ -714,18 +1107,18 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_hard_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/hardDelete'} # type: ignore + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + + begin_hard_delete.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/hardDelete"} # type: ignore + @distributed_trace def get_download_url( self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.DownloadURLResponse" + resource_group_name: str, + test_base_account_name: str, + package_name: str, + **kwargs: Any + ) -> _models.DownloadURLResponse: """Gets the download URL of a package. :param resource_group_name: The name of the resource group that contains the resource. @@ -736,42 +1129,44 @@ def get_download_url( :type package_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: DownloadURLResponse, or the result of cls(response) - :rtype: ~test_base.models.DownloadURLResponse + :rtype: ~azure.mgmt.testbase.models.DownloadURLResponse :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.DownloadURLResponse"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get_download_url.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.DownloadURLResponse] + + + request = build_get_download_url_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + template_url=self.get_download_url.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('DownloadURLResponse', pipeline_response) @@ -780,4 +1175,87 @@ def get_download_url( return cls(pipeline_response, deserialized, {}) return deserialized - get_download_url.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/getDownloadUrl'} # type: ignore + + get_download_url.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/getDownloadUrl"} # type: ignore + + + @distributed_trace + def run_test( # pylint: disable=inconsistent-return-statements + self, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + parameters: Optional[_models.PackageRunTestParameters] = None, + **kwargs: Any + ) -> None: + """Trigger a test run on the package. + + :param resource_group_name: The name of the resource group that contains the resource. + :type resource_group_name: str + :param test_base_account_name: The resource name of the Test Base Account. + :type test_base_account_name: str + :param package_name: The resource name of the Test Base Package. + :type package_name: str + :param parameters: The parameters supplied to the Test Base Package to start a Test Run. + Default value is None. + :type parameters: ~azure.mgmt.testbase.models.PackageRunTestParameters + :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 + } + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[None] + + if parameters is not None: + _json = self._serialize.body(parameters, 'PackageRunTestParameters') + else: + _json = None + + request = build_run_test_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self.run_test.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # 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) + + response_headers = {} + if response.status_code == 202: + response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + + + if cls: + return cls(pipeline_response, None, response_headers) + + run_test.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/runTest"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_patch.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_patch.py new file mode 100644 index 000000000000..0ad201a8c586 --- /dev/null +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_patch.py @@ -0,0 +1,19 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" +from typing import List + +__all__: List[str] = [] # Add all objects you want publicly available to users at this package level + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_skus_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_skus_operations.py index 74dfb7909209..99261d2ebcd6 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_skus_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_skus_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,91 +6,131 @@ # 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 TYPE_CHECKING -import warnings +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar + +from msrest import Serializer from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse +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 .._vendor import _convert_request, _format_url_section +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( + subscription_id: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/providers/Microsoft.TestBase/skus") + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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 SkusOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class SkusOperations(object): - """SkusOperations operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. - - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`skus` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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, - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.TestBaseAccountSKUListResult"] + **kwargs: Any + ) -> Iterable[_models.TestBaseAccountSKUListResult]: """Lists the available SKUs of Test Base Account 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 TestBaseAccountSKUListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.TestBaseAccountSKUListResult] + :return: An iterator like instance of either TestBaseAccountSKUListResult or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.TestBaseAccountSKUListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountSKUListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountSKUListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + 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) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('TestBaseAccountSKUListResult', pipeline_response) + deserialized = self._deserialize("TestBaseAccountSKUListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -98,17 +139,22 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.TestBase/skus'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/providers/Microsoft.TestBase/skus"} # type: ignore diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_base_accounts_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_base_accounts_operations.py index 57e0ea03db9d..2ad2751e4c1a 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_base_accounts_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_base_accounts_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,99 +6,476 @@ # 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 TYPE_CHECKING -import warnings +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar, Union, cast + +from msrest import Serializer from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse +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 .._vendor import _convert_request, _format_url_section +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_subscription_request( + subscription_id: str, + *, + get_deleted: Optional[bool] = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/providers/Microsoft.TestBase/testBaseAccounts") + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + if get_deleted is not None: + _params['getDeleted'] = _SERIALIZER.query("get_deleted", get_deleted, 'bool') + _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( + subscription_id: str, + resource_group_name: str, + *, + get_deleted: Optional[bool] = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts") # 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 = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + if get_deleted is not None: + _params['getDeleted'] = _SERIALIZER.query("get_deleted", get_deleted, 'bool') + _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_initial( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + *, + json: Optional[_models.TestBaseAccountResource] = None, + content: Any = None, + restore: Optional[bool] = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', None)) # type: Optional[str] + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + if restore is not None: + _params['restore'] = _SERIALIZER.query("restore", restore, 'bool') + _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, + json=json, + content=content, + **kwargs + ) + + +def build_update_request_initial( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + *, + json: Optional[_models.TestBaseAccountUpdateParameters] = None, + content: Any = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', None)) # type: Optional[str] + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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, + json=json, + content=content, + **kwargs + ) + + +def build_delete_request_initial( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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 + ) + + +def build_get_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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_offboard_request_initial( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/offboard") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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_get_file_upload_url_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + *, + json: Optional[_models.GetFileUploadURLParameters] = None, + content: Any = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', None)) # type: Optional[str] + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/getFileUploadUrl") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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, + json=json, + content=content, + **kwargs + ) + + +def build_check_package_name_availability_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + *, + json: Optional[_models.PackageCheckNameAvailabilityParameters] = None, + content: Any = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', None)) # type: Optional[str] + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/checkPackageNameAvailability") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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, + json=json, + content=content, + **kwargs + ) + +class TestBaseAccountsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class TestBaseAccountsOperations(object): - """TestBaseAccountsOperations operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. - - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`test_base_accounts` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_subscription( self, - get_deleted=None, # type: Optional[bool] - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.TestBaseAccountListResult"] + get_deleted: Optional[bool] = None, + **kwargs: Any + ) -> Iterable[_models.TestBaseAccountListResult]: """Lists all the Test Base Accounts in a subscription. This API is required by ARM guidelines. :param get_deleted: The flag indicating if we need to include the Test Base Accounts which were - soft deleted before. + soft deleted before. Default value is None. :type get_deleted: bool :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either TestBaseAccountListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.TestBaseAccountListResult] + :return: An iterator like instance of either TestBaseAccountListResult or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.TestBaseAccountListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list_by_subscription.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - if get_deleted is not None: - query_parameters['getDeleted'] = self._serialize.query("get_deleted", get_deleted, 'bool') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + get_deleted=get_deleted, + template_url=self.list_by_subscription.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + get_deleted=get_deleted, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('TestBaseAccountListResult', pipeline_response) + deserialized = self._deserialize("TestBaseAccountListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -106,76 +484,89 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.TestBase/testBaseAccounts'} # type: ignore + list_by_subscription.metadata = {'url': "/subscriptions/{subscriptionId}/providers/Microsoft.TestBase/testBaseAccounts"} # type: ignore + @distributed_trace def list_by_resource_group( self, - resource_group_name, # type: str - get_deleted=None, # type: Optional[bool] - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.TestBaseAccountListResult"] + resource_group_name: str, + get_deleted: Optional[bool] = None, + **kwargs: Any + ) -> Iterable[_models.TestBaseAccountListResult]: """Lists all the Test Base Accounts in a resource group. :param resource_group_name: The name of the resource group that contains the resource. :type resource_group_name: str :param get_deleted: The flag indicating if we need to include the Test Base Accounts which were - soft deleted before. + soft deleted before. Default value is None. :type get_deleted: bool :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either TestBaseAccountListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.TestBaseAccountListResult] + :return: An iterator like instance of either TestBaseAccountListResult or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.TestBaseAccountListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list_by_resource_group.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - if get_deleted is not None: - query_parameters['getDeleted'] = self._serialize.query("get_deleted", get_deleted, 'bool') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_resource_group_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + api_version=api_version, + get_deleted=get_deleted, + 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) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_by_resource_group_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + api_version=api_version, + get_deleted=get_deleted, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('TestBaseAccountListResult', pipeline_response) + deserialized = self._deserialize("TestBaseAccountListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -184,70 +575,73 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.TestBase/testBaseAccounts'} # type: ignore + list_by_resource_group.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts"} # type: ignore def _create_initial( self, - resource_group_name, # type: str - test_base_account_name, # type: str - parameters, # type: "_models.TestBaseAccountResource" - restore=None, # type: Optional[bool] - **kwargs # type: Any - ): - # type: (...) -> "_models.TestBaseAccountResource" - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountResource"] + resource_group_name: str, + test_base_account_name: str, + parameters: _models.TestBaseAccountResource, + restore: Optional[bool] = None, + **kwargs: Any + ) -> _models.TestBaseAccountResource: error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._create_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - if restore is not None: - query_parameters['restore'] = self._serialize.query("restore", restore, 'bool') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(parameters, 'TestBaseAccountResource') - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountResource] + + _json = self._serialize.body(parameters, 'TestBaseAccountResource') + + request = build_create_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + content_type=content_type, + json=_json, + restore=restore, + template_url=self._create_initial.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 200: @@ -255,23 +649,26 @@ def _create_initial( if response.status_code == 201: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('TestBaseAccountResource', pipeline_response) if cls: return cls(pipeline_response, deserialized, response_headers) return deserialized - _create_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}'} # type: ignore + _create_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}"} # type: ignore + + + @distributed_trace def begin_create( self, - resource_group_name, # type: str - test_base_account_name, # type: str - parameters, # type: "_models.TestBaseAccountResource" - restore=None, # type: Optional[bool] - **kwargs # type: Any - ): - # type: (...) -> LROPoller["_models.TestBaseAccountResource"] + resource_group_name: str, + test_base_account_name: str, + parameters: _models.TestBaseAccountResource, + restore: Optional[bool] = None, + **kwargs: Any + ) -> LROPoller[_models.TestBaseAccountResource]: """Create or replace (overwrite/recreate, with potential downtime) a Test Base Account in the specified subscription. @@ -280,55 +677,65 @@ def begin_create( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :param parameters: Parameters supplied to create a Test Base Account. - :type parameters: ~test_base.models.TestBaseAccountResource + :type parameters: ~azure.mgmt.testbase.models.TestBaseAccountResource :param restore: The flag indicating if we would like to restore the Test Base Accounts which - were soft deleted before. + were soft deleted before. Default value is None. :type restore: 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. + :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 TestBaseAccountResource or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~test_base.models.TestBaseAccountResource] - :raises ~azure.core.exceptions.HttpResponseError: + :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 TestBaseAccountResource or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.testbase.models.TestBaseAccountResource] + :raises: ~azure.core.exceptions.HttpResponseError """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountResource] polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountResource"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = self._create_initial( + raw_result = self._create_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, parameters=parameters, restore=restore, + api_version=api_version, + content_type=content_type, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): deserialized = self._deserialize('TestBaseAccountResource', pipeline_response) - if cls: return cls(pipeline_response, deserialized, {}) return deserialized - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = NoPolling() + if polling is True: + polling_method = cast(PollingMethod, ARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: PollingMethod + elif polling is False: polling_method = cast(PollingMethod, NoPolling()) else: polling_method = polling if cont_token: return LROPoller.from_continuation_token( @@ -337,84 +744,87 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}'} # type: ignore + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + + begin_create.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}"} # type: ignore def _update_initial( self, - resource_group_name, # type: str - test_base_account_name, # type: str - parameters, # type: "_models.TestBaseAccountUpdateParameters" - **kwargs # type: Any - ): - # type: (...) -> Optional["_models.TestBaseAccountResource"] - cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.TestBaseAccountResource"]] + resource_group_name: str, + test_base_account_name: str, + parameters: _models.TestBaseAccountUpdateParameters, + **kwargs: Any + ) -> Optional[_models.TestBaseAccountResource]: error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._update_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(parameters, 'TestBaseAccountUpdateParameters') - body_content_kwargs['content'] = body_content - request = self._client.patch(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[Optional[_models.TestBaseAccountResource]] + + _json = self._serialize.body(parameters, 'TestBaseAccountUpdateParameters') + + request = build_update_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self._update_initial.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) - response_headers = {} deserialized = None + response_headers = {} if response.status_code == 200: deserialized = self._deserialize('TestBaseAccountResource', pipeline_response) if response.status_code == 201: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if response.status_code == 202: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if cls: return cls(pipeline_response, deserialized, response_headers) return deserialized - _update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}'} # type: ignore + _update_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}"} # type: ignore + + + @distributed_trace def begin_update( self, - resource_group_name, # type: str - test_base_account_name, # type: str - parameters, # type: "_models.TestBaseAccountUpdateParameters" - **kwargs # type: Any - ): - # type: (...) -> LROPoller["_models.TestBaseAccountResource"] + resource_group_name: str, + test_base_account_name: str, + parameters: _models.TestBaseAccountUpdateParameters, + **kwargs: Any + ) -> LROPoller[_models.TestBaseAccountResource]: """Update an existing Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -422,51 +832,61 @@ def begin_update( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :param parameters: Parameters supplied to update a Test Base Account. - :type parameters: ~test_base.models.TestBaseAccountUpdateParameters + :type parameters: ~azure.mgmt.testbase.models.TestBaseAccountUpdateParameters :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. + :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 TestBaseAccountResource or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~test_base.models.TestBaseAccountResource] - :raises ~azure.core.exceptions.HttpResponseError: + :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 TestBaseAccountResource or the result of + cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.testbase.models.TestBaseAccountResource] + :raises: ~azure.core.exceptions.HttpResponseError """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountResource] polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountResource"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = self._update_initial( + raw_result = self._update_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, parameters=parameters, + api_version=api_version, + content_type=content_type, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): deserialized = self._deserialize('TestBaseAccountResource', pipeline_response) - if cls: return cls(pipeline_response, deserialized, {}) return deserialized - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = NoPolling() + if polling is True: + polling_method = cast(PollingMethod, ARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: PollingMethod + elif polling is False: polling_method = cast(PollingMethod, NoPolling()) else: polling_method = polling if cont_token: return LROPoller.from_continuation_token( @@ -475,68 +895,70 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}'} # type: ignore + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - def _delete_initial( + begin_update.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}"} # type: ignore + + def _delete_initial( # pylint: disable=inconsistent-return-statements self, - resource_group_name, # type: str - test_base_account_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> None - cls = kwargs.pop('cls', None) # type: ClsType[None] + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any + ) -> None: error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self._delete_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[None] - request = self._client.delete(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + + request = build_delete_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + 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) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 202: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if cls: return cls(pipeline_response, None, response_headers) - _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}'} # type: ignore + _delete_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}"} # type: ignore + - def begin_delete( + @distributed_trace + def begin_delete( # pylint: disable=inconsistent-return-statements self, - resource_group_name, # type: str - test_base_account_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> LROPoller[None] + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any + ) -> LROPoller[None]: """Deletes a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -545,44 +967,52 @@ def begin_delete( :type test_base_account_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. + :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. + :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: + :raises: ~azure.core.exceptions.HttpResponseError """ - polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str cls = kwargs.pop('cls', None) # type: ClsType[None] + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = self._delete_initial( + raw_result = self._delete_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, + api_version=api_version, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): if cls: return cls(pipeline_response, None, {}) - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = NoPolling() + if polling is True: + polling_method = cast(PollingMethod, ARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: PollingMethod + elif polling is False: polling_method = cast(PollingMethod, NoPolling()) else: polling_method = polling if cont_token: return LROPoller.from_continuation_token( @@ -591,17 +1021,17 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}'} # type: ignore + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + + begin_delete.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}"} # type: ignore + @distributed_trace def get( self, - resource_group_name, # type: str - test_base_account_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.TestBaseAccountResource" + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any + ) -> _models.TestBaseAccountResource: """Gets a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -610,41 +1040,43 @@ def get( :type test_base_account_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: TestBaseAccountResource, or the result of cls(response) - :rtype: ~test_base.models.TestBaseAccountResource + :rtype: ~azure.mgmt.testbase.models.TestBaseAccountResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('TestBaseAccountResource', pipeline_response) @@ -653,66 +1085,70 @@ def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}'} # type: ignore - def _offboard_initial( + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}"} # type: ignore + + + def _offboard_initial( # pylint: disable=inconsistent-return-statements self, - resource_group_name, # type: str - test_base_account_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> None - cls = kwargs.pop('cls', None) # type: ClsType[None] + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any + ) -> None: error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self._offboard_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[None] + + + request = build_offboard_request_initial( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=self._offboard_initial.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) response_headers = {} if response.status_code == 202: response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) response_headers['Location']=self._deserialize('str', response.headers.get('Location')) + if cls: return cls(pipeline_response, None, response_headers) - _offboard_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/offboard'} # type: ignore + _offboard_initial.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/offboard"} # type: ignore + - def begin_offboard( + @distributed_trace + def begin_offboard( # pylint: disable=inconsistent-return-statements self, - resource_group_name, # type: str - test_base_account_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> LROPoller[None] + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any + ) -> LROPoller[None]: """Offboard a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -721,44 +1157,52 @@ def begin_offboard( :type test_base_account_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. + :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. + :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: + :raises: ~azure.core.exceptions.HttpResponseError """ - polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str cls = kwargs.pop('cls', None) # type: ClsType[None] + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval ) cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] if cont_token is None: - raw_result = self._offboard_initial( + raw_result = self._offboard_initial( # type: ignore resource_group_name=resource_group_name, test_base_account_name=test_base_account_name, + api_version=api_version, cls=lambda x,y,z: x, + headers=_headers, + params=_params, **kwargs ) - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) def get_long_running_output(pipeline_response): if cls: return cls(pipeline_response, None, {}) - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = NoPolling() + if polling is True: + polling_method = cast(PollingMethod, ARMPolling( + lro_delay, + lro_options={'final-state-via': 'azure-async-operation'}, + + **kwargs + )) # type: PollingMethod + elif polling is False: polling_method = cast(PollingMethod, NoPolling()) else: polling_method = polling if cont_token: return LROPoller.from_continuation_token( @@ -767,18 +1211,18 @@ def get_long_running_output(pipeline_response): client=self._client, deserialization_callback=get_long_running_output ) - else: - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_offboard.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/offboard'} # type: ignore + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_offboard.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/offboard"} # type: ignore + + @distributed_trace def get_file_upload_url( self, - resource_group_name, # type: str - test_base_account_name, # type: str - parameters=None, # type: Optional["_models.GetFileUploadURLParameters"] - **kwargs # type: Any - ): - # type: (...) -> "_models.FileUploadURLResponse" + resource_group_name: str, + test_base_account_name: str, + parameters: Optional[_models.GetFileUploadURLParameters] = None, + **kwargs: Any + ) -> _models.FileUploadURLResponse: """Gets the file upload URL of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -786,52 +1230,54 @@ def get_file_upload_url( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :param parameters: Parameters supplied to the Test Base Account GetFileUploadURL operation. - :type parameters: ~test_base.models.GetFileUploadURLParameters + Default value is None. + :type parameters: ~azure.mgmt.testbase.models.GetFileUploadURLParameters :keyword callable cls: A custom type or function that will be passed the direct response :return: FileUploadURLResponse, or the result of cls(response) - :rtype: ~test_base.models.FileUploadURLResponse + :rtype: ~azure.mgmt.testbase.models.FileUploadURLResponse :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.FileUploadURLResponse"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.get_file_upload_url.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.FileUploadURLResponse] - body_content_kwargs = {} # type: Dict[str, Any] if parameters is not None: - body_content = self._serialize.body(parameters, 'GetFileUploadURLParameters') + _json = self._serialize.body(parameters, 'GetFileUploadURLParameters') else: - body_content = None - body_content_kwargs['content'] = body_content - request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + _json = None + + request = build_get_file_upload_url_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self.get_file_upload_url.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('FileUploadURLResponse', pipeline_response) @@ -840,16 +1286,18 @@ def get_file_upload_url( return cls(pipeline_response, deserialized, {}) return deserialized - get_file_upload_url.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/getFileUploadUrl'} # type: ignore + get_file_upload_url.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/getFileUploadUrl"} # type: ignore + + + @distributed_trace def check_package_name_availability( self, - resource_group_name, # type: str - test_base_account_name, # type: str - parameters, # type: "_models.PackageCheckNameAvailabilityParameters" - **kwargs # type: Any - ): - # type: (...) -> "_models.CheckNameAvailabilityResult" + resource_group_name: str, + test_base_account_name: str, + parameters: _models.PackageCheckNameAvailabilityParameters, + **kwargs: Any + ) -> _models.CheckNameAvailabilityResult: """Checks that the Test Base Package name and version is valid and is not already in use. :param resource_group_name: The name of the resource group that contains the resource. @@ -858,49 +1306,50 @@ def check_package_name_availability( :type test_base_account_name: str :param parameters: Parameters supplied to the Test Base Package CheckNameAvailability operation. - :type parameters: ~test_base.models.PackageCheckNameAvailabilityParameters + :type parameters: ~azure.mgmt.testbase.models.PackageCheckNameAvailabilityParameters :keyword callable cls: A custom type or function that will be passed the direct response :return: CheckNameAvailabilityResult, or the result of cls(response) - :rtype: ~test_base.models.CheckNameAvailabilityResult + :rtype: ~azure.mgmt.testbase.models.CheckNameAvailabilityResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.CheckNameAvailabilityResult"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.check_package_name_availability.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(parameters, 'PackageCheckNameAvailabilityParameters') - body_content_kwargs['content'] = body_content - request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.CheckNameAvailabilityResult] + + _json = self._serialize.body(parameters, 'PackageCheckNameAvailabilityParameters') + + request = build_check_package_name_availability_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self.check_package_name_availability.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('CheckNameAvailabilityResult', pipeline_response) @@ -909,4 +1358,6 @@ def check_package_name_availability( return cls(pipeline_response, deserialized, {}) return deserialized - check_package_name_availability.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/checkPackageNameAvailability'} # type: ignore + + check_package_name_availability.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/checkPackageNameAvailability"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_results_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_results_operations.py index c95a21daf7ca..9df9eb41dc77 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_results_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_results_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,56 +6,273 @@ # 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 TYPE_CHECKING -import warnings +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar, Union + +from msrest import Serializer from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse +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 .._vendor import _convert_request, _format_url_section +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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + *, + os_update_type: Union[str, "_models.OsUpdateType"], + filter: Optional[str] = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + _params['osUpdateType'] = _SERIALIZER.query("os_update_type", os_update_type, 'str') + if filter is not None: + _params['$filter'] = _SERIALIZER.query("filter", filter, 'str') + _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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + test_result_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + "testResultName": _SERIALIZER.url("test_result_name", test_result_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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_download_url_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + test_result_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/getDownloadUrl") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + "testResultName": _SERIALIZER.url("test_result_name", test_result_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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_get_video_download_url_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + test_result_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/getVideoDownloadUrl") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + "testResultName": _SERIALIZER.url("test_result_name", test_result_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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_get_console_log_download_url_request( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + test_result_name: str, + *, + json: Optional[_models.TestResultConsoleLogDownloadURLParameters] = None, + content: Any = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', None)) # type: Optional[str] + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/getConsoleLogDownloadUrl") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "packageName": _SERIALIZER.url("package_name", package_name, 'str'), + "testResultName": _SERIALIZER.url("test_result_name", test_result_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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, + json=json, + content=content, + **kwargs + ) + +class TestResultsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class TestResultsOperations(object): - """TestResultsOperations operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. - - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`test_results` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - os_update_type, # type: Union[str, "_models.OsUpdateType"] - filter=None, # type: Optional[str] - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.TestResultListResult"] + resource_group_name: str, + test_base_account_name: str, + package_name: str, + os_update_type: Union[str, "_models.OsUpdateType"], + filter: Optional[str] = None, + **kwargs: Any + ) -> Iterable[_models.TestResultListResult]: """Lists all the Test Results with specified OS Update type for a Test Base Package. Can be filtered by osName, releaseName, flightingRing, buildVersion, buildRevision. @@ -65,53 +283,64 @@ def list( :param package_name: The resource name of the Test Base Package. :type package_name: str :param os_update_type: The type of the OS Update. - :type os_update_type: str or ~test_base.models.OsUpdateType - :param filter: Odata filter. + :type os_update_type: str or ~azure.mgmt.testbase.models.OsUpdateType + :param filter: Odata filter. Default value is None. :type filter: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either TestResultListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.TestResultListResult] + :return: An iterator like instance of either TestResultListResult or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.TestResultListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestResultListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestResultListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['osUpdateType'] = self._serialize.query("os_update_type", os_update_type, 'str') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + os_update_type=os_update_type, + filter=filter, + template_url=self.list.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + api_version=api_version, + os_update_type=os_update_type, + filter=filter, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('TestResultListResult', pipeline_response) + deserialized = self._deserialize("TestResultListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -120,30 +349,35 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults"} # type: ignore + @distributed_trace def get( self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - test_result_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.TestResultResource" + resource_group_name: str, + test_base_account_name: str, + package_name: str, + test_result_name: str, + **kwargs: Any + ) -> _models.TestResultResource: """Get the Test Result by Id with specified OS Update type for a Test Base Package. :param resource_group_name: The name of the resource group that contains the resource. @@ -152,47 +386,49 @@ def get( :type test_base_account_name: str :param package_name: The resource name of the Test Base Package. :type package_name: str - :param test_result_name: The Test Result Name. It equals to {osName}-{TestResultId} string. + :param test_result_name: The Test Result Name. It equals to TestResult-{TestResultId} string. :type test_result_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: TestResultResource, or the result of cls(response) - :rtype: ~test_base.models.TestResultResource + :rtype: ~azure.mgmt.testbase.models.TestResultResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestResultResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'testResultName': self._serialize.url("test_result_name", test_result_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestResultResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + test_result_name=test_result_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('TestResultResource', pipeline_response) @@ -201,17 +437,19 @@ def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}'} # type: ignore + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}"} # type: ignore + + + @distributed_trace def get_download_url( self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - test_result_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.DownloadURLResponse" + resource_group_name: str, + test_base_account_name: str, + package_name: str, + test_result_name: str, + **kwargs: Any + ) -> _models.DownloadURLResponse: """Gets the download URL of the test result. :param resource_group_name: The name of the resource group that contains the resource. @@ -220,47 +458,49 @@ def get_download_url( :type test_base_account_name: str :param package_name: The resource name of the Test Base Package. :type package_name: str - :param test_result_name: The Test Result Name. It equals to {osName}-{TestResultId} string. + :param test_result_name: The Test Result Name. It equals to TestResult-{TestResultId} string. :type test_result_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: DownloadURLResponse, or the result of cls(response) - :rtype: ~test_base.models.DownloadURLResponse + :rtype: ~azure.mgmt.testbase.models.DownloadURLResponse :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.DownloadURLResponse"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get_download_url.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'testResultName': self._serialize.url("test_result_name", test_result_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.DownloadURLResponse] + + + request = build_get_download_url_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + test_result_name=test_result_name, + api_version=api_version, + template_url=self.get_download_url.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('DownloadURLResponse', pipeline_response) @@ -269,17 +509,19 @@ def get_download_url( return cls(pipeline_response, deserialized, {}) return deserialized - get_download_url.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/getDownloadUrl'} # type: ignore + get_download_url.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/getDownloadUrl"} # type: ignore + + + @distributed_trace def get_video_download_url( self, - resource_group_name, # type: str - test_base_account_name, # type: str - package_name, # type: str - test_result_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.DownloadURLResponse" + resource_group_name: str, + test_base_account_name: str, + package_name: str, + test_result_name: str, + **kwargs: Any + ) -> _models.DownloadURLResponse: """Gets the download URL of the test execution screen recording. :param resource_group_name: The name of the resource group that contains the resource. @@ -288,47 +530,128 @@ def get_video_download_url( :type test_base_account_name: str :param package_name: The resource name of the Test Base Package. :type package_name: str - :param test_result_name: The Test Result Name. It equals to {osName}-{TestResultId} string. + :param test_result_name: The Test Result Name. It equals to TestResult-{TestResultId} string. :type test_result_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: DownloadURLResponse, or the result of cls(response) - :rtype: ~test_base.models.DownloadURLResponse + :rtype: ~azure.mgmt.testbase.models.DownloadURLResponse :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.DownloadURLResponse"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get_video_download_url.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'packageName': self._serialize.url("package_name", package_name, 'str'), - 'testResultName': self._serialize.url("test_result_name", test_result_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.DownloadURLResponse] + + + request = build_get_video_download_url_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + test_result_name=test_result_name, + api_version=api_version, + template_url=self.get_video_download_url.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) + response = pipeline_response.http_response - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + 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('DownloadURLResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + return deserialized + + get_video_download_url.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/getVideoDownloadUrl"} # type: ignore + + + @distributed_trace + def get_console_log_download_url( + self, + resource_group_name: str, + test_base_account_name: str, + package_name: str, + test_result_name: str, + parameters: _models.TestResultConsoleLogDownloadURLParameters, + **kwargs: Any + ) -> _models.DownloadURLResponse: + """Gets the download URL of the test execution console log file. + + :param resource_group_name: The name of the resource group that contains the resource. + :type resource_group_name: str + :param test_base_account_name: The resource name of the Test Base Account. + :type test_base_account_name: str + :param package_name: The resource name of the Test Base Package. + :type package_name: str + :param test_result_name: The Test Result Name. It equals to TestResult-{TestResultId} string. + :type test_result_name: str + :param parameters: Parameters supplied to the Test Result GetConsoleLogDownloadUrl operation. + :type parameters: ~azure.mgmt.testbase.models.TestResultConsoleLogDownloadURLParameters + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DownloadURLResponse, or the result of cls(response) + :rtype: ~azure.mgmt.testbase.models.DownloadURLResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + 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 = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + content_type = kwargs.pop('content_type', _headers.pop('Content-Type', "application/json")) # type: Optional[str] + cls = kwargs.pop('cls', None) # type: ClsType[_models.DownloadURLResponse] + + _json = self._serialize.body(parameters, 'TestResultConsoleLogDownloadURLParameters') + + request = build_get_console_log_download_url_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + package_name=package_name, + test_result_name=test_result_name, + api_version=api_version, + content_type=content_type, + json=_json, + template_url=self.get_console_log_download_url.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('DownloadURLResponse', pipeline_response) @@ -337,4 +660,6 @@ def get_video_download_url( return cls(pipeline_response, deserialized, {}) return deserialized - get_video_download_url.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/getVideoDownloadUrl'} # type: ignore + + get_console_log_download_url.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/packages/{packageName}/testResults/{testResultName}/getConsoleLogDownloadUrl"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_summaries_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_summaries_operations.py index 0418f24077a7..fb8de26df3c4 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_summaries_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_summaries_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,53 +6,129 @@ # 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 TYPE_CHECKING -import warnings +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar + +from msrest import Serializer from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse +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 .._vendor import _convert_request, _format_url_section +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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testSummaries") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + test_summary_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testSummaries/{testSummaryName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "testSummaryName": _SERIALIZER.url("test_summary_name", test_summary_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + # Construct parameters + _params['api-version'] = _SERIALIZER.query("api_version", api_version, 'str') - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + # Construct headers + _headers['Accept'] = _SERIALIZER.header("accept", accept, 'str') -class TestSummariesOperations(object): - """TestSummariesOperations operations. + return HttpRequest( + method="GET", + url=_url, + params=_params, + headers=_headers, + **kwargs + ) - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. +class TestSummariesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`test_summaries` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name, # type: str - test_base_account_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.TestSummaryListResult"] + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any + ) -> Iterable[_models.TestSummaryListResult]: """Lists the Test Summaries of all the packages under a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -59,45 +136,54 @@ def list( :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either TestSummaryListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.TestSummaryListResult] + :return: An iterator like instance of either TestSummaryListResult or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.TestSummaryListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestSummaryListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestSummaryListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + 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) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('TestSummaryListResult', pipeline_response) + deserialized = self._deserialize("TestSummaryListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -106,29 +192,34 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testSummaries'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testSummaries"} # type: ignore + @distributed_trace def get( self, - resource_group_name, # type: str - test_base_account_name, # type: str - test_summary_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.TestSummaryResource" + resource_group_name: str, + test_base_account_name: str, + test_summary_name: str, + **kwargs: Any + ) -> _models.TestSummaryResource: """Gets a Test Summary with specific name from all the Test Summaries of all the packages under a Test Base Account. @@ -140,42 +231,44 @@ def get( :type test_summary_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: TestSummaryResource, or the result of cls(response) - :rtype: ~test_base.models.TestSummaryResource + :rtype: ~azure.mgmt.testbase.models.TestSummaryResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestSummaryResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'testSummaryName': self._serialize.url("test_summary_name", test_summary_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestSummaryResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + test_summary_name=test_summary_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('TestSummaryResource', pipeline_response) @@ -184,4 +277,6 @@ def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testSummaries/{testSummaryName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testSummaries/{testSummaryName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_types_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_types_operations.py index 2dedfa934e6b..5f58a13aa8fe 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_types_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_test_types_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,53 +6,129 @@ # 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 TYPE_CHECKING -import warnings +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar + +from msrest import Serializer from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse +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 .._vendor import _convert_request, _format_url_section +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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testTypes") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # 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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + test_type_resource_name: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testTypes/{testTypeResourceName}") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + "testTypeResourceName": _SERIALIZER.url("test_type_resource_name", test_type_resource_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + # Construct parameters + _params['api-version'] = _SERIALIZER.query("api_version", api_version, 'str') - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + # Construct headers + _headers['Accept'] = _SERIALIZER.header("accept", accept, 'str') -class TestTypesOperations(object): - """TestTypesOperations operations. + return HttpRequest( + method="GET", + url=_url, + params=_params, + headers=_headers, + **kwargs + ) - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. +class TestTypesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`test_types` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name, # type: str - test_base_account_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.TestTypeListResult"] + resource_group_name: str, + test_base_account_name: str, + **kwargs: Any + ) -> Iterable[_models.TestTypeListResult]: """Lists all the test types of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -60,44 +137,52 @@ def list( :type test_base_account_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either TestTypeListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.TestTypeListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.TestTypeListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestTypeListResult"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestTypeListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + 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) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('TestTypeListResult', pipeline_response) + deserialized = self._deserialize("TestTypeListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -106,29 +191,34 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testTypes'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testTypes"} # type: ignore + @distributed_trace def get( self, - resource_group_name, # type: str - test_base_account_name, # type: str - test_type_resource_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.TestTypeResource" + resource_group_name: str, + test_base_account_name: str, + test_type_resource_name: str, + **kwargs: Any + ) -> _models.TestTypeResource: """Gets a test type of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. @@ -139,42 +229,44 @@ def get( :type test_type_resource_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: TestTypeResource, or the result of cls(response) - :rtype: ~test_base.models.TestTypeResource + :rtype: ~azure.mgmt.testbase.models.TestTypeResource :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestTypeResource"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - 'testTypeResourceName': self._serialize.url("test_type_resource_name", test_type_resource_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) + error_map.update(kwargs.pop('error_map', {}) or {}) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestTypeResource] + + + request = build_get_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + test_type_resource_name=test_type_resource_name, + 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) # type: ignore - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # type: ignore # 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, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('TestTypeResource', pipeline_response) @@ -183,4 +275,6 @@ def get( return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testTypes/{testTypeResourceName}'} # type: ignore + + get.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/testTypes/{testTypeResourceName}"} # type: ignore + diff --git a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_usage_operations.py b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_usage_operations.py index 90299c7e1e10..c5836a317a03 100644 --- a/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_usage_operations.py +++ b/sdk/testbase/azure-mgmt-testbase/azure/mgmt/testbase/operations/_usage_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,104 +6,154 @@ # 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 TYPE_CHECKING -import warnings +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar + +from msrest import Serializer from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse +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 .._vendor import _convert_request, _format_url_section +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( + subscription_id: str, + resource_group_name: str, + test_base_account_name: str, + *, + filter: Optional[str] = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + accept = _headers.pop('Accept', "application/json") + + # Construct URL + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/usages") # 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'), + "testBaseAccountName": _SERIALIZER.url("test_base_account_name", test_base_account_name, 'str'), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + if filter is not None: + _params['$filter'] = _SERIALIZER.query("filter", filter, 'str') + _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 UsageOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class UsageOperations(object): - """UsageOperations operations. - - You should not instantiate this class directly. Instead, you should create a Client instance that - instantiates it for you and attaches it as an attribute. - - :ivar models: Alias to model classes used in this operation group. - :type models: ~test_base.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. + Instead, you should access the following operations through + :class:`~azure.mgmt.testbase.TestBase`'s + :attr:`usage` attribute. """ models = _models - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config + 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_group_name, # type: str - test_base_account_name, # type: str - filter=None, # type: Optional[str] - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.TestBaseAccountUsageDataList"] + resource_group_name: str, + test_base_account_name: str, + filter: Optional[str] = None, + **kwargs: Any + ) -> Iterable[_models.TestBaseAccountUsageDataList]: """Lists the usage data of a Test Base Account. :param resource_group_name: The name of the resource group that contains the resource. :type resource_group_name: str :param test_base_account_name: The resource name of the Test Base Account. :type test_base_account_name: str - :param filter: Odata filter. + :param filter: Odata filter. Default value is None. :type filter: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either TestBaseAccountUsageDataList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~test_base.models.TestBaseAccountUsageDataList] + :return: An iterator like instance of either TestBaseAccountUsageDataList or the result of + cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.testbase.models.TestBaseAccountUsageDataList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.TestBaseAccountUsageDataList"] + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop('api_version', _params.pop('api-version', "2022-04-01-preview")) # type: str + cls = kwargs.pop('cls', None) # type: ClsType[_models.TestBaseAccountUsageDataList] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-16-preview" - accept = "application/json" - + error_map.update(kwargs.pop('error_map', {}) or {}) def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'testBaseAccountName': self._serialize.url("test_base_account_name", test_base_account_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + filter=filter, + template_url=self.list.metadata['url'], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) + + request = build_list_request( + subscription_id=self._config.subscription_id, + resource_group_name=resource_group_name, + test_base_account_name=test_base_account_name, + api_version=api_version, + filter=filter, + template_url=next_link, + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize('TestBaseAccountUsageDataList', pipeline_response) + deserialized = self._deserialize("TestBaseAccountUsageDataList", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -111,17 +162,22 @@ def extract_data(pipeline_response): def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access + request, + stream=False, + **kwargs + ) response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/usages'} # type: ignore + list.metadata = {'url': "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.TestBase/testBaseAccounts/{testBaseAccountName}/usages"} # type: ignore