77# --------------------------------------------------------------------------
88
99from copy import deepcopy
10- from typing import Any , TYPE_CHECKING
10+ from typing import Any , Optional , TYPE_CHECKING , cast
1111from typing_extensions import Self
1212
1313from azure .core .pipeline import policies
1414from azure .core .rest import HttpRequest , HttpResponse
15+ from azure .core .settings import settings
1516from azure .mgmt .core import ARMPipelineClient
1617from azure .mgmt .core .policies import ARMAutoResourceProviderRegistrationPolicy
18+ from azure .mgmt .core .tools import get_arm_endpoints
1719
1820from . import models as _models
1921from ._configuration import AVSClientConfiguration
20- from ._serialization import Deserializer , Serializer
22+ from ._utils . serialization import Deserializer , Serializer
2123from .operations import (
2224 AddonsOperations ,
2325 AuthorizationsOperations ,
3941)
4042
4143if TYPE_CHECKING :
42- # pylint: disable=unused-import,ungrouped-imports
4344 from azure .core .credentials import TokenCredential
4445
4546
46- class AVSClient : # pylint: disable=client-accepts-api-version-keyword, too-many-instance-attributes
47+ class AVSClient : # pylint: disable=too-many-instance-attributes
4748 """Azure VMware Solution API.
4849
4950 :ivar operations: Operations operations
@@ -84,7 +85,7 @@ class AVSClient: # pylint: disable=client-accepts-api-version-keyword,too-many-
8485 :type credential: ~azure.core.credentials.TokenCredential
8586 :param subscription_id: The ID of the target subscription. The value must be an UUID. Required.
8687 :type subscription_id: str
87- :param base_url: Service URL. Default value is "https://management.azure.com" .
88+ :param base_url: Service URL. Default value is None .
8889 :type base_url: str
8990 :keyword api_version: Api Version. Default value is "2023-09-01". Note that overriding this
9091 default value may result in unsupported behavior.
@@ -94,13 +95,17 @@ class AVSClient: # pylint: disable=client-accepts-api-version-keyword,too-many-
9495 """
9596
9697 def __init__ (
97- self ,
98- credential : "TokenCredential" ,
99- subscription_id : str ,
100- base_url : str = "https://management.azure.com" ,
101- ** kwargs : Any
98+ self , credential : "TokenCredential" , subscription_id : str , base_url : Optional [str ] = None , ** kwargs : Any
10299 ) -> None :
103- self ._config = AVSClientConfiguration (credential = credential , subscription_id = subscription_id , ** kwargs )
100+ _cloud = kwargs .pop ("cloud_setting" , None ) or settings .current .azure_cloud # type: ignore
101+ _endpoints = get_arm_endpoints (_cloud )
102+ if not base_url :
103+ base_url = _endpoints ["resource_manager" ]
104+ credential_scopes = kwargs .pop ("credential_scopes" , _endpoints ["credential_scopes" ])
105+ self ._config = AVSClientConfiguration (
106+ credential = credential , subscription_id = subscription_id , credential_scopes = credential_scopes , ** kwargs
107+ )
108+
104109 _policies = kwargs .pop ("policies" , None )
105110 if _policies is None :
106111 _policies = [
@@ -119,7 +124,7 @@ def __init__(
119124 policies .SensitiveHeaderCleanupPolicy (** kwargs ) if self ._config .redirect_policy else None ,
120125 self ._config .http_logging_policy ,
121126 ]
122- self ._client : ARMPipelineClient = ARMPipelineClient (base_url = base_url , policies = _policies , ** kwargs )
127+ self ._client : ARMPipelineClient = ARMPipelineClient (base_url = cast ( str , base_url ) , policies = _policies , ** kwargs )
123128
124129 client_models = {k : v for k , v in _models .__dict__ .items () if isinstance (v , type )}
125130 self ._serialize = Serializer (client_models )
0 commit comments