"""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 List
from typing_extensions import Annotated, TypedDict


class V4StatusPagesStatusPageComponentTypedDict(TypedDict):
    id: int
    name: str


class V4StatusPagesStatusPageComponent(BaseModel):
    id: int

    name: str


class V4StatusPagesStatusPageStatusTypedDict(TypedDict):
    id: int
    name: str
    color: str
    slug: str


class V4StatusPagesStatusPageStatus(BaseModel):
    id: int

    name: str

    color: str

    slug: str


class StatusMaintenanceTypedDict(TypedDict):
    id: int
    name: str
    color: str
    slug: str


class StatusMaintenance(BaseModel):
    id: int

    name: str

    color: str

    slug: str


class V4StatusPagesStatusPageTypedDict(TypedDict):
    id: int
    name: str
    is_public: bool
    domain_name: str
    custom_domain_name: str
    timezone: str
    logo_url: str
    components: List[V4StatusPagesStatusPageComponentTypedDict]
    is_custom_domain_enabled: bool
    is_custom_a_record_verified: bool
    is_custom_txt_verified: bool
    txt_record: str
    a_record: str
    subscribers_count: int
    status: V4StatusPagesStatusPageStatusTypedDict
    under_maintenance: bool
    status_maintenance: StatusMaintenanceTypedDict
    owner_type: str
    owner_id: str


class V4StatusPagesStatusPage(BaseModel):
    id: int

    name: str

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

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

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

    timezone: str

    logo_url: Annotated[str, pydantic.Field(alias="logoUrl")]

    components: List[V4StatusPagesStatusPageComponent]

    is_custom_domain_enabled: Annotated[
        bool, pydantic.Field(alias="isCustomDomainEnabled")
    ]

    is_custom_a_record_verified: Annotated[
        bool, pydantic.Field(alias="isCustomARecordVerified")
    ]

    is_custom_txt_verified: Annotated[bool, pydantic.Field(alias="isCustomTxtVerified")]

    txt_record: Annotated[str, pydantic.Field(alias="txtRecord")]

    a_record: Annotated[str, pydantic.Field(alias="aRecord")]

    subscribers_count: Annotated[int, pydantic.Field(alias="subscribersCount")]

    status: V4StatusPagesStatusPageStatus

    under_maintenance: Annotated[bool, pydantic.Field(alias="underMaintenance")]

    status_maintenance: Annotated[
        StatusMaintenance, pydantic.Field(alias="statusMaintenance")
    ]

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

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