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

from __future__ import annotations
from .message import Message, MessageTypedDict
from .smsmessage import SmsMessage, SmsMessageTypedDict
from gsmservice_gateway.types import BaseModel
from typing import Dict, List, Union
from typing_extensions import TypeAliasType, TypedDict


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


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


class SendSmsResponseTypedDict(TypedDict):
    headers: Dict[str, List[str]]
    result: List[MessageTypedDict]


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

    result: List[Message]
