1# coding=utf-8 
    2# -------------------------------------------------------------------------- 
    3# Copyright (c) Microsoft Corporation. All rights reserved. 
    4# Licensed under the MIT License. See License.txt in the project root for license information. 
    5# Code generated by Microsoft (R) AutoRest Code Generator. 
    6# Changes may cause incorrect behavior and will be lost if the code is regenerated. 
    7# -------------------------------------------------------------------------- 
    8 
    9from typing import Any, TYPE_CHECKING 
    10 
    11from azure.core.configuration import Configuration 
    12from azure.core.pipeline import policies 
    13from azure.mgmt.core.policies import ARMChallengeAuthenticationPolicy, ARMHttpLoggingPolicy 
    14 
    15from ._version import VERSION 
    16 
    17if TYPE_CHECKING: 
    18    # pylint: disable=unused-import,ungrouped-imports 
    19    from azure.core.credentials import TokenCredential 
    20 
    21 
    22class DynatraceObservabilityMgmtClientConfiguration(Configuration):  # pylint: disable=too-many-instance-attributes 
    23    """Configuration for DynatraceObservabilityMgmtClient. 
    24 
    25    Note that all parameters used to create this instance are saved as instance 
    26    attributes. 
    27 
    28    :param credential: Credential needed for the client to connect to Azure. Required. 
    29    :type credential: ~azure.core.credentials.TokenCredential 
    30    :param subscription_id: The ID of the target subscription. Required. 
    31    :type subscription_id: str 
    32    :keyword api_version: Api Version. Default value is "2023-04-27". Note that overriding this 
    33     default value may result in unsupported behavior. 
    34    :paramtype api_version: str 
    35    """ 
    36 
    37    def __init__(self, credential: "TokenCredential", subscription_id: str, **kwargs: Any) -> None: 
    38        super(DynatraceObservabilityMgmtClientConfiguration, self).__init__(**kwargs) 
    39        api_version: str = kwargs.pop("api_version", "2023-04-27") 
    40 
    41        if credential is None: 
    42            raise ValueError("Parameter 'credential' must not be None.") 
    43        if subscription_id is None: 
    44            raise ValueError("Parameter 'subscription_id' must not be None.") 
    45 
    46        self.credential = credential 
    47        self.subscription_id = subscription_id 
    48        self.api_version = api_version 
    49        self.credential_scopes = kwargs.pop("credential_scopes", ["https://management.azure.com/.default"]) 
    50        kwargs.setdefault("sdk_moniker", "mgmt-dynatrace/{}".format(VERSION)) 
    51        self._configure(**kwargs) 
    52 
    53    def _configure(self, **kwargs: Any) -> None: 
    54        self.user_agent_policy = kwargs.get("user_agent_policy") or policies.UserAgentPolicy(**kwargs) 
    55        self.headers_policy = kwargs.get("headers_policy") or policies.HeadersPolicy(**kwargs) 
    56        self.proxy_policy = kwargs.get("proxy_policy") or policies.ProxyPolicy(**kwargs) 
    57        self.logging_policy = kwargs.get("logging_policy") or policies.NetworkTraceLoggingPolicy(**kwargs) 
    58        self.http_logging_policy = kwargs.get("http_logging_policy") or ARMHttpLoggingPolicy(**kwargs) 
    59        self.retry_policy = kwargs.get("retry_policy") or policies.RetryPolicy(**kwargs) 
    60        self.custom_hook_policy = kwargs.get("custom_hook_policy") or policies.CustomHookPolicy(**kwargs) 
    61        self.redirect_policy = kwargs.get("redirect_policy") or policies.RedirectPolicy(**kwargs) 
    62        self.authentication_policy = kwargs.get("authentication_policy") 
    63        if self.credential and not self.authentication_policy: 
    64            self.authentication_policy = ARMChallengeAuthenticationPolicy( 
    65                self.credential, *self.credential_scopes, **kwargs 
    66            )