88
99from copy import deepcopy
1010from typing import Any , TYPE_CHECKING
11+ from typing_extensions import Self
1112
13+ from azure .core .pipeline import policies
1214from azure .core .rest import HttpRequest , HttpResponse
1315from azure .mgmt .core import ARMPipelineClient
16+ from azure .mgmt .core .policies import ARMAutoResourceProviderRegistrationPolicy
1417
1518from . import models as _models
1619from ._configuration import ChaosManagementClientConfiguration
2629)
2730
2831if TYPE_CHECKING :
29- # pylint: disable=unused-import,ungrouped-imports
3032 from azure .core .credentials import TokenCredential
3133
3234
33- class ChaosManagementClient : # pylint: disable=client-accepts-api-version-keyword, too-many-instance-attributes
35+ class ChaosManagementClient : # pylint: disable=too-many-instance-attributes
3436 """Chaos Management Client.
3537
3638 :ivar capabilities: CapabilitiesOperations operations
@@ -39,22 +41,22 @@ class ChaosManagementClient: # pylint: disable=client-accepts-api-version-keywo
3941 :vartype capability_types: azure.mgmt.chaos.operations.CapabilityTypesOperations
4042 :ivar experiments: ExperimentsOperations operations
4143 :vartype experiments: azure.mgmt.chaos.operations.ExperimentsOperations
42- :ivar operation_statuses: OperationStatusesOperations operations
43- :vartype operation_statuses: azure.mgmt.chaos.operations.OperationStatusesOperations
4444 :ivar operations: Operations operations
4545 :vartype operations: azure.mgmt.chaos.operations.Operations
46- :ivar target_types: TargetTypesOperations operations
47- :vartype target_types : azure.mgmt.chaos.operations.TargetTypesOperations
46+ :ivar operation_statuses: OperationStatusesOperations operations
47+ :vartype operation_statuses : azure.mgmt.chaos.operations.OperationStatusesOperations
4848 :ivar targets: TargetsOperations operations
4949 :vartype targets: azure.mgmt.chaos.operations.TargetsOperations
50+ :ivar target_types: TargetTypesOperations operations
51+ :vartype target_types: azure.mgmt.chaos.operations.TargetTypesOperations
5052 :param credential: Credential needed for the client to connect to Azure. Required.
5153 :type credential: ~azure.core.credentials.TokenCredential
5254 :param subscription_id: GUID that represents an Azure subscription ID. Required.
5355 :type subscription_id: str
5456 :param base_url: Service URL. Default value is "https://management.azure.com".
5557 :type base_url: str
56- :keyword api_version: Api Version. Default value is "2024-01 -01". Note that overriding this
57- default value may result in unsupported behavior.
58+ :keyword api_version: Api Version. Default value is "2024-12 -01-preview ". Note that overriding
59+ this default value may result in unsupported behavior.
5860 :paramtype api_version: str
5961 :keyword int polling_interval: Default waiting time between two polls for LRO operations if no
6062 Retry-After header is present.
@@ -70,7 +72,25 @@ def __init__(
7072 self ._config = ChaosManagementClientConfiguration (
7173 credential = credential , subscription_id = subscription_id , ** kwargs
7274 )
73- self ._client : ARMPipelineClient = ARMPipelineClient (base_url = base_url , config = self ._config , ** kwargs )
75+ _policies = kwargs .pop ("policies" , None )
76+ if _policies is None :
77+ _policies = [
78+ policies .RequestIdPolicy (** kwargs ),
79+ self ._config .headers_policy ,
80+ self ._config .user_agent_policy ,
81+ self ._config .proxy_policy ,
82+ policies .ContentDecodePolicy (** kwargs ),
83+ ARMAutoResourceProviderRegistrationPolicy (),
84+ self ._config .redirect_policy ,
85+ self ._config .retry_policy ,
86+ self ._config .authentication_policy ,
87+ self ._config .custom_hook_policy ,
88+ self ._config .logging_policy ,
89+ policies .DistributedTracingPolicy (** kwargs ),
90+ policies .SensitiveHeaderCleanupPolicy (** kwargs ) if self ._config .redirect_policy else None ,
91+ self ._config .http_logging_policy ,
92+ ]
93+ self ._client : ARMPipelineClient = ARMPipelineClient (base_url = base_url , policies = _policies , ** kwargs )
7494
7595 client_models = {k : v for k , v in _models .__dict__ .items () if isinstance (v , type )}
7696 self ._serialize = Serializer (client_models )
@@ -81,14 +101,14 @@ def __init__(
81101 self ._client , self ._config , self ._serialize , self ._deserialize
82102 )
83103 self .experiments = ExperimentsOperations (self ._client , self ._config , self ._serialize , self ._deserialize )
104+ self .operations = Operations (self ._client , self ._config , self ._serialize , self ._deserialize )
84105 self .operation_statuses = OperationStatusesOperations (
85106 self ._client , self ._config , self ._serialize , self ._deserialize
86107 )
87- self .operations = Operations (self ._client , self ._config , self ._serialize , self ._deserialize )
88- self .target_types = TargetTypesOperations (self ._client , self ._config , self ._serialize , self ._deserialize )
89108 self .targets = TargetsOperations (self ._client , self ._config , self ._serialize , self ._deserialize )
109+ self .target_types = TargetTypesOperations (self ._client , self ._config , self ._serialize , self ._deserialize )
90110
91- def _send_request (self , request : HttpRequest , ** kwargs : Any ) -> HttpResponse :
111+ def _send_request (self , request : HttpRequest , * , stream : bool = False , * *kwargs : Any ) -> HttpResponse :
92112 """Runs the network request through the client's chained policies.
93113
94114 >>> from azure.core.rest import HttpRequest
@@ -108,12 +128,12 @@ def _send_request(self, request: HttpRequest, **kwargs: Any) -> HttpResponse:
108128
109129 request_copy = deepcopy (request )
110130 request_copy .url = self ._client .format_url (request_copy .url )
111- return self ._client .send_request (request_copy , ** kwargs )
131+ return self ._client .send_request (request_copy , stream = stream , ** kwargs ) # type: ignore
112132
113133 def close (self ) -> None :
114134 self ._client .close ()
115135
116- def __enter__ (self ) -> "ChaosManagementClient" :
136+ def __enter__ (self ) -> Self :
117137 self ._client .__enter__ ()
118138 return self
119139
0 commit comments