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

from __future__ import annotations
from supertone.types import BaseModel
from supertone.utils import FieldMetadata, QueryParamMetadata
from typing import Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class SearchCustomVoicesRequestTypedDict(TypedDict):
    page_size: NotRequired[float]
    r"""Number of items per page (default: 20, min: 10, max: 100)"""
    next_page_token: NotRequired[str]
    r"""Token for pagination (obtained from the previous page's response)"""
    name: NotRequired[str]
    r"""Search across name. Space separated."""
    description: NotRequired[str]
    r"""Search across description. Space separated."""


class SearchCustomVoicesRequest(BaseModel):
    page_size: Annotated[
        Optional[float],
        FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
    ] = None
    r"""Number of items per page (default: 20, min: 10, max: 100)"""

    next_page_token: Annotated[
        Optional[str],
        FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
    ] = None
    r"""Token for pagination (obtained from the previous page's response)"""

    name: Annotated[
        Optional[str],
        FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
    ] = None
    r"""Search across name. Space separated."""

    description: Annotated[
        Optional[str],
        FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
    ] = None
    r"""Search across description. Space separated."""
