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

from __future__ import annotations
import pydantic
from squadcast_sdk.types import BaseModel
from typing import Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class V3ServicesMaintenanceModeServiceMaintenanceTypedDict(TypedDict):
    maintenance_start_date: str
    daily: bool
    weekly: bool
    two_weekly: bool
    three_weekly: bool
    monthly: bool
    deleted: bool
    repeat_till: str
    maintenance_end_date: NotRequired[str]


class V3ServicesMaintenanceModeServiceMaintenance(BaseModel):
    maintenance_start_date: Annotated[str, pydantic.Field(alias="maintenanceStartDate")]

    daily: bool

    weekly: bool

    two_weekly: Annotated[bool, pydantic.Field(alias="twoWeekly")]

    three_weekly: Annotated[bool, pydantic.Field(alias="threeWeekly")]

    monthly: bool

    deleted: bool

    repeat_till: Annotated[str, pydantic.Field(alias="repeatTill")]

    maintenance_end_date: Annotated[
        Optional[str], pydantic.Field(alias="maintenanceEndDate")
    ] = None
