10
10
from typing import Any
11
11
12
12
from azure .core import PipelineClient
13
+ from azure .core .pipeline import policies
13
14
from azure .core .rest import HttpRequest , HttpResponse
14
15
15
16
from . import models as _models
@@ -23,11 +24,11 @@ class KeyVaultClient(KeyVaultClientOperationsMixin): # pylint: disable=client-a
23
24
Vault service.
24
25
25
26
:ivar role_definitions: RoleDefinitionsOperations operations
26
- :vartype role_definitions: key_vault_client .operations.RoleDefinitionsOperations
27
+ :vartype role_definitions: azure.keyvault.v7_5 .operations.RoleDefinitionsOperations
27
28
:ivar role_assignments: RoleAssignmentsOperations operations
28
- :vartype role_assignments: key_vault_client .operations.RoleAssignmentsOperations
29
- :keyword api_version: Api Version. Default value is "7.5-preview.1 ". Note that overriding this
30
- default value may result in unsupported behavior.
29
+ :vartype role_assignments: azure.keyvault.v7_5 .operations.RoleAssignmentsOperations
30
+ :keyword api_version: Api Version. Default value is "7.5". Note that overriding this default
31
+ value may result in unsupported behavior.
31
32
:paramtype api_version: str
32
33
:keyword int polling_interval: Default waiting time between two polls for LRO operations if no
33
34
Retry-After header is present.
@@ -36,9 +37,27 @@ class KeyVaultClient(KeyVaultClientOperationsMixin): # pylint: disable=client-a
36
37
def __init__ (self , ** kwargs : Any ) -> None : # pylint: disable=missing-client-constructor-parameter-credential
37
38
_endpoint = "{vaultBaseUrl}"
38
39
self ._config = KeyVaultClientConfiguration (** kwargs )
39
- self ._client : PipelineClient = PipelineClient (base_url = _endpoint , config = self ._config , ** kwargs )
40
-
41
- client_models = {k : v for k , v in _models .__dict__ .items () if isinstance (v , type )}
40
+ _policies = kwargs .pop ("policies" , None )
41
+ if _policies is None :
42
+ _policies = [
43
+ policies .RequestIdPolicy (** kwargs ),
44
+ self ._config .headers_policy ,
45
+ self ._config .user_agent_policy ,
46
+ self ._config .proxy_policy ,
47
+ policies .ContentDecodePolicy (** kwargs ),
48
+ self ._config .redirect_policy ,
49
+ self ._config .retry_policy ,
50
+ self ._config .authentication_policy ,
51
+ self ._config .custom_hook_policy ,
52
+ self ._config .logging_policy ,
53
+ policies .DistributedTracingPolicy (** kwargs ),
54
+ policies .SensitiveHeaderCleanupPolicy (** kwargs ) if self ._config .redirect_policy else None ,
55
+ self ._config .http_logging_policy ,
56
+ ]
57
+ self ._client : PipelineClient = PipelineClient (base_url = _endpoint , policies = _policies , ** kwargs )
58
+
59
+ client_models = {k : v for k , v in _models ._models .__dict__ .items () if isinstance (v , type )}
60
+ client_models .update ({k : v for k , v in _models .__dict__ .items () if isinstance (v , type )})
42
61
self ._serialize = Serializer (client_models )
43
62
self ._deserialize = Deserializer (client_models )
44
63
self ._serialize .client_side_validation = False
@@ -49,13 +68,13 @@ def __init__(self, **kwargs: Any) -> None: # pylint: disable=missing-client-con
49
68
self ._client , self ._config , self ._serialize , self ._deserialize
50
69
)
51
70
52
- def _send_request (self , request : HttpRequest , ** kwargs : Any ) -> HttpResponse :
71
+ def send_request (self , request : HttpRequest , * , stream : bool = False , ** kwargs : Any ) -> HttpResponse :
53
72
"""Runs the network request through the client's chained policies.
54
73
55
74
>>> from azure.core.rest import HttpRequest
56
75
>>> request = HttpRequest("GET", "https://www.example.org/")
57
76
<HttpRequest [GET], url: 'https://www.example.org/'>
58
- >>> response = client._send_request (request)
77
+ >>> response = client.send_request (request)
59
78
<HttpResponse: 200 OK>
60
79
61
80
For more information on this code flow, see https://aka.ms/azsdk/dpcodegen/python/send_request
@@ -69,7 +88,7 @@ def _send_request(self, request: HttpRequest, **kwargs: Any) -> HttpResponse:
69
88
70
89
request_copy = deepcopy (request )
71
90
request_copy .url = self ._client .format_url (request_copy .url )
72
- return self ._client .send_request (request_copy , ** kwargs )
91
+ return self ._client .send_request (request_copy , stream = stream , ** kwargs ) # type: ignore
73
92
74
93
def close (self ) -> None :
75
94
self ._client .close ()
0 commit comments