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

from __future__ import annotations
from .v3_incidents_incidentpriority import V3IncidentsIncidentPriority
from .v3_incidents_serviceownerfilter import (
    V3IncidentsServiceOwnerFilter,
    V3IncidentsServiceOwnerFilterTypedDict,
)
import pydantic
from squadcast_sdk.types import BaseModel
from typing import List
from typing_extensions import Annotated, TypedDict


class V3IncidentsExportIncidentsFilterTypedDict(TypedDict):
    r"""Filter criteria for incidents in an export."""

    services: List[str]
    sources: List[str]
    service_owner: V3IncidentsServiceOwnerFilterTypedDict
    r"""Filter criteria for service owner in an export."""
    assigned_to: List[str]
    assigned_to_user_i_ds_and_their_squads: List[str]
    statuses: List[str]
    priority: List[V3IncidentsIncidentPriority]
    tags: List[str]
    notes: str


class V3IncidentsExportIncidentsFilter(BaseModel):
    r"""Filter criteria for incidents in an export."""

    services: List[str]

    sources: List[str]

    service_owner: Annotated[
        V3IncidentsServiceOwnerFilter, pydantic.Field(alias="serviceOwner")
    ]
    r"""Filter criteria for service owner in an export."""

    assigned_to: List[str]

    assigned_to_user_i_ds_and_their_squads: Annotated[
        List[str], pydantic.Field(alias="assignedToUserIDsAndTheirSquads")
    ]

    statuses: List[str]

    priority: List[V3IncidentsIncidentPriority]

    tags: List[str]

    notes: str
