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

from __future__ import annotations
from .price import Price, PriceTypedDict
from .smsmessage import SmsMessage, SmsMessageTypedDict
from gsmservice_gateway.types import BaseModel
from typing import Dict, List, Union
from typing_extensions import TypeAliasType, TypedDict


GetSmsPriceRequestBodyTypedDict = TypeAliasType(
    "GetSmsPriceRequestBodyTypedDict",
    Union[SmsMessageTypedDict, List[SmsMessageTypedDict]],
)
r"""To check the price of a single message or messages with the same content to multiple recipients, pass a single `SmsMessage` object with the properties of this message. To check the price of multiple messages with different content at the same time, pass a `List[SmsMessage]` with the properties of each message."""


GetSmsPriceRequestBody = TypeAliasType(
    "GetSmsPriceRequestBody", Union[SmsMessage, List[SmsMessage]]
)
r"""To check the price of a single message or messages with the same content to multiple recipients, pass a single `SmsMessage` object with the properties of this message. To check the price of multiple messages with different content at the same time, pass a `List[SmsMessage]` with the properties of each message."""


class GetSmsPriceResponseTypedDict(TypedDict):
    headers: Dict[str, List[str]]
    result: List[PriceTypedDict]


class GetSmsPriceResponse(BaseModel):
    headers: Dict[str, List[str]]

    result: List[Price]
