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 MicrosoftDatadogClientConfiguration
1720from ._serialization import Deserializer , Serializer
1821from .operations import (
22+ BillingInfoOperations ,
1923 CreationSupportedOperations ,
2024 MarketplaceAgreementsOperations ,
2125 MonitoredSubscriptionsOperations ,
2630)
2731
2832if TYPE_CHECKING :
29- # pylint: disable=unused-import,ungrouped-imports
3033 from azure .core .credentials import TokenCredential
3134
3235
33- class MicrosoftDatadogClient : # pylint: disable=client-accepts-api-version-keyword, too-many-instance-attributes
36+ class MicrosoftDatadogClient : # pylint: disable=too-many-instance-attributes
3437 """MicrosoftDatadogClient.
3538
3639 :ivar marketplace_agreements: MarketplaceAgreementsOperations operations
@@ -41,6 +44,8 @@ class MicrosoftDatadogClient: # pylint: disable=client-accepts-api-version-keyw
4144 :vartype monitors: azure.mgmt.datadog.operations.MonitorsOperations
4245 :ivar operations: Operations operations
4346 :vartype operations: azure.mgmt.datadog.operations.Operations
47+ :ivar billing_info: BillingInfoOperations operations
48+ :vartype billing_info: azure.mgmt.datadog.operations.BillingInfoOperations
4449 :ivar tag_rules: TagRulesOperations operations
4550 :vartype tag_rules: azure.mgmt.datadog.operations.TagRulesOperations
4651 :ivar single_sign_on_configurations: SingleSignOnConfigurationsOperations operations
@@ -55,7 +60,7 @@ class MicrosoftDatadogClient: # pylint: disable=client-accepts-api-version-keyw
5560 :type subscription_id: str
5661 :param base_url: Service URL. Default value is "https://management.azure.com".
5762 :type base_url: str
58- :keyword api_version: Api Version. Default value is "2023-01-01 ". Note that overriding this
63+ :keyword api_version: Api Version. Default value is "2023-10-20 ". Note that overriding this
5964 default value may result in unsupported behavior.
6065 :paramtype api_version: str
6166 :keyword int polling_interval: Default waiting time between two polls for LRO operations if no
@@ -72,7 +77,25 @@ def __init__(
7277 self ._config = MicrosoftDatadogClientConfiguration (
7378 credential = credential , subscription_id = subscription_id , ** kwargs
7479 )
75- self ._client : ARMPipelineClient = ARMPipelineClient (base_url = base_url , config = self ._config , ** kwargs )
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 = base_url , policies = _policies , ** kwargs )
7699
77100 client_models = {k : v for k , v in _models .__dict__ .items () if isinstance (v , type )}
78101 self ._serialize = Serializer (client_models )
@@ -86,6 +109,7 @@ def __init__(
86109 )
87110 self .monitors = MonitorsOperations (self ._client , self ._config , self ._serialize , self ._deserialize )
88111 self .operations = Operations (self ._client , self ._config , self ._serialize , self ._deserialize )
112+ self .billing_info = BillingInfoOperations (self ._client , self ._config , self ._serialize , self ._deserialize )
89113 self .tag_rules = TagRulesOperations (self ._client , self ._config , self ._serialize , self ._deserialize )
90114 self .single_sign_on_configurations = SingleSignOnConfigurationsOperations (
91115 self ._client , self ._config , self ._serialize , self ._deserialize
@@ -94,7 +118,7 @@ def __init__(
94118 self ._client , self ._config , self ._serialize , self ._deserialize
95119 )
96120
97- def _send_request (self , request : HttpRequest , ** kwargs : Any ) -> HttpResponse :
121+ def _send_request (self , request : HttpRequest , * , stream : bool = False , * *kwargs : Any ) -> HttpResponse :
98122 """Runs the network request through the client's chained policies.
99123
100124 >>> from azure.core.rest import HttpRequest
@@ -114,12 +138,12 @@ def _send_request(self, request: HttpRequest, **kwargs: Any) -> HttpResponse:
114138
115139 request_copy = deepcopy (request )
116140 request_copy .url = self ._client .format_url (request_copy .url )
117- return self ._client .send_request (request_copy , ** kwargs )
141+ return self ._client .send_request (request_copy , stream = stream , ** kwargs ) # type: ignore
118142
119143 def close (self ) -> None :
120144 self ._client .close ()
121145
122- def __enter__ (self ) -> "MicrosoftDatadogClient" :
146+ def __enter__ (self ) -> Self :
123147 self ._client .__enter__ ()
124148 return self
125149
0 commit comments