"""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 V4StatusPagesUpdateStatusPageByIDResponseThemeColorTypedDict(TypedDict):
    primary: str
    secondary: str


class V4StatusPagesUpdateStatusPageByIDResponseThemeColor(BaseModel):
    primary: str

    secondary: str


class V4StatusPagesUpdateStatusPageByIDResponseTypedDict(TypedDict):
    id: int
    name: str
    is_public: bool
    timezone: str
    domain_name: str
    custom_domain_name: str
    contact_email: str
    theme_color: V4StatusPagesUpdateStatusPageByIDResponseThemeColorTypedDict
    allow_components_subscription: bool
    allow_maintenance_subscription: bool
    allow_webhook_subscription: bool
    hide_from_search_engines: bool
    owner_type: str
    owner_id: str
    team_id: str
    organization_id: NotRequired[str]
    description: NotRequired[str]


class V4StatusPagesUpdateStatusPageByIDResponse(BaseModel):
    id: int

    name: str

    is_public: Annotated[bool, pydantic.Field(alias="isPublic")]

    timezone: str

    domain_name: Annotated[str, pydantic.Field(alias="domainName")]

    custom_domain_name: Annotated[str, pydantic.Field(alias="customDomainName")]

    contact_email: Annotated[str, pydantic.Field(alias="contactEmail")]

    theme_color: Annotated[
        V4StatusPagesUpdateStatusPageByIDResponseThemeColor,
        pydantic.Field(alias="themeColor"),
    ]

    allow_components_subscription: Annotated[
        bool, pydantic.Field(alias="allowComponentsSubscription")
    ]

    allow_maintenance_subscription: Annotated[
        bool, pydantic.Field(alias="allowMaintenanceSubscription")
    ]

    allow_webhook_subscription: Annotated[
        bool, pydantic.Field(alias="allowWebhookSubscription")
    ]

    hide_from_search_engines: Annotated[
        bool, pydantic.Field(alias="hideFromSearchEngines")
    ]

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

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

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

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

    description: Optional[str] = None
