"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
# @generated-id: 500ef6e85ba1

from __future__ import annotations
from .systemmessagecontentchunks import (
    SystemMessageContentChunks,
    SystemMessageContentChunksTypedDict,
)
from mistralai.client.types import BaseModel
from mistralai.client.utils import validate_const
import pydantic
from pydantic.functional_validators import AfterValidator
from typing import List, Literal, Union
from typing_extensions import Annotated, TypeAliasType, TypedDict


SystemMessageContentTypedDict = TypeAliasType(
    "SystemMessageContentTypedDict",
    Union[str, List[SystemMessageContentChunksTypedDict]],
)


SystemMessageContent = TypeAliasType(
    "SystemMessageContent", Union[str, List[SystemMessageContentChunks]]
)


class SystemMessageTypedDict(TypedDict):
    content: SystemMessageContentTypedDict
    role: Literal["system"]


class SystemMessage(BaseModel):
    content: SystemMessageContent

    role: Annotated[
        Annotated[Literal["system"], AfterValidator(validate_const("system"))],
        pydantic.Field(alias="role"),
    ] = "system"


try:
    SystemMessage.model_rebuild()
except NameError:
    pass
