# This file was auto-generated by Fern from our API Definition.

import typing

import pydantic
from ...core.pydantic_utilities import IS_PYDANTIC_V2
from ...core.unchecked_base_model import UncheckedBaseModel
from .start_agents_request_properties_avatar_vendor import StartAgentsRequestPropertiesAvatarVendor


class StartAgentsRequestPropertiesAvatar(UncheckedBaseModel):
    """
    Avatar configuration.
    """

    enable: typing.Optional[bool] = pydantic.Field(default=None)
    """
    Whether to enable the avatar function for the agent. To enable, set to `true` and configure the `vendor` and `params` fields.
    """

    vendor: typing.Optional[StartAgentsRequestPropertiesAvatarVendor] = pydantic.Field(default=None)
    """
    Avatar vendor. Supports the following values:
    - `akool`: Akool (Beta)
    - `heygen`: HeyGen (Beta)
    """

    params: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None)
    """
    The configuration parameters for the avatar vendor. See [AI Avatar Overview](https://docs.agora.io/en/conversational-ai/models/avatar/overview) for details.
    """

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
