77# --------------------------------------------------------------------------
88
99from copy import deepcopy
10- from typing import Any , TYPE_CHECKING
10+ from typing import Any , Optional , TYPE_CHECKING , cast
11+ from typing_extensions import Self
1112
13+ from azure .core .pipeline import policies
1214from azure .core .rest import HttpRequest , HttpResponse
15+ from azure .core .settings import settings
1316from azure .mgmt .core import ARMPipelineClient
17+ from azure .mgmt .core .policies import ARMAutoResourceProviderRegistrationPolicy
18+ from azure .mgmt .core .tools import get_arm_endpoints
1419
1520from . import models as _models
1621from ._configuration import AzureQuantumMgmtClientConfiguration
17- from ._serialization import Deserializer , Serializer
18- from .operations import OfferingsOperations , Operations , WorkspaceOperations , WorkspacesOperations
22+ from ._utils . serialization import Deserializer , Serializer
23+ from .operations import OfferingsOperations , Operations , WorkspacesOperations
1924
2025if TYPE_CHECKING :
21- # pylint: disable=unused-import,ungrouped-imports
2226 from azure .core .credentials import TokenCredential
2327
2428
25- class AzureQuantumMgmtClient : # pylint: disable=client-accepts-api-version-keyword
26- """AzureQuantumMgmtClient .
29+ class AzureQuantumMgmtClient :
30+ """Microsoft.Quantum Resource Provider Management API .
2731
32+ :ivar operations: Operations operations
33+ :vartype operations: azure.mgmt.quantum.operations.Operations
2834 :ivar workspaces: WorkspacesOperations operations
2935 :vartype workspaces: azure.mgmt.quantum.operations.WorkspacesOperations
3036 :ivar offerings: OfferingsOperations operations
3137 :vartype offerings: azure.mgmt.quantum.operations.OfferingsOperations
32- :ivar operations: Operations operations
33- :vartype operations: azure.mgmt.quantum.operations.Operations
34- :ivar workspace: WorkspaceOperations operations
35- :vartype workspace: azure.mgmt.quantum.operations.WorkspaceOperations
3638 :param credential: Credential needed for the client to connect to Azure. Required.
3739 :type credential: ~azure.core.credentials.TokenCredential
3840 :param subscription_id: The ID of the target subscription. The value must be an UUID. Required.
3941 :type subscription_id: str
40- :param base_url: Service URL. Default value is "https://management.azure.com" .
42+ :param base_url: Service URL. Default value is None .
4143 :type base_url: str
42- :keyword api_version: Api Version. Default value is "2023-11-13 -preview". Note that overriding
44+ :keyword api_version: Api Version. Default value is "2025-01-01 -preview". Note that overriding
4345 this default value may result in unsupported behavior.
4446 :paramtype api_version: str
4547 :keyword int polling_interval: Default waiting time between two polls for LRO operations if no
4648 Retry-After header is present.
4749 """
4850
4951 def __init__ (
50- self ,
51- credential : "TokenCredential" ,
52- subscription_id : str ,
53- base_url : str = "https://management.azure.com" ,
54- ** kwargs : Any
52+ self , credential : "TokenCredential" , subscription_id : str , base_url : Optional [str ] = None , ** kwargs : Any
5553 ) -> None :
54+ _cloud = kwargs .pop ("cloud_setting" , None ) or settings .current .azure_cloud # type: ignore
55+ _endpoints = get_arm_endpoints (_cloud )
56+ if not base_url :
57+ base_url = _endpoints ["resource_manager" ]
58+ credential_scopes = kwargs .pop ("credential_scopes" , _endpoints ["credential_scopes" ])
5659 self ._config = AzureQuantumMgmtClientConfiguration (
57- credential = credential , subscription_id = subscription_id , ** kwargs
60+ credential = credential , subscription_id = subscription_id , credential_scopes = credential_scopes , ** kwargs
5861 )
59- self ._client : ARMPipelineClient = ARMPipelineClient (base_url = base_url , config = self ._config , ** kwargs )
62+
63+ _policies = kwargs .pop ("policies" , None )
64+ if _policies is None :
65+ _policies = [
66+ policies .RequestIdPolicy (** kwargs ),
67+ self ._config .headers_policy ,
68+ self ._config .user_agent_policy ,
69+ self ._config .proxy_policy ,
70+ policies .ContentDecodePolicy (** kwargs ),
71+ ARMAutoResourceProviderRegistrationPolicy (),
72+ self ._config .redirect_policy ,
73+ self ._config .retry_policy ,
74+ self ._config .authentication_policy ,
75+ self ._config .custom_hook_policy ,
76+ self ._config .logging_policy ,
77+ policies .DistributedTracingPolicy (** kwargs ),
78+ policies .SensitiveHeaderCleanupPolicy (** kwargs ) if self ._config .redirect_policy else None ,
79+ self ._config .http_logging_policy ,
80+ ]
81+ self ._client : ARMPipelineClient = ARMPipelineClient (base_url = cast (str , base_url ), policies = _policies , ** kwargs )
6082
6183 client_models = {k : v for k , v in _models .__dict__ .items () if isinstance (v , type )}
6284 self ._serialize = Serializer (client_models )
6385 self ._deserialize = Deserializer (client_models )
6486 self ._serialize .client_side_validation = False
87+ self .operations = Operations (self ._client , self ._config , self ._serialize , self ._deserialize )
6588 self .workspaces = WorkspacesOperations (self ._client , self ._config , self ._serialize , self ._deserialize )
6689 self .offerings = OfferingsOperations (self ._client , self ._config , self ._serialize , self ._deserialize )
67- self .operations = Operations (self ._client , self ._config , self ._serialize , self ._deserialize )
68- self .workspace = WorkspaceOperations (self ._client , self ._config , self ._serialize , self ._deserialize )
6990
70- def _send_request (self , request : HttpRequest , ** kwargs : Any ) -> HttpResponse :
91+ def _send_request (self , request : HttpRequest , * , stream : bool = False , * *kwargs : Any ) -> HttpResponse :
7192 """Runs the network request through the client's chained policies.
7293
7394 >>> from azure.core.rest import HttpRequest
@@ -87,12 +108,12 @@ def _send_request(self, request: HttpRequest, **kwargs: Any) -> HttpResponse:
87108
88109 request_copy = deepcopy (request )
89110 request_copy .url = self ._client .format_url (request_copy .url )
90- return self ._client .send_request (request_copy , ** kwargs )
111+ return self ._client .send_request (request_copy , stream = stream , ** kwargs ) # type: ignore
91112
92113 def close (self ) -> None :
93114 self ._client .close ()
94115
95- def __enter__ (self ) -> "AzureQuantumMgmtClient" :
116+ def __enter__ (self ) -> Self :
96117 self ._client .__enter__ ()
97118 return self
98119
0 commit comments