diff --git a/ChangeLog.md b/ChangeLog.md index 61446c04fc8..1b576165187 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -7,6 +7,7 @@ Modelerfour version: 4.15.400 **New Features** - Add `azure-mgmt-core` as a dependency in the generated setup.py file #738 +- Correct typing for `credential` when default credential policy type is `AzureKeyCredentialPolicy` #744 ### 2020-08-04 - 5.1.0-preview.6 Autorest Core version: 3.0.6287 diff --git a/autorest/codegen/models/__init__.py b/autorest/codegen/models/__init__.py index c52dd8f40b4..8d69f1c84c9 100644 --- a/autorest/codegen/models/__init__.py +++ b/autorest/codegen/models/__init__.py @@ -5,7 +5,8 @@ # -------------------------------------------------------------------------- from typing import Any, Dict from .base_model import BaseModel -from .code_model import CodeModel, CredentialSchema +from .code_model import CodeModel +from .credential_schema import AzureKeyCredentialSchema, TokenCredentialSchema from .object_schema import ObjectSchema from .dictionary_schema import DictionarySchema from .list_schema import ListSchema @@ -25,10 +26,10 @@ __all__ = [ + "AzureKeyCredentialSchema", "BaseModel", "BaseSchema", "CodeModel", - "CredentialSchema", "ConstantSchema", "ObjectSchema", "DictionarySchema", @@ -45,7 +46,8 @@ "ParameterList", "OperationGroup", "Property", - "SchemaResponse" + "SchemaResponse", + "TokenCredentialSchema", ] def _generate_as_object_schema(yaml_data: Dict[str, Any]) -> bool: diff --git a/autorest/codegen/models/code_model.py b/autorest/codegen/models/code_model.py index cb6caf9d0bb..6e89b057053 100644 --- a/autorest/codegen/models/code_model.py +++ b/autorest/codegen/models/code_model.py @@ -5,9 +5,10 @@ # -------------------------------------------------------------------------- from itertools import chain import logging -from typing import cast, List, Dict, Optional, Any, Set +from typing import cast, List, Dict, Optional, Any, Set, Union from .base_schema import BaseSchema +from .credential_schema import AzureKeyCredentialSchema, TokenCredentialSchema from .enum_schema import EnumSchema from .object_schema import ObjectSchema from .operation_group import OperationGroup @@ -17,7 +18,6 @@ from .parameter import Parameter, ParameterLocation from .client import Client from .parameter_list import ParameterList -from .imports import FileImport, ImportType, TypingSection from .schema_response import SchemaResponse from .property import Property from .primitive_schemas import IOSchema @@ -26,50 +26,6 @@ _LOGGER = logging.getLogger(__name__) -class CredentialSchema(BaseSchema): - def __init__(self, async_mode) -> None: # pylint: disable=super-init-not-called - self.async_mode = async_mode - self.async_type = "~azure.core.credentials_async.AsyncTokenCredential" - self.sync_type = "~azure.core.credentials.TokenCredential" - self.default_value = None - - @property - def serialization_type(self) -> str: - if self.async_mode: - return self.async_type - return self.sync_type - - @property - def docstring_type(self) -> str: - return self.serialization_type - - @property - def type_annotation(self) -> str: - if self.async_mode: - return '"AsyncTokenCredential"' - return '"TokenCredential"' - - @property - def docstring_text(self) -> str: - return "credential" - - def imports(self) -> FileImport: - file_import = FileImport() - if self.async_mode: - file_import.add_from_import( - "azure.core.credentials_async", "AsyncTokenCredential", - ImportType.AZURECORE, - typing_section=TypingSection.TYPING - ) - else: - file_import.add_from_import( - "azure.core.credentials", "TokenCredential", - ImportType.AZURECORE, - typing_section=TypingSection.TYPING - ) - return file_import - - class CodeModel: # pylint: disable=too-many-instance-attributes """Holds all of the information we have parsed out of the yaml file. The CodeModel is what gets serialized by the serializers. @@ -168,7 +124,11 @@ def add_credential_global_parameter(self) -> None: :return: None :rtype: None """ - credential_schema = CredentialSchema(async_mode=False) + credential_schema: Union[AzureKeyCredentialSchema, TokenCredentialSchema] + if self.options["credential_default_policy_type"] == "BearerTokenCredentialPolicy": + credential_schema = TokenCredentialSchema(async_mode=False) + else: + credential_schema = AzureKeyCredentialSchema() credential_parameter = Parameter( yaml_data={}, schema=credential_schema, diff --git a/autorest/codegen/models/credential_schema.py b/autorest/codegen/models/credential_schema.py new file mode 100644 index 00000000000..ec348535a9b --- /dev/null +++ b/autorest/codegen/models/credential_schema.py @@ -0,0 +1,83 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from .base_schema import BaseSchema +from .imports import FileImport, ImportType, TypingSection + +class CredentialSchema(BaseSchema): + def __init__(self) -> None: # pylint: disable=super-init-not-called + self.default_value = None + + @property + def docstring_type(self) -> str: + return self.serialization_type + + @property + def docstring_text(self) -> str: + return "credential" + + @property + def serialization_type(self) -> str: + # this property is added, because otherwise pylint says that + # abstract serialization_type in BaseSchema is not overridden + pass + + +class AzureKeyCredentialSchema(CredentialSchema): + + @property + def serialization_type(self) -> str: + return "~azure.core.credentials.AzureKeyCredential" + + @property + def type_annotation(self) -> str: + return "AzureKeyCredential" + + def imports(self) -> FileImport: + file_import = FileImport() + file_import.add_from_import( + "azure.core.credentials", + "AzureKeyCredential", + ImportType.AZURECORE, + typing_section=TypingSection.CONDITIONAL + ) + return file_import + + +class TokenCredentialSchema(CredentialSchema): + def __init__(self, async_mode) -> None: + super(TokenCredentialSchema, self).__init__() + self.async_mode = async_mode + self.async_type = "~azure.core.credentials_async.AsyncTokenCredential" + self.sync_type = "~azure.core.credentials.TokenCredential" + + @property + def serialization_type(self) -> str: + if self.async_mode: + return self.async_type + return self.sync_type + + @property + def type_annotation(self) -> str: + if self.async_mode: + return '"AsyncTokenCredential"' + return '"TokenCredential"' + + + def imports(self) -> FileImport: + file_import = FileImport() + if self.async_mode: + file_import.add_from_import( + "azure.core.credentials_async", "AsyncTokenCredential", + ImportType.AZURECORE, + typing_section=TypingSection.TYPING + ) + else: + file_import.add_from_import( + "azure.core.credentials", "TokenCredential", + ImportType.AZURECORE, + typing_section=TypingSection.TYPING + ) + return file_import diff --git a/autorest/codegen/serializers/general_serializer.py b/autorest/codegen/serializers/general_serializer.py index f71f57a8512..958e77d13d8 100644 --- a/autorest/codegen/serializers/general_serializer.py +++ b/autorest/codegen/serializers/general_serializer.py @@ -5,7 +5,7 @@ # -------------------------------------------------------------------------- from jinja2 import Environment from .import_serializer import FileImportSerializer, TypingSection -from ..models import FileImport, ImportType, CodeModel, CredentialSchema +from ..models import FileImport, ImportType, CodeModel, TokenCredentialSchema class GeneralSerializer: @@ -24,9 +24,9 @@ def serialize_init_file(self) -> str: def _correct_credential_parameter(self): credential_param = [ - gp for gp in self.code_model.global_parameters.parameters if isinstance(gp.schema, CredentialSchema) + gp for gp in self.code_model.global_parameters.parameters if isinstance(gp.schema, TokenCredentialSchema) ][0] - credential_param.schema = CredentialSchema(async_mode=self.async_mode) + credential_param.schema = TokenCredentialSchema(async_mode=self.async_mode) def serialize_service_client_file(self) -> str: def _service_client_imports() -> FileImport: @@ -37,7 +37,10 @@ def _service_client_imports() -> FileImport: template = self.env.get_template("service_client.py.jinja2") - if self.code_model.options['credential']: + if ( + self.code_model.options['credential'] and + self.code_model.options['credential_default_policy_type'] == "BearerTokenCredentialPolicy" + ): self._correct_credential_parameter() return template.render( @@ -68,7 +71,10 @@ def _config_imports(async_mode: bool) -> FileImport: package_name = package_name[len("azure-"):] sdk_moniker = package_name if package_name else self.code_model.class_name.lower() - if self.code_model.options['credential']: + if ( + self.code_model.options['credential'] and + self.code_model.options['credential_default_policy_type'] == "BearerTokenCredentialPolicy" + ): self._correct_credential_parameter() template = self.env.get_template("config.py.jinja2") diff --git a/autorest/codegen/serializers/metadata_serializer.py b/autorest/codegen/serializers/metadata_serializer.py index 2ec39660c03..8bbb8a2e0cf 100644 --- a/autorest/codegen/serializers/metadata_serializer.py +++ b/autorest/codegen/serializers/metadata_serializer.py @@ -13,7 +13,7 @@ OperationGroup, LROOperation, PagingOperation, - CredentialSchema, + TokenCredentialSchema, ParameterList, TypingSection, ImportType @@ -21,9 +21,9 @@ def _correct_credential_parameter(global_parameters: ParameterList, async_mode: bool) -> None: credential_param = [ - gp for gp in global_parameters.parameters if isinstance(gp.schema, CredentialSchema) + gp for gp in global_parameters.parameters if isinstance(gp.schema, TokenCredentialSchema) ][0] - credential_param.schema = CredentialSchema(async_mode=async_mode) + credential_param.schema = TokenCredentialSchema(async_mode=async_mode) def _json_serialize_imports( imports: Dict[TypingSection, Dict[ImportType, Dict[str, Set[Optional[str]]]]] @@ -107,8 +107,11 @@ def _is_paging(operation): # In this case, we need two copies of the credential global parameter # for typing purposes. async_global_parameters = self.code_model.global_parameters - if self.code_model.options['credential']: - # this ensures that the CredentialSchema showing up in the list of code model's global parameters + if ( + self.code_model.options['credential'] and + self.code_model.options['credential_default_policy_type'] == "BearerTokenCredentialPolicy" + ): + # this ensures that the TokenCredentialSchema showing up in the list of code model's global parameters # is sync. This way we only have to make a copy for an async_credential _correct_credential_parameter(self.code_model.global_parameters, False) async_global_parameters = self._make_async_copy_of_global_parameters() diff --git a/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/_auto_rest_head_test_service.py b/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/_auto_rest_head_test_service.py index d8aa3d8fb9b..0b5acc29942 100644 --- a/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/_auto_rest_head_test_service.py +++ b/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/_auto_rest_head_test_service.py @@ -15,7 +15,7 @@ # pylint: disable=unused-import,ungrouped-imports from typing import Any, Dict, Optional - from azure.core.credentials import TokenCredential + from azure.core.credentials import AzureKeyCredential from ._configuration import AutoRestHeadTestServiceConfiguration from .operations import HttpSuccessOperations @@ -27,13 +27,13 @@ class AutoRestHeadTestService(object): :ivar http_success: HttpSuccessOperations operations :vartype http_success: headwithazurekeycredentialpolicy.operations.HttpSuccessOperations :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential :param str base_url: Service URL """ def __init__( self, - credential, # type: "TokenCredential" + credential, # type: AzureKeyCredential base_url=None, # type: Optional[str] **kwargs # type: Any ): diff --git a/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/_configuration.py b/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/_configuration.py index 5446639005a..2424e14aba4 100644 --- a/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/_configuration.py +++ b/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/_configuration.py @@ -18,7 +18,7 @@ # pylint: disable=unused-import,ungrouped-imports from typing import Any - from azure.core.credentials import TokenCredential + from azure.core.credentials import AzureKeyCredential class AutoRestHeadTestServiceConfiguration(Configuration): @@ -28,12 +28,12 @@ class AutoRestHeadTestServiceConfiguration(Configuration): attributes. :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential """ def __init__( self, - credential, # type: "TokenCredential" + credential, # type: AzureKeyCredential **kwargs # type: Any ): # type: (...) -> None diff --git a/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/aio/_auto_rest_head_test_service_async.py b/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/aio/_auto_rest_head_test_service_async.py index 9f86f9767f7..d54124aea8a 100644 --- a/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/aio/_auto_rest_head_test_service_async.py +++ b/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/aio/_auto_rest_head_test_service_async.py @@ -8,6 +8,7 @@ from typing import Any, Optional, TYPE_CHECKING +from azure.core.credentials import AzureKeyCredential from azure.mgmt.core import AsyncARMPipelineClient from msrest import Deserializer, Serializer @@ -15,8 +16,6 @@ # pylint: disable=unused-import,ungrouped-imports from typing import Dict - from azure.core.credentials_async import AsyncTokenCredential - from ._configuration_async import AutoRestHeadTestServiceConfiguration from .operations_async import HttpSuccessOperations @@ -27,13 +26,13 @@ class AutoRestHeadTestService(object): :ivar http_success: HttpSuccessOperations operations :vartype http_success: headwithazurekeycredentialpolicy.aio.operations_async.HttpSuccessOperations :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential :param str base_url: Service URL """ def __init__( self, - credential: "AsyncTokenCredential", + credential: AzureKeyCredential, base_url: Optional[str] = None, **kwargs: Any ) -> None: diff --git a/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/aio/_configuration_async.py b/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/aio/_configuration_async.py index f48c1bf1935..2a733fcd382 100644 --- a/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/aio/_configuration_async.py +++ b/test/azure/Expected/AcceptanceTests/HeadWithAzureKeyCredentialPolicy/headwithazurekeycredentialpolicy/aio/_configuration_async.py @@ -6,18 +6,15 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, TYPE_CHECKING +from typing import Any from azure.core.configuration import Configuration +from azure.core.credentials import AzureKeyCredential from azure.core.pipeline import policies from azure.mgmt.core.policies import ARMHttpLoggingPolicy from .._version import VERSION -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from azure.core.credentials_async import AsyncTokenCredential - class AutoRestHeadTestServiceConfiguration(Configuration): """Configuration for AutoRestHeadTestService. @@ -26,12 +23,12 @@ class AutoRestHeadTestServiceConfiguration(Configuration): attributes. :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential """ def __init__( self, - credential: "AsyncTokenCredential", + credential: AzureKeyCredential, **kwargs: Any ) -> None: if credential is None: diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/_configuration.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/_configuration.py index 2fb035348ed..50522535622 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/_configuration.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/_configuration.py @@ -24,12 +24,12 @@ class MultiapiServiceClientConfiguration(Configuration): attributes. :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential """ def __init__( self, - credential, # type: "TokenCredential" + credential, # type: AzureKeyCredential **kwargs # type: Any ): # type: (...) -> None diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/_multiapi_service_client.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/_multiapi_service_client.py index 7da85282751..e34cefa092e 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/_multiapi_service_client.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/_multiapi_service_client.py @@ -35,7 +35,7 @@ class MultiapiServiceClient(MultiapiServiceClientOperationsMixin, MultiApiClient group is not described in the profile. :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential :param str api_version: API version to use if no profile is provided, or if missing in profile. :param str base_url: Service URL @@ -58,7 +58,7 @@ class MultiapiServiceClient(MultiapiServiceClientOperationsMixin, MultiApiClient def __init__( self, - credential, # type: "TokenCredential" + credential, # type: AzureKeyCredential api_version=None, base_url=None, profile=KnownProfiles.default, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/aio/_configuration_async.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/aio/_configuration_async.py index 929b2ea80c7..6b2794606da 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/aio/_configuration_async.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/aio/_configuration_async.py @@ -24,12 +24,12 @@ class MultiapiServiceClientConfiguration(Configuration): attributes. :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential """ def __init__( self, - credential, # type: "AsyncTokenCredential" + credential, # type: AzureKeyCredential **kwargs # type: Any ) -> None: if credential is None: diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/aio/_multiapi_service_client_async.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/aio/_multiapi_service_client_async.py index ffe7477a436..fa63e8b4c12 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/aio/_multiapi_service_client_async.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/aio/_multiapi_service_client_async.py @@ -35,7 +35,7 @@ class MultiapiServiceClient(MultiapiServiceClientOperationsMixin, MultiApiClient group is not described in the profile. :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential :param str api_version: API version to use if no profile is provided, or if missing in profile. :param str base_url: Service URL @@ -58,7 +58,7 @@ class MultiapiServiceClient(MultiapiServiceClientOperationsMixin, MultiApiClient def __init__( self, - credential, # type: "AsyncTokenCredential" + credential, # type: AzureKeyCredential api_version=None, base_url=None, profile=KnownProfiles.default, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_configuration.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_configuration.py index 8cb8eea8512..18f52c82ffe 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_configuration.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_configuration.py @@ -16,7 +16,7 @@ # pylint: disable=unused-import,ungrouped-imports from typing import Any - from azure.core.credentials import TokenCredential + from azure.core.credentials import AzureKeyCredential VERSION = "unknown" @@ -27,12 +27,12 @@ class MultiapiServiceClientConfiguration(Configuration): attributes. :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential """ def __init__( self, - credential, # type: "TokenCredential" + credential, # type: AzureKeyCredential **kwargs # type: Any ): # type: (...) -> None diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_metadata.json index ec7203b1753..0b3d3c6a19d 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_metadata.json @@ -13,17 +13,17 @@ "global_parameters": { "sync_method": { "credential": { - "method_signature": "credential, # type: \"TokenCredential\"", + "method_signature": "credential, # type: AzureKeyCredential", "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials.TokenCredential", + "docstring_type": "~azure.core.credentials.AzureKeyCredential", "required": true } }, "async_method": { "credential": { - "method_signature": "credential, # type: \"AsyncTokenCredential\"", + "method_signature": "credential, # type: AzureKeyCredential", "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials_async.AsyncTokenCredential", + "docstring_type": "~azure.core.credentials.AzureKeyCredential", "required": true } }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_multiapi_service_client.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_multiapi_service_client.py index 8cf03bd3f87..e9353eadcdb 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_multiapi_service_client.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_multiapi_service_client.py @@ -15,7 +15,7 @@ # pylint: disable=unused-import,ungrouped-imports from typing import Any, Optional - from azure.core.credentials import TokenCredential + from azure.core.credentials import AzureKeyCredential from ._configuration import MultiapiServiceClientConfiguration from .operations import MultiapiServiceClientOperationsMixin @@ -29,14 +29,14 @@ class MultiapiServiceClient(MultiapiServiceClientOperationsMixin): :ivar operation_group_one: OperationGroupOneOperations operations :vartype operation_group_one: multiapicredentialdefaultpolicy.v1.operations.OperationGroupOneOperations :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential :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. """ def __init__( self, - credential, # type: "TokenCredential" + credential, # type: AzureKeyCredential base_url=None, # type: Optional[str] **kwargs # type: Any ): diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/aio/_configuration_async.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/aio/_configuration_async.py index d5b7f79478b..a1368130dec 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/aio/_configuration_async.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/aio/_configuration_async.py @@ -6,16 +6,13 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, TYPE_CHECKING +from typing import Any from azure.core.configuration import Configuration +from azure.core.credentials import AzureKeyCredential from azure.core.pipeline import policies from azure.mgmt.core.policies import ARMHttpLoggingPolicy -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from azure.core.credentials_async import AsyncTokenCredential - VERSION = "unknown" class MultiapiServiceClientConfiguration(Configuration): @@ -25,12 +22,12 @@ class MultiapiServiceClientConfiguration(Configuration): attributes. :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential """ def __init__( self, - credential: "AsyncTokenCredential", + credential: AzureKeyCredential, **kwargs: Any ) -> None: if credential is None: diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/aio/_multiapi_service_client_async.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/aio/_multiapi_service_client_async.py index bc9109adca2..8a7b0199712 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/aio/_multiapi_service_client_async.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/aio/_multiapi_service_client_async.py @@ -6,15 +6,12 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Optional, TYPE_CHECKING +from typing import Any, Optional +from azure.core.credentials import AzureKeyCredential 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 ._configuration_async import MultiapiServiceClientConfiguration from .operations_async import MultiapiServiceClientOperationsMixin from .operations_async import OperationGroupOneOperations @@ -27,14 +24,14 @@ class MultiapiServiceClient(MultiapiServiceClientOperationsMixin): :ivar operation_group_one: OperationGroupOneOperations operations :vartype operation_group_one: multiapicredentialdefaultpolicy.v1.aio.operations_async.OperationGroupOneOperations :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential :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. """ def __init__( self, - credential: "AsyncTokenCredential", + credential: AzureKeyCredential, base_url: Optional[str] = None, **kwargs: Any ) -> None: diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_configuration.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_configuration.py index 729e4e0e546..af29a72d41b 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_configuration.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_configuration.py @@ -16,7 +16,7 @@ # pylint: disable=unused-import,ungrouped-imports from typing import Any - from azure.core.credentials import TokenCredential + from azure.core.credentials import AzureKeyCredential VERSION = "unknown" @@ -27,12 +27,12 @@ class MultiapiServiceClientConfiguration(Configuration): attributes. :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential """ def __init__( self, - credential, # type: "TokenCredential" + credential, # type: AzureKeyCredential **kwargs # type: Any ): # type: (...) -> None diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_metadata.json index f3707daee8e..28c1c92a417 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_metadata.json @@ -13,17 +13,17 @@ "global_parameters": { "sync_method": { "credential": { - "method_signature": "credential, # type: \"TokenCredential\"", + "method_signature": "credential, # type: AzureKeyCredential", "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials.TokenCredential", + "docstring_type": "~azure.core.credentials.AzureKeyCredential", "required": true } }, "async_method": { "credential": { - "method_signature": "credential, # type: \"AsyncTokenCredential\"", + "method_signature": "credential, # type: AzureKeyCredential", "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials_async.AsyncTokenCredential", + "docstring_type": "~azure.core.credentials.AzureKeyCredential", "required": true } }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_multiapi_service_client.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_multiapi_service_client.py index 7b72b9b26ac..a85a034dc6a 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_multiapi_service_client.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_multiapi_service_client.py @@ -15,7 +15,7 @@ # pylint: disable=unused-import,ungrouped-imports from typing import Any, Optional - from azure.core.credentials import TokenCredential + from azure.core.credentials import AzureKeyCredential from ._configuration import MultiapiServiceClientConfiguration from .operations import MultiapiServiceClientOperationsMixin @@ -32,13 +32,13 @@ class MultiapiServiceClient(MultiapiServiceClientOperationsMixin): :ivar operation_group_two: OperationGroupTwoOperations operations :vartype operation_group_two: multiapicredentialdefaultpolicy.v2.operations.OperationGroupTwoOperations :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential :param str base_url: Service URL """ def __init__( self, - credential, # type: "TokenCredential" + credential, # type: AzureKeyCredential base_url=None, # type: Optional[str] **kwargs # type: Any ): diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/aio/_configuration_async.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/aio/_configuration_async.py index 780b986a3ea..e7a4533363d 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/aio/_configuration_async.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/aio/_configuration_async.py @@ -6,16 +6,13 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, TYPE_CHECKING +from typing import Any from azure.core.configuration import Configuration +from azure.core.credentials import AzureKeyCredential from azure.core.pipeline import policies from azure.mgmt.core.policies import ARMHttpLoggingPolicy -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from azure.core.credentials_async import AsyncTokenCredential - VERSION = "unknown" class MultiapiServiceClientConfiguration(Configuration): @@ -25,12 +22,12 @@ class MultiapiServiceClientConfiguration(Configuration): attributes. :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential """ def __init__( self, - credential: "AsyncTokenCredential", + credential: AzureKeyCredential, **kwargs: Any ) -> None: if credential is None: diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/aio/_multiapi_service_client_async.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/aio/_multiapi_service_client_async.py index 6dba4bbe382..9446496a6ef 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/aio/_multiapi_service_client_async.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/aio/_multiapi_service_client_async.py @@ -6,15 +6,12 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Optional, TYPE_CHECKING +from typing import Any, Optional +from azure.core.credentials import AzureKeyCredential 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 ._configuration_async import MultiapiServiceClientConfiguration from .operations_async import MultiapiServiceClientOperationsMixin from .operations_async import OperationGroupOneOperations @@ -30,13 +27,13 @@ class MultiapiServiceClient(MultiapiServiceClientOperationsMixin): :ivar operation_group_two: OperationGroupTwoOperations operations :vartype operation_group_two: multiapicredentialdefaultpolicy.v2.aio.operations_async.OperationGroupTwoOperations :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential :param str base_url: Service URL """ def __init__( self, - credential: "AsyncTokenCredential", + credential: AzureKeyCredential, base_url: Optional[str] = None, **kwargs: Any ) -> None: diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_configuration.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_configuration.py index b8f2b9559e0..3392f9c5dcd 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_configuration.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_configuration.py @@ -16,7 +16,7 @@ # pylint: disable=unused-import,ungrouped-imports from typing import Any - from azure.core.credentials import TokenCredential + from azure.core.credentials import AzureKeyCredential VERSION = "unknown" @@ -27,12 +27,12 @@ class MultiapiServiceClientConfiguration(Configuration): attributes. :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential """ def __init__( self, - credential, # type: "TokenCredential" + credential, # type: AzureKeyCredential **kwargs # type: Any ): # type: (...) -> None diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_metadata.json index 0d2b2d2751e..1a6cff50c35 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_metadata.json @@ -13,17 +13,17 @@ "global_parameters": { "sync_method": { "credential": { - "method_signature": "credential, # type: \"TokenCredential\"", + "method_signature": "credential, # type: AzureKeyCredential", "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials.TokenCredential", + "docstring_type": "~azure.core.credentials.AzureKeyCredential", "required": true } }, "async_method": { "credential": { - "method_signature": "credential, # type: \"AsyncTokenCredential\"", + "method_signature": "credential, # type: AzureKeyCredential", "description": "Credential needed for the client to connect to Azure.", - "docstring_type": "~azure.core.credentials_async.AsyncTokenCredential", + "docstring_type": "~azure.core.credentials.AzureKeyCredential", "required": true } }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_multiapi_service_client.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_multiapi_service_client.py index 2fe0f5e4638..515337d9d7b 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_multiapi_service_client.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_multiapi_service_client.py @@ -15,7 +15,7 @@ # pylint: disable=unused-import,ungrouped-imports from typing import Any, Optional - from azure.core.credentials import TokenCredential + from azure.core.credentials import AzureKeyCredential from ._configuration import MultiapiServiceClientConfiguration from .operations import MultiapiServiceClientOperationsMixin @@ -32,13 +32,13 @@ class MultiapiServiceClient(MultiapiServiceClientOperationsMixin): :ivar operation_group_two: OperationGroupTwoOperations operations :vartype operation_group_two: multiapicredentialdefaultpolicy.v3.operations.OperationGroupTwoOperations :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential :param str base_url: Service URL """ def __init__( self, - credential, # type: "TokenCredential" + credential, # type: AzureKeyCredential base_url=None, # type: Optional[str] **kwargs # type: Any ): diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/aio/_configuration_async.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/aio/_configuration_async.py index bc900e1600f..1b19ee8908d 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/aio/_configuration_async.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/aio/_configuration_async.py @@ -6,16 +6,13 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, TYPE_CHECKING +from typing import Any from azure.core.configuration import Configuration +from azure.core.credentials import AzureKeyCredential from azure.core.pipeline import policies from azure.mgmt.core.policies import ARMHttpLoggingPolicy -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from azure.core.credentials_async import AsyncTokenCredential - VERSION = "unknown" class MultiapiServiceClientConfiguration(Configuration): @@ -25,12 +22,12 @@ class MultiapiServiceClientConfiguration(Configuration): attributes. :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential """ def __init__( self, - credential: "AsyncTokenCredential", + credential: AzureKeyCredential, **kwargs: Any ) -> None: if credential is None: diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/aio/_multiapi_service_client_async.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/aio/_multiapi_service_client_async.py index 147f194dad5..a448b0b30c4 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/aio/_multiapi_service_client_async.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/aio/_multiapi_service_client_async.py @@ -6,15 +6,12 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Optional, TYPE_CHECKING +from typing import Any, Optional +from azure.core.credentials import AzureKeyCredential 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 ._configuration_async import MultiapiServiceClientConfiguration from .operations_async import MultiapiServiceClientOperationsMixin from .operations_async import OperationGroupOneOperations @@ -30,13 +27,13 @@ class MultiapiServiceClient(MultiapiServiceClientOperationsMixin): :ivar operation_group_two: OperationGroupTwoOperations operations :vartype operation_group_two: multiapicredentialdefaultpolicy.v3.aio.operations_async.OperationGroupTwoOperations :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :type credential: ~azure.core.credentials.AzureKeyCredential :param str base_url: Service URL """ def __init__( self, - credential: "AsyncTokenCredential", + credential: AzureKeyCredential, base_url: Optional[str] = None, **kwargs: Any ) -> None: