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

from __future__ import annotations
from .v4_tag import V4Tag, V4TagTypedDict
import pydantic
from squadcast_sdk.types import BaseModel
from typing import List, Literal
from typing_extensions import Annotated, TypedDict


V4CreateScheduleRequestOwnerType = Literal[
    "user",
    "squad",
]


class V4CreateScheduleRequestTypedDict(TypedDict):
    name: str
    description: str
    team_id: str
    owner_id: str
    owner_type: V4CreateScheduleRequestOwnerType
    time_zone: str
    tags: List[V4TagTypedDict]


class V4CreateScheduleRequest(BaseModel):
    name: str

    description: str

    team_id: Annotated[str, pydantic.Field(alias="teamID")]

    owner_id: Annotated[str, pydantic.Field(alias="ownerID")]

    owner_type: Annotated[
        V4CreateScheduleRequestOwnerType, pydantic.Field(alias="ownerType")
    ]

    time_zone: Annotated[str, pydantic.Field(alias="timeZone")]

    tags: List[V4Tag]
