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 SqlVirtualMachineManagementClientConfiguration
17- from ._serialization import Deserializer , Serializer
22+ from ._utils . serialization import Deserializer , Serializer
1823from .operations import (
1924 AvailabilityGroupListenersOperations ,
2025 Operations ,
2429)
2530
2631if TYPE_CHECKING :
27- # pylint: disable=unused-import,ungrouped-imports
2832 from azure .core .credentials import TokenCredential
2933
3034
31- class SqlVirtualMachineManagementClient : # pylint: disable=client-accepts-api-version-keyword
35+ class SqlVirtualMachineManagementClient :
3236 """The SQL virtual machine management API provides a RESTful set of web APIs that interact with
3337 Azure Compute, Network & Storage services to manage your SQL Server virtual machine. The API
3438 enables users to create, delete and retrieve a SQL virtual machine, SQL virtual machine group
3539 or availability group listener.
3640
37- :ivar availability_group_listeners: AvailabilityGroupListenersOperations operations
38- :vartype availability_group_listeners:
39- azure.mgmt.sqlvirtualmachine.operations.AvailabilityGroupListenersOperations
4041 :ivar operations: Operations operations
4142 :vartype operations: azure.mgmt.sqlvirtualmachine.operations.Operations
4243 :ivar sql_virtual_machine_groups: SqlVirtualMachineGroupsOperations operations
@@ -45,53 +46,76 @@ class SqlVirtualMachineManagementClient: # pylint: disable=client-accepts-api-v
4546 :ivar sql_virtual_machines: SqlVirtualMachinesOperations operations
4647 :vartype sql_virtual_machines:
4748 azure.mgmt.sqlvirtualmachine.operations.SqlVirtualMachinesOperations
49+ :ivar availability_group_listeners: AvailabilityGroupListenersOperations operations
50+ :vartype availability_group_listeners:
51+ azure.mgmt.sqlvirtualmachine.operations.AvailabilityGroupListenersOperations
4852 :ivar sql_virtual_machine_troubleshoot: SqlVirtualMachineTroubleshootOperations operations
4953 :vartype sql_virtual_machine_troubleshoot:
5054 azure.mgmt.sqlvirtualmachine.operations.SqlVirtualMachineTroubleshootOperations
5155 :param credential: Credential needed for the client to connect to Azure. Required.
5256 :type credential: ~azure.core.credentials.TokenCredential
53- :param subscription_id: Subscription ID that identifies an Azure subscription. Required.
57+ :param subscription_id: The ID of the target subscription. Required.
5458 :type subscription_id: str
55- :param base_url: Service URL. Default value is "https://management.azure.com" .
59+ :param base_url: Service URL. Default value is None .
5660 :type base_url: str
57- :keyword api_version: Api Version. Default value is "2022-08 -01-preview ". Note that overriding
58- this default value may result in unsupported behavior.
61+ :keyword api_version: Api Version. Default value is "2023-10 -01". Note that overriding this
62+ default value may result in unsupported behavior.
5963 :paramtype api_version: str
6064 :keyword int polling_interval: Default waiting time between two polls for LRO operations if no
6165 Retry-After header is present.
6266 """
6367
6468 def __init__ (
65- self ,
66- credential : "TokenCredential" ,
67- subscription_id : str ,
68- base_url : str = "https://management.azure.com" ,
69- ** kwargs : Any
69+ self , credential : "TokenCredential" , subscription_id : str , base_url : Optional [str ] = None , ** kwargs : Any
7070 ) -> None :
71+ _cloud = kwargs .pop ("cloud_setting" , None ) or settings .current .azure_cloud # type: ignore
72+ _endpoints = get_arm_endpoints (_cloud )
73+ if not base_url :
74+ base_url = _endpoints ["resource_manager" ]
75+ credential_scopes = kwargs .pop ("credential_scopes" , _endpoints ["credential_scopes" ])
7176 self ._config = SqlVirtualMachineManagementClientConfiguration (
72- credential = credential , subscription_id = subscription_id , ** kwargs
77+ credential = credential , subscription_id = subscription_id , credential_scopes = credential_scopes , ** kwargs
7378 )
74- self ._client : ARMPipelineClient = ARMPipelineClient (base_url = base_url , config = self ._config , ** kwargs )
79+
80+ _policies = kwargs .pop ("policies" , None )
81+ if _policies is None :
82+ _policies = [
83+ policies .RequestIdPolicy (** kwargs ),
84+ self ._config .headers_policy ,
85+ self ._config .user_agent_policy ,
86+ self ._config .proxy_policy ,
87+ policies .ContentDecodePolicy (** kwargs ),
88+ ARMAutoResourceProviderRegistrationPolicy (),
89+ self ._config .redirect_policy ,
90+ self ._config .retry_policy ,
91+ self ._config .authentication_policy ,
92+ self ._config .custom_hook_policy ,
93+ self ._config .logging_policy ,
94+ policies .DistributedTracingPolicy (** kwargs ),
95+ policies .SensitiveHeaderCleanupPolicy (** kwargs ) if self ._config .redirect_policy else None ,
96+ self ._config .http_logging_policy ,
97+ ]
98+ self ._client : ARMPipelineClient = ARMPipelineClient (base_url = cast (str , base_url ), policies = _policies , ** kwargs )
7599
76100 client_models = {k : v for k , v in _models .__dict__ .items () if isinstance (v , type )}
77101 self ._serialize = Serializer (client_models )
78102 self ._deserialize = Deserializer (client_models )
79103 self ._serialize .client_side_validation = False
80- self .availability_group_listeners = AvailabilityGroupListenersOperations (
81- self ._client , self ._config , self ._serialize , self ._deserialize
82- )
83104 self .operations = Operations (self ._client , self ._config , self ._serialize , self ._deserialize )
84105 self .sql_virtual_machine_groups = SqlVirtualMachineGroupsOperations (
85106 self ._client , self ._config , self ._serialize , self ._deserialize
86107 )
87108 self .sql_virtual_machines = SqlVirtualMachinesOperations (
88109 self ._client , self ._config , self ._serialize , self ._deserialize
89110 )
111+ self .availability_group_listeners = AvailabilityGroupListenersOperations (
112+ self ._client , self ._config , self ._serialize , self ._deserialize
113+ )
90114 self .sql_virtual_machine_troubleshoot = SqlVirtualMachineTroubleshootOperations (
91115 self ._client , self ._config , self ._serialize , self ._deserialize
92116 )
93117
94- def _send_request (self , request : HttpRequest , ** kwargs : Any ) -> HttpResponse :
118+ def _send_request (self , request : HttpRequest , * , stream : bool = False , * *kwargs : Any ) -> HttpResponse :
95119 """Runs the network request through the client's chained policies.
96120
97121 >>> from azure.core.rest import HttpRequest
@@ -111,12 +135,12 @@ def _send_request(self, request: HttpRequest, **kwargs: Any) -> HttpResponse:
111135
112136 request_copy = deepcopy (request )
113137 request_copy .url = self ._client .format_url (request_copy .url )
114- return self ._client .send_request (request_copy , ** kwargs )
138+ return self ._client .send_request (request_copy , stream = stream , ** kwargs ) # type: ignore
115139
116140 def close (self ) -> None :
117141 self ._client .close ()
118142
119- def __enter__ (self ) -> "SqlVirtualMachineManagementClient" :
143+ def __enter__ (self ) -> Self :
120144 self ._client .__enter__ ()
121145 return self
122146
0 commit comments