1010# --------------------------------------------------------------------------
1111
1212from typing import Any , Optional , TYPE_CHECKING
13+ from typing_extensions import Self
1314
15+ from azure .core .pipeline import policies
1416from azure .mgmt .core import ARMPipelineClient
17+ from azure .mgmt .core .policies import ARMAutoResourceProviderRegistrationPolicy
1518from azure .profiles import KnownProfiles , ProfileDefinition
1619from azure .profiles .multiapiclient import MultiApiClientMixin
1720
@@ -70,8 +73,28 @@ def __init__(
7073 profile : KnownProfiles = KnownProfiles .default ,
7174 ** kwargs : Any
7275 ):
76+ if api_version :
77+ kwargs .setdefault ('api_version' , api_version )
7378 self ._config = ManagedServiceIdentityClientConfiguration (credential , subscription_id , ** kwargs )
74- self ._client = ARMPipelineClient (base_url = base_url , config = self ._config , ** kwargs )
79+ _policies = kwargs .pop ("policies" , None )
80+ if _policies is None :
81+ _policies = [
82+ policies .RequestIdPolicy (** kwargs ),
83+ self ._config .headers_policy ,
84+ self ._config .user_agent_policy ,
85+ self ._config .proxy_policy ,
86+ policies .ContentDecodePolicy (** kwargs ),
87+ ARMAutoResourceProviderRegistrationPolicy (),
88+ self ._config .redirect_policy ,
89+ self ._config .retry_policy ,
90+ self ._config .authentication_policy ,
91+ self ._config .custom_hook_policy ,
92+ self ._config .logging_policy ,
93+ policies .DistributedTracingPolicy (** kwargs ),
94+ policies .SensitiveHeaderCleanupPolicy (** kwargs ) if self ._config .redirect_policy else None ,
95+ self ._config .http_logging_policy ,
96+ ]
97+ self ._client : ARMPipelineClient = ARMPipelineClient (base_url = base_url , policies = _policies , ** kwargs )
7598 super (ManagedServiceIdentityClient , self ).__init__ (
7699 api_version = api_version ,
77100 profile = profile
@@ -119,7 +142,7 @@ def federated_identity_credentials(self):
119142 else :
120143 raise ValueError ("API version {} does not have operation group 'federated_identity_credentials'" .format (api_version ))
121144 self ._config .api_version = api_version
122- return OperationClass (self ._client , self ._config , Serializer (self ._models_dict (api_version )), Deserializer (self ._models_dict (api_version )))
145+ return OperationClass (self ._client , self ._config , Serializer (self ._models_dict (api_version )), Deserializer (self ._models_dict (api_version )), api_version )
123146
124147 @property
125148 def operations (self ):
@@ -142,7 +165,7 @@ def operations(self):
142165 else :
143166 raise ValueError ("API version {} does not have operation group 'operations'" .format (api_version ))
144167 self ._config .api_version = api_version
145- return OperationClass (self ._client , self ._config , Serializer (self ._models_dict (api_version )), Deserializer (self ._models_dict (api_version )))
168+ return OperationClass (self ._client , self ._config , Serializer (self ._models_dict (api_version )), Deserializer (self ._models_dict (api_version )), api_version )
146169
147170 @property
148171 def system_assigned_identities (self ):
@@ -165,7 +188,7 @@ def system_assigned_identities(self):
165188 else :
166189 raise ValueError ("API version {} does not have operation group 'system_assigned_identities'" .format (api_version ))
167190 self ._config .api_version = api_version
168- return OperationClass (self ._client , self ._config , Serializer (self ._models_dict (api_version )), Deserializer (self ._models_dict (api_version )))
191+ return OperationClass (self ._client , self ._config , Serializer (self ._models_dict (api_version )), Deserializer (self ._models_dict (api_version )), api_version )
169192
170193 @property
171194 def user_assigned_identities (self ):
@@ -188,7 +211,7 @@ def user_assigned_identities(self):
188211 else :
189212 raise ValueError ("API version {} does not have operation group 'user_assigned_identities'" .format (api_version ))
190213 self ._config .api_version = api_version
191- return OperationClass (self ._client , self ._config , Serializer (self ._models_dict (api_version )), Deserializer (self ._models_dict (api_version )))
214+ return OperationClass (self ._client , self ._config , Serializer (self ._models_dict (api_version )), Deserializer (self ._models_dict (api_version )), api_version )
192215
193216 def close (self ):
194217 self ._client .close ()
0 commit comments