# This file was auto-generated by Fern from our API Definition.

import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel


class OtelExporterSpanAttributeFilter(UniversalBaseModel):
    """
    Filter configuration for filtering spans by attributes before exporting
    """

    field: typing.Literal["spanAttributes"] = pydantic.Field(default="spanAttributes")
    """
    Type of attribute field to filter on
    """

    key: str = pydantic.Field()
    """
    Key name of the span attribute to filter on
    """

    operator: typing.Literal["IN"] = pydantic.Field(default="IN")
    """
    Comparison operator to use for filtering
    """

    value: typing.List[str] = pydantic.Field()
    """
    Values
    """

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow")  # type: ignore # Pydantic v2
    else:

        class Config:
            smart_union = True
            extra = pydantic.Extra.allow
