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

from __future__ import annotations
from .op import Op
from opperai.types import BaseModel
from typing import List, Union
from typing_extensions import TypeAliasType, TypedDict


Value1TypedDict = TypeAliasType("Value1TypedDict", Union[str, int, float])


Value1 = TypeAliasType("Value1", Union[str, int, float])


Value2TypedDict = TypeAliasType(
    "Value2TypedDict", Union[str, int, float, List[Value1TypedDict]]
)
r"""The value to filter on"""


Value2 = TypeAliasType("Value2", Union[str, int, float, List[Value1]])
r"""The value to filter on"""


class FilterTypedDict(TypedDict):
    field: str
    r"""The field to filter on"""
    operation: Op
    value: Value2TypedDict
    r"""The value to filter on"""


class Filter(BaseModel):
    field: str
    r"""The field to filter on"""

    operation: Op

    value: Value2
    r"""The value to filter on"""
