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
15- from . import models
18+ from . import models as _models
1619from ._configuration import AdvisorManagementClientConfiguration
1720from ._serialization import Deserializer , Serializer
1821from .operations import (
22+ AdvisorManagementClientOperationsMixin ,
23+ AdvisorScoresOperations ,
24+ AssessmentTypesOperations ,
25+ AssessmentsOperations ,
1926 ConfigurationsOperations ,
2027 Operations ,
2128 RecommendationMetadataOperations ,
2229 RecommendationsOperations ,
30+ ResiliencyReviewsOperations ,
2331 SuppressionsOperations ,
32+ TriageRecommendationsOperations ,
33+ WorkloadsOperations ,
2434)
2535
2636if TYPE_CHECKING :
27- # pylint: disable=unused-import,ungrouped-imports
2837 from azure .core .credentials import TokenCredential
2938
3039
31- class AdvisorManagementClient : # pylint: disable=client-accepts-api-version-keyword
40+ class AdvisorManagementClient ( AdvisorManagementClientOperationsMixin ) : # pylint: disable=too-many-instance-attributes
3241 """REST APIs for Azure Advisor.
3342
3443 :ivar recommendation_metadata: RecommendationMetadataOperations operations
@@ -42,14 +51,26 @@ class AdvisorManagementClient: # pylint: disable=client-accepts-api-version-key
4251 :vartype operations: azure.mgmt.advisor.operations.Operations
4352 :ivar suppressions: SuppressionsOperations operations
4453 :vartype suppressions: azure.mgmt.advisor.operations.SuppressionsOperations
54+ :ivar advisor_scores: AdvisorScoresOperations operations
55+ :vartype advisor_scores: azure.mgmt.advisor.operations.AdvisorScoresOperations
56+ :ivar assessments: AssessmentsOperations operations
57+ :vartype assessments: azure.mgmt.advisor.operations.AssessmentsOperations
58+ :ivar assessment_types: AssessmentTypesOperations operations
59+ :vartype assessment_types: azure.mgmt.advisor.operations.AssessmentTypesOperations
60+ :ivar workloads: WorkloadsOperations operations
61+ :vartype workloads: azure.mgmt.advisor.operations.WorkloadsOperations
62+ :ivar resiliency_reviews: ResiliencyReviewsOperations operations
63+ :vartype resiliency_reviews: azure.mgmt.advisor.operations.ResiliencyReviewsOperations
64+ :ivar triage_recommendations: TriageRecommendationsOperations operations
65+ :vartype triage_recommendations: azure.mgmt.advisor.operations.TriageRecommendationsOperations
4566 :param credential: Credential needed for the client to connect to Azure. Required.
4667 :type credential: ~azure.core.credentials.TokenCredential
4768 :param subscription_id: The Azure subscription ID. Required.
4869 :type subscription_id: str
4970 :param base_url: Service URL. Default value is "https://management.azure.com".
5071 :type base_url: str
51- :keyword api_version: Api Version. Default value is "2020-01 -01". Note that overriding this
52- default value may result in unsupported behavior.
72+ :keyword api_version: Api Version. Default value is "2023-09 -01-preview ". Note that overriding
73+ this default value may result in unsupported behavior.
5374 :paramtype api_version: str
5475 """
5576
@@ -63,9 +84,27 @@ def __init__(
6384 self ._config = AdvisorManagementClientConfiguration (
6485 credential = credential , subscription_id = subscription_id , ** kwargs
6586 )
66- self ._client = ARMPipelineClient (base_url = base_url , config = self ._config , ** kwargs )
67-
68- client_models = {k : v for k , v in models .__dict__ .items () if isinstance (v , type )}
87+ _policies = kwargs .pop ("policies" , None )
88+ if _policies is None :
89+ _policies = [
90+ policies .RequestIdPolicy (** kwargs ),
91+ self ._config .headers_policy ,
92+ self ._config .user_agent_policy ,
93+ self ._config .proxy_policy ,
94+ policies .ContentDecodePolicy (** kwargs ),
95+ ARMAutoResourceProviderRegistrationPolicy (),
96+ self ._config .redirect_policy ,
97+ self ._config .retry_policy ,
98+ self ._config .authentication_policy ,
99+ self ._config .custom_hook_policy ,
100+ self ._config .logging_policy ,
101+ policies .DistributedTracingPolicy (** kwargs ),
102+ policies .SensitiveHeaderCleanupPolicy (** kwargs ) if self ._config .redirect_policy else None ,
103+ self ._config .http_logging_policy ,
104+ ]
105+ self ._client : ARMPipelineClient = ARMPipelineClient (base_url = base_url , policies = _policies , ** kwargs )
106+
107+ client_models = {k : v for k , v in _models .__dict__ .items () if isinstance (v , type )}
69108 self ._serialize = Serializer (client_models )
70109 self ._deserialize = Deserializer (client_models )
71110 self ._serialize .client_side_validation = False
@@ -76,8 +115,20 @@ def __init__(
76115 self .recommendations = RecommendationsOperations (self ._client , self ._config , self ._serialize , self ._deserialize )
77116 self .operations = Operations (self ._client , self ._config , self ._serialize , self ._deserialize )
78117 self .suppressions = SuppressionsOperations (self ._client , self ._config , self ._serialize , self ._deserialize )
118+ self .advisor_scores = AdvisorScoresOperations (self ._client , self ._config , self ._serialize , self ._deserialize )
119+ self .assessments = AssessmentsOperations (self ._client , self ._config , self ._serialize , self ._deserialize )
120+ self .assessment_types = AssessmentTypesOperations (
121+ self ._client , self ._config , self ._serialize , self ._deserialize
122+ )
123+ self .workloads = WorkloadsOperations (self ._client , self ._config , self ._serialize , self ._deserialize )
124+ self .resiliency_reviews = ResiliencyReviewsOperations (
125+ self ._client , self ._config , self ._serialize , self ._deserialize
126+ )
127+ self .triage_recommendations = TriageRecommendationsOperations (
128+ self ._client , self ._config , self ._serialize , self ._deserialize
129+ )
79130
80- def _send_request (self , request : HttpRequest , ** kwargs : Any ) -> HttpResponse :
131+ def _send_request (self , request : HttpRequest , * , stream : bool = False , * *kwargs : Any ) -> HttpResponse :
81132 """Runs the network request through the client's chained policies.
82133
83134 >>> from azure.core.rest import HttpRequest
@@ -97,17 +148,14 @@ def _send_request(self, request: HttpRequest, **kwargs: Any) -> HttpResponse:
97148
98149 request_copy = deepcopy (request )
99150 request_copy .url = self ._client .format_url (request_copy .url )
100- return self ._client .send_request (request_copy , ** kwargs )
151+ return self ._client .send_request (request_copy , stream = stream , ** kwargs ) # type: ignore
101152
102- def close (self ):
103- # type: () -> None
153+ def close (self ) -> None :
104154 self ._client .close ()
105155
106- def __enter__ (self ):
107- # type: () -> AdvisorManagementClient
156+ def __enter__ (self ) -> Self :
108157 self ._client .__enter__ ()
109158 return self
110159
111- def __exit__ (self , * exc_details ):
112- # type: (Any) -> None
160+ def __exit__ (self , * exc_details : Any ) -> None :
113161 self ._client .__exit__ (* exc_details )
0 commit comments