From 61320ee7fb963558d04328dae0dff488d2f3baef Mon Sep 17 00:00:00 2001 From: iscai-msft Date: Wed, 14 Jul 2021 12:23:11 -0400 Subject: [PATCH 1/3] add credential schema policy classes to improve code flow --- autorest/codegen/__init__.py | 84 ++++++++----------- autorest/codegen/models/code_model.py | 28 +++++-- .../models/credential_schema_policy.py | 73 ++++++++++++++++ .../codegen/serializers/general_serializer.py | 4 +- .../serializers/metadata_serializer.py | 2 +- autorest/codegen/templates/config.py.jinja2 | 10 +-- .../codegen/templates/metadata.json.jinja2 | 7 +- autorest/multiapi/models/config.py | 10 +-- .../templates/multiapi_config.py.jinja2 | 4 +- .../key/credential/sample/_configuration.py | 2 +- .../credential/sample/aio/_configuration.py | 2 +- .../azure/multiapi/sample/v1/_metadata.json | 5 +- .../azure/multiapi/sample/v2/_metadata.json | 5 +- .../azure/multiapi/sample/v3/_metadata.json | 5 +- .../Multiapi/multiapi/v0/_metadata.json | 5 +- .../Multiapi/multiapi/v1/_metadata.json | 5 +- .../Multiapi/multiapi/v2/_metadata.json | 5 +- .../Multiapi/multiapi/v3/_metadata.json | 5 +- .../_configuration.py | 2 +- .../aio/_configuration.py | 2 +- .../v1/_configuration.py | 2 +- .../v1/_metadata.json | 5 +- .../v1/aio/_configuration.py | 2 +- .../v2/_configuration.py | 2 +- .../v2/_metadata.json | 5 +- .../v2/aio/_configuration.py | 2 +- .../v3/_configuration.py | 2 +- .../v3/_metadata.json | 5 +- .../v3/aio/_configuration.py | 2 +- .../multiapicustombaseurl/v1/_metadata.json | 5 +- .../multiapicustombaseurl/v2/_metadata.json | 5 +- .../multiapidataplane/v1/_metadata.json | 5 +- .../multiapidataplane/v2/_metadata.json | 5 +- .../multiapidataplane/v3/_metadata.json | 5 +- .../multiapinoasync/v1/_metadata.json | 5 +- .../multiapinoasync/v2/_metadata.json | 5 +- .../multiapinoasync/v3/_metadata.json | 5 +- .../submodule/v1/_metadata.json | 5 +- .../submodule/v2/_metadata.json | 5 +- .../submodule/v3/_metadata.json | 5 +- 40 files changed, 194 insertions(+), 153 deletions(-) create mode 100644 autorest/codegen/models/credential_schema_policy.py diff --git a/autorest/codegen/__init__.py b/autorest/codegen/__init__.py index eb9bfed957c..2a36cb157c6 100644 --- a/autorest/codegen/__init__.py +++ b/autorest/codegen/__init__.py @@ -14,16 +14,11 @@ from .models.operation_group import OperationGroup from .models.parameter import Parameter from .models.parameter_list import ParameterList +from .models.credential_schema import AzureKeyCredentialSchema, TokenCredentialSchema +from .models.credential_schema_policy import get_credential_schema_policy, CredentialSchemaPolicy from .serializers import JinjaSerializer -def _get_credential_default_policy_type_has_async_version(credential_default_policy_type: str) -> bool: - mapping = { - "BearerTokenCredentialPolicy": True, - "AzureKeyCredentialPolicy": False - } - return mapping[credential_default_policy_type] - _LOGGER = logging.getLogger(__name__) class CodeGenerator(Plugin): @staticmethod @@ -62,6 +57,8 @@ def _build_exceptions_set(yaml_data: List[Dict[str, Any]]) -> Set[int]: def _create_code_model(self, yaml_data: Dict[str, Any], options: Dict[str, Union[str, bool]]) -> CodeModel: # Create a code model code_model = CodeModel(options) + if code_model.options['credential']: + self._handle_default_authentication_policy(code_model) code_model.module_name = yaml_data["info"]["python_title"] code_model.class_name = yaml_data["info"]["pascal_case_title"] code_model.description = ( @@ -138,11 +135,15 @@ def _get_credential_scopes(self, credential): ) return credential_scopes - def _get_credential_param(self, azure_arm, credential, credential_default_policy_type): - credential_scopes = self._get_credential_scopes(credential) + def _initialize_credential_schema_policy( + self, code_model: CodeModel, credential_schema_policy: CredentialSchemaPolicy + ): + credential_scopes = self._get_credential_scopes(code_model.options['credential']) credential_key_header_name = self._autorestapi.get_value('credential-key-header-name') + azure_arm = code_model.options['azure_arm'] + credential = code_model.options['credential'] - if credential_default_policy_type == "BearerTokenCredentialPolicy": + if hasattr(credential_schema_policy, "credential_scopes"): if not credential_scopes: if azure_arm: credential_scopes = ["https://management.azure.com/.default"] @@ -150,26 +151,32 @@ def _get_credential_param(self, azure_arm, credential, credential_default_policy # If add-credential is specified, we still want to add a credential_scopes variable. # Will make it an empty list so we can differentiate between this case and None _LOGGER.warning( - "You have default credential policy BearerTokenCredentialPolicy" + "You have default credential policy %s " "but not the --credential-scopes flag set while generating non-management plane code. " "This is not recommend because it forces the customer to pass credential scopes " - "through kwargs if they want to authenticate." + "through kwargs if they want to authenticate.", + credential_schema_policy.name ) credential_scopes = [] + if credential_key_header_name: raise ValueError( "You have passed in a credential key header name with default credential policy type " - "BearerTokenCredentialPolicy. This is not allowed, since credential key header name is tied with " - "AzureKeyCredentialPolicy. Instead, with this policy it is recommend you pass in " - "--credential-scopes." + f"{credential_schema_policy.name}. This is not allowed, since credential key header " + "name is tied with AzureKeyCredentialPolicy. Instead, with this policy it is recommend you " + "pass in --credential-scopes." ) + credential_schema_policy.initialize( + credential=TokenCredentialSchema(async_mode=False), + credential_scopes=credential_scopes, + ) else: # currently the only other credential policy is AzureKeyCredentialPolicy if credential_scopes: raise ValueError( "You have passed in credential scopes with default credential policy type " "AzureKeyCredentialPolicy. This is not allowed, since credential scopes is tied with " - "BearerTokenCredentialPolicy. Instead, with this policy you must pass in " + f"{code_model.challenge_authentication_policy.name}. Instead, with this policy you must pass in " "--credential-key-header-name." ) if not credential_key_header_name: @@ -177,31 +184,19 @@ def _get_credential_param(self, azure_arm, credential, credential_default_policy _LOGGER.info( "Defaulting the AzureKeyCredentialPolicy header's name to 'api-key'" ) - return credential_scopes, credential_key_header_name - - def _handle_default_authentication_policy(self, azure_arm, credential): - - passed_in_credential_default_policy_type = ( - self._autorestapi.get_value("credential-default-policy-type") or "BearerTokenCredentialPolicy" - ) - - # right now, we only allow BearerTokenCredentialPolicy and AzureKeyCredentialPolicy - allowed_policies = ["BearerTokenCredentialPolicy", "AzureKeyCredentialPolicy"] - try: - credential_default_policy_type = [ - cp for cp in allowed_policies if cp.lower() == passed_in_credential_default_policy_type.lower() - ][0] - except IndexError: - raise ValueError( - "The credential you pass in with --credential-default-policy-type must be either " - "BearerTokenCredentialPolicy or AzureKeyCredentialPolicy" + credential_schema_policy.initialize( + credential=AzureKeyCredentialSchema(), + credential_key_header_name=credential_key_header_name, ) - credential_scopes, credential_key_header_name = self._get_credential_param( - azure_arm, credential, credential_default_policy_type + def _handle_default_authentication_policy(self, code_model: CodeModel): + credential_schema_policy_name = ( + self._autorestapi.get_value("credential-default-policy-type") or + code_model.challenge_authentication_policy.name ) - - return credential_default_policy_type, credential_scopes, credential_key_header_name + credential_schema_policy = get_credential_schema_policy(credential_schema_policy_name) + self._initialize_credential_schema_policy(code_model, credential_schema_policy) + code_model.credential_schema_policy = credential_schema_policy def _build_code_model_options(self) -> Dict[str, Any]: @@ -213,13 +208,6 @@ def _build_code_model_options(self) -> Dict[str, Any]: self._autorestapi.get_boolean_value("add-credential", False) ) - credential_default_policy_type, credential_scopes, credential_key_header_name = ( - self._handle_default_authentication_policy( - azure_arm, credential - ) - ) - - license_header = self._autorestapi.get_value("header-text") if license_header: license_header = license_header.replace("\n", "\n# ") @@ -231,8 +219,6 @@ def _build_code_model_options(self) -> Dict[str, Any]: options: Dict[str, Any] = { "azure_arm": azure_arm, "credential": credential, - "credential_scopes": credential_scopes, - "credential_key_header_name": credential_key_header_name, "head_as_boolean": self._autorestapi.get_boolean_value("head-as-boolean", False), "license_header": license_header, "keep_version_file": self._autorestapi.get_boolean_value("keep-version-file", False), @@ -244,10 +230,6 @@ def _build_code_model_options(self) -> Dict[str, Any]: "client_side_validation": self._autorestapi.get_boolean_value("client-side-validation", False), "tracing": self._autorestapi.get_boolean_value("trace", False), "multiapi": self._autorestapi.get_boolean_value("multiapi", False), - "credential_default_policy_type": credential_default_policy_type, - "credential_default_policy_type_has_async_version": ( - _get_credential_default_policy_type_has_async_version(credential_default_policy_type) - ) } if options["basic_setup_py"] and not options["package_version"]: diff --git a/autorest/codegen/models/code_model.py b/autorest/codegen/models/code_model.py index 3956580bada..bb0ada74d4b 100644 --- a/autorest/codegen/models/code_model.py +++ b/autorest/codegen/models/code_model.py @@ -5,10 +5,12 @@ # -------------------------------------------------------------------------- from itertools import chain import logging -from typing import cast, List, Dict, Optional, Any, Set, Union +from typing import cast, List, Dict, Optional, Any, Set from .base_schema import BaseSchema -from .credential_schema import AzureKeyCredentialSchema, TokenCredentialSchema +from .credential_schema_policy import ( + BearerTokenCredentialPolicy, CredentialSchemaPolicy +) from .enum_schema import EnumSchema from .object_schema import ObjectSchema from .operation_group import OperationGroup @@ -68,6 +70,7 @@ def __init__(self, options: Dict[str, Any]) -> None: self.custom_base_url: Optional[str] = None self.base_url: Optional[str] = None self.service_client: Client = Client() + self._credential_schema_policy: Optional[CredentialSchemaPolicy] = None def lookup_schema(self, schema_id: int) -> BaseSchema: """Looks to see if the schema has already been created. @@ -124,14 +127,9 @@ def add_credential_global_parameter(self) -> None: :return: None :rtype: None """ - 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, + schema=self.credential_schema_policy.credential, serialized_name="credential", rest_api_name="credential", implementation="Client", @@ -203,6 +201,20 @@ def _lookup_operation(yaml_id: int) -> Operation: operation for operation in operation_group.operations if operation not in next_operations ] + @property + def challenge_authentication_policy(self) -> CredentialSchemaPolicy: + return BearerTokenCredentialPolicy() + + @property + def credential_schema_policy(self) -> CredentialSchemaPolicy: + if not self._credential_schema_policy: + raise ValueError("You want to find the Credential Schema Policy, but have not given a value") + return self._credential_schema_policy + + @credential_schema_policy.setter + def credential_schema_policy(self, val: CredentialSchemaPolicy) -> None: + self._credential_schema_policy = val + @staticmethod def _add_properties_from_inheritance_helper(schema, properties) -> List[Property]: if not schema.base_models: diff --git a/autorest/codegen/models/credential_schema_policy.py b/autorest/codegen/models/credential_schema_policy.py new file mode 100644 index 00000000000..d56270342c0 --- /dev/null +++ b/autorest/codegen/models/credential_schema_policy.py @@ -0,0 +1,73 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from abc import abstractmethod +from typing import Optional +from .credential_schema import CredentialSchema + +class CredentialSchemaPolicy: + name: Optional[str] = None + + def __init__(self) -> None: + self._credential = None + + @property + def credential(self) -> CredentialSchema: + if not self._credential: + raise ValueError( + "You have not initialized this policy with its credential yet" + ) + return self._credential + + def initialize(self, credential, **kwargs): # pylint: disable=unused-argument + """Initialize your schema policy""" + self._credential = credential + + @abstractmethod + def call(self, async_mode: bool) -> str: + ... + + +class BearerTokenCredentialPolicy(CredentialSchemaPolicy): + name = "BearerTokenCredentialPolicy" + + def __init__(self) -> None: + super().__init__() + self.credential_scopes = None + + def initialize(self, credential, **kwargs): + super().initialize(credential) + self.credential_scopes = kwargs.pop("credential_scopes") + + def call(self, async_mode: bool) -> str: + policy_name = f"Async{self.name}" if async_mode else self.name + return f"policies.{policy_name}(self.credential, *self.credential_scopes, **kwargs)" + + +class AzureKeyCredentialPolicy(CredentialSchemaPolicy): + name = "AzureKeyCredentialPolicy" + + def __init__(self) -> None: + super().__init__() + self.credential_key_header_name = None + + def initialize(self, credential, **kwargs): + super().initialize(credential) + self.credential_key_header_name = kwargs.pop("credential_key_header_name") + + def call(self, async_mode: bool) -> str: + return f'policies.AzureKeyCredentialPolicy(self.credential, "{self.credential_key_header_name}", **kwargs)' + +def get_credential_schema_policy(name): + policies = [BearerTokenCredentialPolicy(), AzureKeyCredentialPolicy()] + try: + return next(p for p in policies if p.name.lower() == name.lower()) + except StopIteration: + raise ValueError( + "The credential policy you pass in with --credential-default-policy-type must be either " + "{}".format( + " or ".join([p.name for p in policies]) + ) + ) diff --git a/autorest/codegen/serializers/general_serializer.py b/autorest/codegen/serializers/general_serializer.py index b6b03da4748..55b181503b2 100644 --- a/autorest/codegen/serializers/general_serializer.py +++ b/autorest/codegen/serializers/general_serializer.py @@ -53,7 +53,7 @@ def _service_client_imports() -> FileImport: if ( self.code_model.options['credential'] and - self.code_model.options['credential_default_policy_type'] == "BearerTokenCredentialPolicy" + isinstance(self.code_model.credential_schema_policy.credential, TokenCredentialSchema) ): self._correct_credential_parameter() @@ -75,7 +75,7 @@ def serialize_config_file(self) -> str: if ( self.code_model.options['credential'] and - self.code_model.options['credential_default_policy_type'] == "BearerTokenCredentialPolicy" + isinstance(self.code_model.credential_schema_policy.credential, TokenCredentialSchema) ): self._correct_credential_parameter() diff --git a/autorest/codegen/serializers/metadata_serializer.py b/autorest/codegen/serializers/metadata_serializer.py index f94fa4c3865..f713a516324 100644 --- a/autorest/codegen/serializers/metadata_serializer.py +++ b/autorest/codegen/serializers/metadata_serializer.py @@ -143,7 +143,7 @@ def _is_paging(operation): async_global_parameters = self.code_model.global_parameters if ( self.code_model.options['credential'] and - self.code_model.options['credential_default_policy_type'] == "BearerTokenCredentialPolicy" + isinstance(self.code_model.credential_schema_policy.credential, TokenCredentialSchema) ): # 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 diff --git a/autorest/codegen/templates/config.py.jinja2 b/autorest/codegen/templates/config.py.jinja2 index 84b58885286..92ed724657f 100644 --- a/autorest/codegen/templates/config.py.jinja2 +++ b/autorest/codegen/templates/config.py.jinja2 @@ -50,8 +50,8 @@ class {{ code_model.class_name }}Configuration(Configuration): self.{{ constant_parameter.serialized_name }} = {{ constant_parameter.constant_declaration }} {% endfor %} {% endif %} -{% if code_model.options['credential_scopes'] is not none %} - self.credential_scopes = kwargs.pop('credential_scopes', {{ code_model.options['credential_scopes'] }}) +{% if code_model.options['credential'] and code_model.credential_schema_policy.credential_scopes is defined %} + self.credential_scopes = kwargs.pop('credential_scopes', {{ code_model.credential_schema_policy.credential_scopes }}) {% endif %} kwargs.setdefault('sdk_moniker', '{{ sdk_moniker }}/{}'.format(VERSION)) self._configure(**kwargs) @@ -74,12 +74,10 @@ class {{ code_model.class_name }}Configuration(Configuration): self.authentication_policy = kwargs.get('authentication_policy') {% if code_model.options['credential'] %} {# only adding this if credential_scopes is not passed during code generation #} - {% if code_model.options["credential_scopes"] is not none and code_model.options["credential_scopes"]|length == 0 %} + {% if code_model.credential_schema_policy.credential_scopes is defined and code_model.credential_schema_policy.credential_scopes|length == 0 %} if not self.credential_scopes and not self.authentication_policy: raise ValueError("You must provide either credential_scopes or authentication_policy as kwargs") {% endif %} if self.credential and not self.authentication_policy: - {% set credential_default_policy_type = ("Async" if (async_mode and code_model.options['credential_default_policy_type_has_async_version']) else "") + code_model.options['credential_default_policy_type'] %} - {% set credential_param_type = ("'" + code_model.options['credential_key_header_name'] + "', ") if code_model.options['credential_key_header_name'] else ("*self.credential_scopes, " if "BearerTokenCredentialPolicy" in credential_default_policy_type else "") %} - self.authentication_policy = policies.{{ credential_default_policy_type }}(self.credential, {{ credential_param_type if credential_param_type }}**kwargs) + self.authentication_policy = {{ code_model.credential_schema_policy.call(async_mode) }} {% endif %} diff --git a/autorest/codegen/templates/metadata.json.jinja2 b/autorest/codegen/templates/metadata.json.jinja2 index 0ac3a0238a2..94f5bda2663 100644 --- a/autorest/codegen/templates/metadata.json.jinja2 +++ b/autorest/codegen/templates/metadata.json.jinja2 @@ -91,10 +91,9 @@ }, "config": { "credential": {{ code_model.options['credential'] | tojson }}, - "credential_scopes": {{ code_model.options['credential_scopes'] | tojson }}, - "credential_default_policy_type": {{ code_model.options['credential_default_policy_type'] | tojson }}, - "credential_default_policy_type_has_async_version": {{ code_model.options['credential_default_policy_type_has_async_version'] | tojson }}, - "credential_key_header_name": {{ code_model.options['credential_key_header_name'] | tojson }}, + "credential_scopes": {{ (code_model.credential_schema_policy.credential_scopes if code_model.options['credential'] and code_model.credential_schema_policy.credential_scopes is defined else None)| tojson}}, + "credential_call_sync": {{ (code_model.credential_schema_policy.call(async_mode=False) if code_model.options['credential'] else None) | tojson }}, + "credential_call_async": {{ (code_model.credential_schema_policy.call(async_mode=True) if code_model.options['credential'] else None) | tojson }}, "sync_imports": {{ sync_config_imports | tojson }}, "async_imports": {{ async_config_imports | tojson }} }, diff --git a/autorest/multiapi/models/config.py b/autorest/multiapi/models/config.py index 344fe3a1bf9..43d34be7757 100644 --- a/autorest/multiapi/models/config.py +++ b/autorest/multiapi/models/config.py @@ -11,13 +11,13 @@ class Config: def __init__(self, default_version_metadata: Dict[str, Any]): self.credential = default_version_metadata["config"]["credential"] self.credential_scopes = default_version_metadata["config"]["credential_scopes"] - self.credential_default_policy_type = default_version_metadata["config"]["credential_default_policy_type"] - self.credential_default_policy_type_has_async_version = ( - default_version_metadata["config"]["credential_default_policy_type_has_async_version"] - ) - self.credential_key_header_name = default_version_metadata["config"]["credential_key_header_name"] self.default_version_metadata = default_version_metadata def imports(self, async_mode: bool) -> FileImport: imports_to_load = "async_imports" if async_mode else "sync_imports" return FileImport(json.loads(self.default_version_metadata['config'][imports_to_load])) + + def credential_call(self, async_mode: bool) -> str: + if async_mode: + return self.default_version_metadata["config"]["credential_call_async"] + return self.default_version_metadata["config"]["credential_call_sync"] diff --git a/autorest/multiapi/templates/multiapi_config.py.jinja2 b/autorest/multiapi/templates/multiapi_config.py.jinja2 index 468036058e4..3d8352c94fe 100644 --- a/autorest/multiapi/templates/multiapi_config.py.jinja2 +++ b/autorest/multiapi/templates/multiapi_config.py.jinja2 @@ -91,7 +91,5 @@ class {{ code_model.service_client.name }}Configuration(Configuration): raise ValueError("You must provide either credential_scopes or authentication_policy as kwargs") {% endif %} if self.credential and not self.authentication_policy: - {% set credential_default_policy_type = ("Async" if (async_mode and code_model.config.credential_default_policy_type_has_async_version) else "") + code_model.config.credential_default_policy_type %} - {% set credential_param_type = ("'" + code_model.config.credential_key_header_name + "', ") if code_model.config.credential_key_header_name else ("*self.credential_scopes, " if "BearerTokenCredentialPolicy" in credential_default_policy_type else "") %} - self.authentication_policy = policies.{{ credential_default_policy_type }}(self.credential, {{ credential_param_type if credential_param_type }}**kwargs) + self.authentication_policy = {{ code_model.config.credential_call(async_mode) }} {% endif %} diff --git a/docs/samples/specification/azure_key_credential/generated/azure/key/credential/sample/_configuration.py b/docs/samples/specification/azure_key_credential/generated/azure/key/credential/sample/_configuration.py index f74e87271c3..269f06191af 100644 --- a/docs/samples/specification/azure_key_credential/generated/azure/key/credential/sample/_configuration.py +++ b/docs/samples/specification/azure_key_credential/generated/azure/key/credential/sample/_configuration.py @@ -59,4 +59,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.AzureKeyCredentialPolicy(self.credential, 'Ocp-Apim-Subscription-Key', **kwargs) + self.authentication_policy = policies.AzureKeyCredentialPolicy(self.credential, "Ocp-Apim-Subscription-Key", **kwargs) diff --git a/docs/samples/specification/azure_key_credential/generated/azure/key/credential/sample/aio/_configuration.py b/docs/samples/specification/azure_key_credential/generated/azure/key/credential/sample/aio/_configuration.py index 820b1bfb1de..f6ae2f204be 100644 --- a/docs/samples/specification/azure_key_credential/generated/azure/key/credential/sample/aio/_configuration.py +++ b/docs/samples/specification/azure_key_credential/generated/azure/key/credential/sample/aio/_configuration.py @@ -52,4 +52,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.AzureKeyCredentialPolicy(self.credential, 'Ocp-Apim-Subscription-Key', **kwargs) + self.authentication_policy = policies.AzureKeyCredentialPolicy(self.credential, "Ocp-Apim-Subscription-Key", **kwargs) diff --git a/docs/samples/specification/multiapi/generated/azure/multiapi/sample/v1/_metadata.json b/docs/samples/specification/multiapi/generated/azure/multiapi/sample/v1/_metadata.json index 234e4e9e048..ac880a00894 100644 --- a/docs/samples/specification/multiapi/generated/azure/multiapi/sample/v1/_metadata.json +++ b/docs/samples/specification/multiapi/generated/azure/multiapi/sample/v1/_metadata.json @@ -79,9 +79,8 @@ "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, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "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\"]}}}" }, diff --git a/docs/samples/specification/multiapi/generated/azure/multiapi/sample/v2/_metadata.json b/docs/samples/specification/multiapi/generated/azure/multiapi/sample/v2/_metadata.json index e3f32474030..a294ef44b8c 100644 --- a/docs/samples/specification/multiapi/generated/azure/multiapi/sample/v2/_metadata.json +++ b/docs/samples/specification/multiapi/generated/azure/multiapi/sample/v2/_metadata.json @@ -79,9 +79,8 @@ "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, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "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\"]}}}" }, diff --git a/docs/samples/specification/multiapi/generated/azure/multiapi/sample/v3/_metadata.json b/docs/samples/specification/multiapi/generated/azure/multiapi/sample/v3/_metadata.json index 7e5754ac15b..94514ba9d42 100644 --- a/docs/samples/specification/multiapi/generated/azure/multiapi/sample/v3/_metadata.json +++ b/docs/samples/specification/multiapi/generated/azure/multiapi/sample/v3/_metadata.json @@ -79,9 +79,8 @@ "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, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "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\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v0/_metadata.json b/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v0/_metadata.json index a72268d97f7..ab854483596 100644 --- a/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v0/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v0/_metadata.json @@ -79,9 +79,8 @@ "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, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "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\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v1/_metadata.json b/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v1/_metadata.json index 50cc2604950..0c39ff69b23 100644 --- a/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v1/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v1/_metadata.json @@ -79,9 +79,8 @@ "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, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "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\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v2/_metadata.json b/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v2/_metadata.json index 80ff0820a63..cd8189fced7 100644 --- a/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v2/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v2/_metadata.json @@ -79,9 +79,8 @@ "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, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "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\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v3/_metadata.json b/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v3/_metadata.json index 96727a50157..b8fb8054929 100644 --- a/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v3/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/Multiapi/multiapi/v3/_metadata.json @@ -79,9 +79,8 @@ "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, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "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\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/_configuration.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/_configuration.py index 837f1d23471..0ebc2b9dc58 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/_configuration.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/_configuration.py @@ -61,4 +61,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.AzureKeyCredentialPolicy(self.credential, 'api-key', **kwargs) + self.authentication_policy = policies.AzureKeyCredentialPolicy(self.credential, "api-key", **kwargs) diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/aio/_configuration.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/aio/_configuration.py index ee160006d99..fc3f9f0b885 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/aio/_configuration.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/aio/_configuration.py @@ -54,4 +54,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.AzureKeyCredentialPolicy(self.credential, 'api-key', **kwargs) + self.authentication_policy = policies.AzureKeyCredentialPolicy(self.credential, "api-key", **kwargs) diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_configuration.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_configuration.py index 5ab4c45d0e9..4c0bde44654 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_configuration.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_configuration.py @@ -60,4 +60,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.AzureKeyCredentialPolicy(self.credential, 'api-key', **kwargs) + self.authentication_policy = policies.AzureKeyCredentialPolicy(self.credential, "api-key", **kwargs) diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_metadata.json index ba636a372ca..5327ff12d87 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/_metadata.json @@ -79,9 +79,8 @@ "config": { "credential": true, "credential_scopes": null, - "credential_default_policy_type": "AzureKeyCredentialPolicy", - "credential_default_policy_type_has_async_version": false, - "credential_key_header_name": "api-key", + "credential_call_sync": "policies.AzureKeyCredentialPolicy(self.credential, \"api-key\", **kwargs)", + "credential_call_async": "policies.AzureKeyCredentialPolicy(self.credential, \"api-key\", **kwargs)", "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"], \"azure.mgmt.core.policies\": [\"ARMHttpLoggingPolicy\"]}, \"local\": {\"._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}, \"azurecore\": {\"azure.core.credentials\": [\"AzureKeyCredential\"]}}}", "async_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"], \"azure.mgmt.core.policies\": [\"ARMHttpLoggingPolicy\"]}, \"local\": {\".._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}, \"azurecore\": {\"azure.core.credentials\": [\"AzureKeyCredential\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/aio/_configuration.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/aio/_configuration.py index 4c281aa884c..ffe090a28bc 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/aio/_configuration.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v1/aio/_configuration.py @@ -53,4 +53,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.AzureKeyCredentialPolicy(self.credential, 'api-key', **kwargs) + self.authentication_policy = policies.AzureKeyCredentialPolicy(self.credential, "api-key", **kwargs) diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_configuration.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_configuration.py index b36919c95a6..7027a1367c4 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_configuration.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_configuration.py @@ -60,4 +60,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.AzureKeyCredentialPolicy(self.credential, 'api-key', **kwargs) + self.authentication_policy = policies.AzureKeyCredentialPolicy(self.credential, "api-key", **kwargs) diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_metadata.json index bdd46b0f3f6..7db7849a80f 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/_metadata.json @@ -79,9 +79,8 @@ "config": { "credential": true, "credential_scopes": null, - "credential_default_policy_type": "AzureKeyCredentialPolicy", - "credential_default_policy_type_has_async_version": false, - "credential_key_header_name": "api-key", + "credential_call_sync": "policies.AzureKeyCredentialPolicy(self.credential, \"api-key\", **kwargs)", + "credential_call_async": "policies.AzureKeyCredentialPolicy(self.credential, \"api-key\", **kwargs)", "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"], \"azure.mgmt.core.policies\": [\"ARMHttpLoggingPolicy\"]}, \"local\": {\"._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}, \"azurecore\": {\"azure.core.credentials\": [\"AzureKeyCredential\"]}}}", "async_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"], \"azure.mgmt.core.policies\": [\"ARMHttpLoggingPolicy\"]}, \"local\": {\".._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}, \"azurecore\": {\"azure.core.credentials\": [\"AzureKeyCredential\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/aio/_configuration.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/aio/_configuration.py index 5a07d1431f1..560306850c2 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/aio/_configuration.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v2/aio/_configuration.py @@ -53,4 +53,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.AzureKeyCredentialPolicy(self.credential, 'api-key', **kwargs) + self.authentication_policy = policies.AzureKeyCredentialPolicy(self.credential, "api-key", **kwargs) diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_configuration.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_configuration.py index 2a1e04cde36..98939dc03d1 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_configuration.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_configuration.py @@ -60,4 +60,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.AzureKeyCredentialPolicy(self.credential, 'api-key', **kwargs) + self.authentication_policy = policies.AzureKeyCredentialPolicy(self.credential, "api-key", **kwargs) diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_metadata.json index ba1ad80fe1d..346c56c272e 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/_metadata.json @@ -79,9 +79,8 @@ "config": { "credential": true, "credential_scopes": null, - "credential_default_policy_type": "AzureKeyCredentialPolicy", - "credential_default_policy_type_has_async_version": false, - "credential_key_header_name": "api-key", + "credential_call_sync": "policies.AzureKeyCredentialPolicy(self.credential, \"api-key\", **kwargs)", + "credential_call_async": "policies.AzureKeyCredentialPolicy(self.credential, \"api-key\", **kwargs)", "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"], \"azure.mgmt.core.policies\": [\"ARMHttpLoggingPolicy\"]}, \"local\": {\"._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}, \"azurecore\": {\"azure.core.credentials\": [\"AzureKeyCredential\"]}}}", "async_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"], \"azure.mgmt.core.policies\": [\"ARMHttpLoggingPolicy\"]}, \"local\": {\".._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}, \"azurecore\": {\"azure.core.credentials\": [\"AzureKeyCredential\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/aio/_configuration.py b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/aio/_configuration.py index 5b887cdb078..b2804565cf9 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/aio/_configuration.py +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCredentialDefaultPolicy/multiapicredentialdefaultpolicy/v3/aio/_configuration.py @@ -53,4 +53,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.AzureKeyCredentialPolicy(self.credential, 'api-key', **kwargs) + self.authentication_policy = policies.AzureKeyCredentialPolicy(self.credential, "api-key", **kwargs) diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCustomBaseUrl/multiapicustombaseurl/v1/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiCustomBaseUrl/multiapicustombaseurl/v1/_metadata.json index 26995886465..ca91748a983 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCustomBaseUrl/multiapicustombaseurl/v1/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCustomBaseUrl/multiapicustombaseurl/v1/_metadata.json @@ -79,9 +79,8 @@ "config": { "credential": true, "credential_scopes": [], - "credential_default_policy_type": "BearerTokenCredentialPolicy", - "credential_default_policy_type_has_async_version": true, - "credential_key_header_name": null, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"]}, \"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\"]}, \"local\": {\".._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}}, \"typing\": {\"azurecore\": {\"azure.core.credentials_async\": [\"AsyncTokenCredential\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiCustomBaseUrl/multiapicustombaseurl/v2/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiCustomBaseUrl/multiapicustombaseurl/v2/_metadata.json index 2d748b87c20..2645d898234 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiCustomBaseUrl/multiapicustombaseurl/v2/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiCustomBaseUrl/multiapicustombaseurl/v2/_metadata.json @@ -79,9 +79,8 @@ "config": { "credential": true, "credential_scopes": [], - "credential_default_policy_type": "BearerTokenCredentialPolicy", - "credential_default_policy_type_has_async_version": true, - "credential_key_header_name": null, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"]}, \"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\"]}, \"local\": {\".._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}}, \"typing\": {\"azurecore\": {\"azure.core.credentials_async\": [\"AsyncTokenCredential\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiDataPlane/multiapidataplane/v1/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiDataPlane/multiapidataplane/v1/_metadata.json index aee2c781407..76186dadafc 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiDataPlane/multiapidataplane/v1/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiDataPlane/multiapidataplane/v1/_metadata.json @@ -79,9 +79,8 @@ "config": { "credential": true, "credential_scopes": [], - "credential_default_policy_type": "BearerTokenCredentialPolicy", - "credential_default_policy_type_has_async_version": true, - "credential_key_header_name": null, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"]}, \"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\"]}, \"local\": {\".._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}}, \"typing\": {\"azurecore\": {\"azure.core.credentials_async\": [\"AsyncTokenCredential\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiDataPlane/multiapidataplane/v2/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiDataPlane/multiapidataplane/v2/_metadata.json index c1a1cbe1a0b..b4e586e4acb 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiDataPlane/multiapidataplane/v2/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiDataPlane/multiapidataplane/v2/_metadata.json @@ -79,9 +79,8 @@ "config": { "credential": true, "credential_scopes": [], - "credential_default_policy_type": "BearerTokenCredentialPolicy", - "credential_default_policy_type_has_async_version": true, - "credential_key_header_name": null, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"]}, \"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\"]}, \"local\": {\".._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}}, \"typing\": {\"azurecore\": {\"azure.core.credentials_async\": [\"AsyncTokenCredential\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiDataPlane/multiapidataplane/v3/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiDataPlane/multiapidataplane/v3/_metadata.json index fdd851cbb9b..f266f3b9932 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiDataPlane/multiapidataplane/v3/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiDataPlane/multiapidataplane/v3/_metadata.json @@ -79,9 +79,8 @@ "config": { "credential": true, "credential_scopes": [], - "credential_default_policy_type": "BearerTokenCredentialPolicy", - "credential_default_policy_type_has_async_version": true, - "credential_key_header_name": null, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"]}, \"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\"]}, \"local\": {\".._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}}, \"typing\": {\"azurecore\": {\"azure.core.credentials_async\": [\"AsyncTokenCredential\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiNoAsync/multiapinoasync/v1/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiNoAsync/multiapinoasync/v1/_metadata.json index c9adeee7e70..0752a89037c 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiNoAsync/multiapinoasync/v1/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiNoAsync/multiapinoasync/v1/_metadata.json @@ -79,9 +79,8 @@ "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, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "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\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiNoAsync/multiapinoasync/v2/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiNoAsync/multiapinoasync/v2/_metadata.json index 4cd2df6e4c6..ea58425746d 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiNoAsync/multiapinoasync/v2/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiNoAsync/multiapinoasync/v2/_metadata.json @@ -79,9 +79,8 @@ "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, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "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\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiNoAsync/multiapinoasync/v3/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiNoAsync/multiapinoasync/v3/_metadata.json index 888e55bd197..ce4328254da 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiNoAsync/multiapinoasync/v3/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiNoAsync/multiapinoasync/v3/_metadata.json @@ -79,9 +79,8 @@ "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, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "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\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiWithSubmodule/multiapiwithsubmodule/submodule/v1/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiWithSubmodule/multiapiwithsubmodule/submodule/v1/_metadata.json index 4dda6991cf6..94c43f5c587 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiWithSubmodule/multiapiwithsubmodule/submodule/v1/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiWithSubmodule/multiapiwithsubmodule/submodule/v1/_metadata.json @@ -79,9 +79,8 @@ "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, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "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\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiWithSubmodule/multiapiwithsubmodule/submodule/v2/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiWithSubmodule/multiapiwithsubmodule/submodule/v2/_metadata.json index a8d862e7c11..344b24756c5 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiWithSubmodule/multiapiwithsubmodule/submodule/v2/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiWithSubmodule/multiapiwithsubmodule/submodule/v2/_metadata.json @@ -79,9 +79,8 @@ "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, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "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\"]}}}" }, diff --git a/test/multiapi/Expected/AcceptanceTests/MultiapiWithSubmodule/multiapiwithsubmodule/submodule/v3/_metadata.json b/test/multiapi/Expected/AcceptanceTests/MultiapiWithSubmodule/multiapiwithsubmodule/submodule/v3/_metadata.json index b8cd0e8b87e..2b94d17fa00 100644 --- a/test/multiapi/Expected/AcceptanceTests/MultiapiWithSubmodule/multiapiwithsubmodule/submodule/v3/_metadata.json +++ b/test/multiapi/Expected/AcceptanceTests/MultiapiWithSubmodule/multiapiwithsubmodule/submodule/v3/_metadata.json @@ -79,9 +79,8 @@ "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, + "credential_call_sync": "policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", + "credential_call_async": "policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)", "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\"]}}}" }, From 549dd62329700e22caaf2c0cc13c532b09bd52d2 Mon Sep 17 00:00:00 2001 From: iscai-msft Date: Wed, 14 Jul 2021 15:54:06 -0400 Subject: [PATCH 2/3] challenge_authentication_policy -> default_authentication_policy --- autorest/codegen/__init__.py | 4 ++-- autorest/codegen/models/code_model.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/autorest/codegen/__init__.py b/autorest/codegen/__init__.py index 2a36cb157c6..233849c5bc3 100644 --- a/autorest/codegen/__init__.py +++ b/autorest/codegen/__init__.py @@ -176,7 +176,7 @@ def _initialize_credential_schema_policy( raise ValueError( "You have passed in credential scopes with default credential policy type " "AzureKeyCredentialPolicy. This is not allowed, since credential scopes is tied with " - f"{code_model.challenge_authentication_policy.name}. Instead, with this policy you must pass in " + f"{code_model.default_authentication_policy.name}. Instead, with this policy you must pass in " "--credential-key-header-name." ) if not credential_key_header_name: @@ -192,7 +192,7 @@ def _initialize_credential_schema_policy( def _handle_default_authentication_policy(self, code_model: CodeModel): credential_schema_policy_name = ( self._autorestapi.get_value("credential-default-policy-type") or - code_model.challenge_authentication_policy.name + code_model.default_authentication_policy.name ) credential_schema_policy = get_credential_schema_policy(credential_schema_policy_name) self._initialize_credential_schema_policy(code_model, credential_schema_policy) diff --git a/autorest/codegen/models/code_model.py b/autorest/codegen/models/code_model.py index bb0ada74d4b..c9ee83ccc03 100644 --- a/autorest/codegen/models/code_model.py +++ b/autorest/codegen/models/code_model.py @@ -202,7 +202,7 @@ def _lookup_operation(yaml_id: int) -> Operation: ] @property - def challenge_authentication_policy(self) -> CredentialSchemaPolicy: + def default_authentication_policy(self) -> CredentialSchemaPolicy: return BearerTokenCredentialPolicy() @property From 89904525fff9c5dedec954a7fba6ef493986c7d5 Mon Sep 17 00:00:00 2001 From: iscai-msft Date: Wed, 14 Jul 2021 19:36:15 -0400 Subject: [PATCH 3/3] improve code --- autorest/codegen/__init__.py | 63 ++++++++--------- autorest/codegen/models/code_model.py | 6 +- .../models/credential_schema_policy.py | 67 +++++++++---------- 3 files changed, 63 insertions(+), 73 deletions(-) diff --git a/autorest/codegen/__init__.py b/autorest/codegen/__init__.py index 61058f88e0c..62c4a55a09d 100644 --- a/autorest/codegen/__init__.py +++ b/autorest/codegen/__init__.py @@ -5,7 +5,7 @@ # -------------------------------------------------------------------------- import logging import sys -from typing import Dict, Any, Set, Union, List +from typing import Dict, Any, Set, Union, List, Type import yaml from .. import Plugin @@ -16,17 +16,9 @@ from .models.parameter_list import GlobalParameterList from .models.rest import Rest from .serializers import JinjaSerializer -from .models.credential_schema_policy import CredentialSchemaPolicy, get_credential_schema_policy +from .models.credential_schema_policy import CredentialSchemaPolicy, get_credential_schema_policy_type from .models.credential_schema import AzureKeyCredentialSchema, TokenCredentialSchema - -def _get_credential_default_policy_type_has_async_version(credential_default_policy_type: str) -> bool: - mapping = { - "BearerTokenCredentialPolicy": True, - "AzureKeyCredentialPolicy": False - } - return mapping[credential_default_policy_type] - def _build_convenience_layer(yaml_data: Dict[str, Any], code_model: CodeModel) -> None: # Create operations if code_model.show_operations and yaml_data.get("operationGroups"): @@ -181,8 +173,8 @@ def _get_credential_scopes(self, credential): return credential_scopes def _initialize_credential_schema_policy( - self, code_model: CodeModel, credential_schema_policy: CredentialSchemaPolicy - ): + self, code_model: CodeModel, credential_schema_policy: Type[CredentialSchemaPolicy] + ) -> CredentialSchemaPolicy: credential_scopes = self._get_credential_scopes(code_model.options['credential']) credential_key_header_name = self._autorestapi.get_value('credential-key-header-name') azure_arm = code_model.options['azure_arm'] @@ -200,47 +192,48 @@ def _initialize_credential_schema_policy( "but not the --credential-scopes flag set while generating non-management plane code. " "This is not recommend because it forces the customer to pass credential scopes " "through kwargs if they want to authenticate.", - credential_schema_policy.name + credential_schema_policy.name() ) credential_scopes = [] if credential_key_header_name: raise ValueError( "You have passed in a credential key header name with default credential policy type " - f"{credential_schema_policy.name}. This is not allowed, since credential key header " + f"{credential_schema_policy.name()}. This is not allowed, since credential key header " "name is tied with AzureKeyCredentialPolicy. Instead, with this policy it is recommend you " "pass in --credential-scopes." ) - credential_schema_policy.initialize( + return credential_schema_policy( credential=TokenCredentialSchema(async_mode=False), credential_scopes=credential_scopes, ) - else: - # currently the only other credential policy is AzureKeyCredentialPolicy - if credential_scopes: - raise ValueError( - "You have passed in credential scopes with default credential policy type " - "AzureKeyCredentialPolicy. This is not allowed, since credential scopes is tied with " - f"{code_model.default_authentication_policy.name}. Instead, with this policy you must pass in " - "--credential-key-header-name." - ) - if not credential_key_header_name: - credential_key_header_name = "api-key" - _LOGGER.info( - "Defaulting the AzureKeyCredentialPolicy header's name to 'api-key'" - ) - credential_schema_policy.initialize( - credential=AzureKeyCredentialSchema(), - credential_key_header_name=credential_key_header_name, + # currently the only other credential policy is AzureKeyCredentialPolicy + if credential_scopes: + raise ValueError( + "You have passed in credential scopes with default credential policy type " + "AzureKeyCredentialPolicy. This is not allowed, since credential scopes is tied with " + f"{code_model.default_authentication_policy.name()}. Instead, with this policy you must pass in " + "--credential-key-header-name." + ) + if not credential_key_header_name: + credential_key_header_name = "api-key" + _LOGGER.info( + "Defaulting the AzureKeyCredentialPolicy header's name to 'api-key'" ) + return credential_schema_policy( + credential=AzureKeyCredentialSchema(), + credential_key_header_name=credential_key_header_name, + ) def _handle_default_authentication_policy(self, code_model: CodeModel): credential_schema_policy_name = ( self._autorestapi.get_value("credential-default-policy-type") or - code_model.default_authentication_policy.name + code_model.default_authentication_policy.name() + ) + credential_schema_policy_type = get_credential_schema_policy_type(credential_schema_policy_name) + credential_schema_policy = self._initialize_credential_schema_policy( + code_model, credential_schema_policy_type ) - credential_schema_policy = get_credential_schema_policy(credential_schema_policy_name) - self._initialize_credential_schema_policy(code_model, credential_schema_policy) code_model.credential_schema_policy = credential_schema_policy diff --git a/autorest/codegen/models/code_model.py b/autorest/codegen/models/code_model.py index 6b598b72e88..25745fdc461 100644 --- a/autorest/codegen/models/code_model.py +++ b/autorest/codegen/models/code_model.py @@ -5,7 +5,7 @@ # -------------------------------------------------------------------------- from itertools import chain import logging -from typing import cast, List, Dict, Optional, Any, Set +from typing import cast, List, Dict, Optional, Any, Set, Type from .base_schema import BaseSchema from .credential_schema_policy import ( @@ -216,8 +216,8 @@ def _lookup_operation(yaml_id: int) -> Operation: ] @property - def default_authentication_policy(self) -> CredentialSchemaPolicy: - return BearerTokenCredentialPolicy() + def default_authentication_policy(self) -> Type[CredentialSchemaPolicy]: + return BearerTokenCredentialPolicy @property def credential_schema_policy(self) -> CredentialSchemaPolicy: diff --git a/autorest/codegen/models/credential_schema_policy.py b/autorest/codegen/models/credential_schema_policy.py index d56270342c0..a3fb5d3743e 100644 --- a/autorest/codegen/models/credential_schema_policy.py +++ b/autorest/codegen/models/credential_schema_policy.py @@ -4,70 +4,67 @@ # license information. # -------------------------------------------------------------------------- from abc import abstractmethod -from typing import Optional +from typing import List from .credential_schema import CredentialSchema class CredentialSchemaPolicy: - name: Optional[str] = None - def __init__(self) -> None: - self._credential = None - - @property - def credential(self) -> CredentialSchema: - if not self._credential: - raise ValueError( - "You have not initialized this policy with its credential yet" - ) - return self._credential - - def initialize(self, credential, **kwargs): # pylint: disable=unused-argument - """Initialize your schema policy""" - self._credential = credential + def __init__(self, credential: CredentialSchema, *args, **kwargs) -> None: # pylint: disable=unused-argument + self.credential = credential @abstractmethod def call(self, async_mode: bool) -> str: ... + @classmethod + def name(cls): + return cls.__name__ + class BearerTokenCredentialPolicy(CredentialSchemaPolicy): - name = "BearerTokenCredentialPolicy" - def __init__(self) -> None: - super().__init__() - self.credential_scopes = None + def __init__( + self, + credential: CredentialSchema, + credential_scopes: List[str] + ) -> None: + super().__init__(credential) + self._credential_scopes = credential_scopes - def initialize(self, credential, **kwargs): - super().initialize(credential) - self.credential_scopes = kwargs.pop("credential_scopes") + @property + def credential_scopes(self): + return self._credential_scopes def call(self, async_mode: bool) -> str: - policy_name = f"Async{self.name}" if async_mode else self.name + policy_name = f"Async{self.name()}" if async_mode else self.name() return f"policies.{policy_name}(self.credential, *self.credential_scopes, **kwargs)" class AzureKeyCredentialPolicy(CredentialSchemaPolicy): - name = "AzureKeyCredentialPolicy" - def __init__(self) -> None: - super().__init__() - self.credential_key_header_name = None + def __init__( + self, + credential: CredentialSchema, + credential_key_header_name: str + ) -> None: + super().__init__(credential) + self._credential_key_header_name = credential_key_header_name - def initialize(self, credential, **kwargs): - super().initialize(credential) - self.credential_key_header_name = kwargs.pop("credential_key_header_name") + @property + def credential_key_header_name(self): + return self._credential_key_header_name def call(self, async_mode: bool) -> str: return f'policies.AzureKeyCredentialPolicy(self.credential, "{self.credential_key_header_name}", **kwargs)' -def get_credential_schema_policy(name): - policies = [BearerTokenCredentialPolicy(), AzureKeyCredentialPolicy()] +def get_credential_schema_policy_type(name): + policies = [BearerTokenCredentialPolicy, AzureKeyCredentialPolicy] try: - return next(p for p in policies if p.name.lower() == name.lower()) + return next(p for p in policies if p.name().lower() == name.lower()) except StopIteration: raise ValueError( "The credential policy you pass in with --credential-default-policy-type must be either " "{}".format( - " or ".join([p.name for p in policies]) + " or ".join([p.name() for p in policies]) ) )