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

from __future__ import annotations
from .v3_globaleventrules_ruleaction import (
    V3GlobalEventRulesRuleAction,
    V3GlobalEventRulesRuleActionTypedDict,
)
from datetime import datetime
from squadcast_sdk.types import BaseModel
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict


class V3GlobalEventRulesRulesetTypedDict(TypedDict):
    id: NotRequired[int]
    global_event_rule_id: NotRequired[int]
    alert_source_shortname: NotRequired[str]
    alert_source_version: NotRequired[str]
    ordering: NotRequired[List[int]]
    catch_all_action: NotRequired[V3GlobalEventRulesRuleActionTypedDict]
    created_at: NotRequired[datetime]
    created_by: NotRequired[str]
    updated_at: NotRequired[datetime]
    updated_by: NotRequired[str]


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

    global_event_rule_id: Optional[int] = None

    alert_source_shortname: Optional[str] = None

    alert_source_version: Optional[str] = None

    ordering: Optional[List[int]] = None

    catch_all_action: Optional[V3GlobalEventRulesRuleAction] = None

    created_at: Optional[datetime] = None

    created_by: Optional[str] = None

    updated_at: Optional[datetime] = None

    updated_by: Optional[str] = None
