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

from __future__ import annotations
from .v4_statuspages_liststatuspagesresponse import (
    V4StatusPagesListStatusPagesResponse,
    V4StatusPagesListStatusPagesResponseTypedDict,
)
import pydantic
from squadcast_sdk.types import BaseModel
from squadcast_sdk.utils import FieldMetadata, QueryParamMetadata
from typing import Callable, Optional
from typing_extensions import Annotated, TypedDict


class StatusPagesListStatusPagesRequestTypedDict(TypedDict):
    page_size: int
    page_number: int
    filters_is_public: str
    team_id: str


class StatusPagesListStatusPagesRequest(BaseModel):
    page_size: Annotated[
        int,
        pydantic.Field(alias="pageSize"),
        FieldMetadata(query=QueryParamMetadata(style="form", explode=False)),
    ]

    page_number: Annotated[
        int,
        pydantic.Field(alias="pageNumber"),
        FieldMetadata(query=QueryParamMetadata(style="form", explode=False)),
    ]

    filters_is_public: Annotated[
        str,
        pydantic.Field(alias="filters.isPublic"),
        FieldMetadata(query=QueryParamMetadata(style="form", explode=False)),
    ]

    team_id: Annotated[
        str,
        pydantic.Field(alias="teamID"),
        FieldMetadata(query=QueryParamMetadata(style="form", explode=False)),
    ]


class StatusPagesListStatusPagesResponseTypedDict(TypedDict):
    result: V4StatusPagesListStatusPagesResponseTypedDict


class StatusPagesListStatusPagesResponse(BaseModel):
    next: Callable[[], Optional[StatusPagesListStatusPagesResponse]]

    result: V4StatusPagesListStatusPagesResponse
