"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
# @generated-id: 453a1d06d130

from .basesdk import BaseSDK
from .sdkconfiguration import SDKConfiguration
from mistralai.client.campaigns import Campaigns
from mistralai.client.chat_completion_events import ChatCompletionEvents
from mistralai.client.datasets import Datasets
from mistralai.client.judges import Judges
from typing import Optional


class Observability(BaseSDK):
    chat_completion_events: ChatCompletionEvents
    judges: Judges
    campaigns: Campaigns
    datasets: Datasets

    def __init__(
        self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
    ) -> None:
        BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
        self.sdk_configuration = sdk_config
        self._init_sdks()

    def _init_sdks(self):
        self.chat_completion_events = ChatCompletionEvents(
            self.sdk_configuration, parent_ref=self.parent_ref
        )
        self.judges = Judges(self.sdk_configuration, parent_ref=self.parent_ref)
        self.campaigns = Campaigns(self.sdk_configuration, parent_ref=self.parent_ref)
        self.datasets = Datasets(self.sdk_configuration, parent_ref=self.parent_ref)
