"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from .observabilityarizedestination import (
    ObservabilityArizeDestination,
    ObservabilityArizeDestinationTypedDict,
)
from .observabilitybraintrustdestination import (
    ObservabilityBraintrustDestination,
    ObservabilityBraintrustDestinationTypedDict,
)
from .observabilityclickhousedestination import (
    ObservabilityClickhouseDestination,
    ObservabilityClickhouseDestinationTypedDict,
)
from .observabilitydatadogdestination import (
    ObservabilityDatadogDestination,
    ObservabilityDatadogDestinationTypedDict,
)
from .observabilitygrafanadestination import (
    ObservabilityGrafanaDestination,
    ObservabilityGrafanaDestinationTypedDict,
)
from .observabilitylangfusedestination import (
    ObservabilityLangfuseDestination,
    ObservabilityLangfuseDestinationTypedDict,
)
from .observabilitylangsmithdestination import (
    ObservabilityLangsmithDestination,
    ObservabilityLangsmithDestinationTypedDict,
)
from .observabilitynewrelicdestination import (
    ObservabilityNewrelicDestination,
    ObservabilityNewrelicDestinationTypedDict,
)
from .observabilityopikdestination import (
    ObservabilityOpikDestination,
    ObservabilityOpikDestinationTypedDict,
)
from .observabilityotelcollectordestination import (
    ObservabilityOtelCollectorDestination,
    ObservabilityOtelCollectorDestinationTypedDict,
)
from .observabilityposthogdestination import (
    ObservabilityPosthogDestination,
    ObservabilityPosthogDestinationTypedDict,
)
from .observabilityrampdestination import (
    ObservabilityRampDestination,
    ObservabilityRampDestinationTypedDict,
)
from .observabilitys3destination import (
    ObservabilityS3Destination,
    ObservabilityS3DestinationTypedDict,
)
from .observabilitysentrydestination import (
    ObservabilitySentryDestination,
    ObservabilitySentryDestinationTypedDict,
)
from .observabilitysnowflakedestination import (
    ObservabilitySnowflakeDestination,
    ObservabilitySnowflakeDestinationTypedDict,
)
from .observabilityweavedestination import (
    ObservabilityWeaveDestination,
    ObservabilityWeaveDestinationTypedDict,
)
from .observabilitywebhookdestination import (
    ObservabilityWebhookDestination,
    ObservabilityWebhookDestinationTypedDict,
)
from openrouter.utils import get_discriminator
from pydantic import Discriminator, Tag
from typing import Union
from typing_extensions import Annotated, TypeAliasType


ObservabilityDestinationTypedDict = TypeAliasType(
    "ObservabilityDestinationTypedDict",
    Union[
        ObservabilityArizeDestinationTypedDict,
        ObservabilityBraintrustDestinationTypedDict,
        ObservabilityClickhouseDestinationTypedDict,
        ObservabilityDatadogDestinationTypedDict,
        ObservabilityGrafanaDestinationTypedDict,
        ObservabilityLangfuseDestinationTypedDict,
        ObservabilityLangsmithDestinationTypedDict,
        ObservabilityNewrelicDestinationTypedDict,
        ObservabilityOpikDestinationTypedDict,
        ObservabilityOtelCollectorDestinationTypedDict,
        ObservabilityPosthogDestinationTypedDict,
        ObservabilityRampDestinationTypedDict,
        ObservabilityS3DestinationTypedDict,
        ObservabilitySentryDestinationTypedDict,
        ObservabilitySnowflakeDestinationTypedDict,
        ObservabilityWeaveDestinationTypedDict,
        ObservabilityWebhookDestinationTypedDict,
    ],
)


ObservabilityDestination = Annotated[
    Union[
        Annotated[ObservabilityArizeDestination, Tag("arize")],
        Annotated[ObservabilityBraintrustDestination, Tag("braintrust")],
        Annotated[ObservabilityClickhouseDestination, Tag("clickhouse")],
        Annotated[ObservabilityDatadogDestination, Tag("datadog")],
        Annotated[ObservabilityGrafanaDestination, Tag("grafana")],
        Annotated[ObservabilityLangfuseDestination, Tag("langfuse")],
        Annotated[ObservabilityLangsmithDestination, Tag("langsmith")],
        Annotated[ObservabilityNewrelicDestination, Tag("newrelic")],
        Annotated[ObservabilityOpikDestination, Tag("opik")],
        Annotated[ObservabilityOtelCollectorDestination, Tag("otel-collector")],
        Annotated[ObservabilityPosthogDestination, Tag("posthog")],
        Annotated[ObservabilityRampDestination, Tag("ramp")],
        Annotated[ObservabilityS3Destination, Tag("s3")],
        Annotated[ObservabilitySentryDestination, Tag("sentry")],
        Annotated[ObservabilitySnowflakeDestination, Tag("snowflake")],
        Annotated[ObservabilityWeaveDestination, Tag("weave")],
        Annotated[ObservabilityWebhookDestination, Tag("webhook")],
    ],
    Discriminator(lambda m: get_discriminator(m, "type", "type")),
]
