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

from __future__ import annotations
from .v3_globaleventrules_entityowner import (
    V3GlobalEventRulesEntityOwner,
    V3GlobalEventRulesEntityOwnerTypedDict,
)
from .v3_globaleventrules_ruleset import (
    V3GlobalEventRulesRuleset,
    V3GlobalEventRulesRulesetTypedDict,
)
from datetime import datetime
from squadcast_sdk.types import BaseModel
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict


class V3GlobalEventRulesGlobalEventRuleInListTypedDict(TypedDict):
    id: NotRequired[int]
    org_id: NotRequired[str]
    team_id: NotRequired[str]
    name: NotRequired[str]
    description: NotRequired[str]
    routing_key: NotRequired[str]
    entity_owner: NotRequired[V3GlobalEventRulesEntityOwnerTypedDict]
    rulesets: NotRequired[List[V3GlobalEventRulesRulesetTypedDict]]
    created_at: NotRequired[datetime]
    created_by: NotRequired[str]
    updated_at: NotRequired[datetime]
    updated_by: NotRequired[str]


class V3GlobalEventRulesGlobalEventRuleInList(BaseModel):
    id: Optional[int] = None

    org_id: Optional[str] = None

    team_id: Optional[str] = None

    name: Optional[str] = None

    description: Optional[str] = None

    routing_key: Optional[str] = None

    entity_owner: Optional[V3GlobalEventRulesEntityOwner] = None

    rulesets: Optional[List[V3GlobalEventRulesRuleset]] = None

    created_at: Optional[datetime] = None

    created_by: Optional[str] = None

    updated_at: Optional[datetime] = None

    updated_by: Optional[str] = None
