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

from __future__ import annotations

import typing

import typing_extensions
from ..types.agent_v1update_speak_speak_endpoint_provider_aws_polly_engine import (
    AgentV1UpdateSpeakSpeakEndpointProviderAwsPollyEngine,
)
from ..types.agent_v1update_speak_speak_endpoint_provider_aws_polly_voice import (
    AgentV1UpdateSpeakSpeakEndpointProviderAwsPollyVoice,
)
from ..types.agent_v1update_speak_speak_endpoint_provider_cartesia_model_id import (
    AgentV1UpdateSpeakSpeakEndpointProviderCartesiaModelId,
)
from ..types.agent_v1update_speak_speak_endpoint_provider_cartesia_version import (
    AgentV1UpdateSpeakSpeakEndpointProviderCartesiaVersion,
)
from ..types.agent_v1update_speak_speak_endpoint_provider_deepgram_model import (
    AgentV1UpdateSpeakSpeakEndpointProviderDeepgramModel,
)
from ..types.agent_v1update_speak_speak_endpoint_provider_deepgram_version import (
    AgentV1UpdateSpeakSpeakEndpointProviderDeepgramVersion,
)
from ..types.agent_v1update_speak_speak_endpoint_provider_eleven_labs_model_id import (
    AgentV1UpdateSpeakSpeakEndpointProviderElevenLabsModelId,
)
from ..types.agent_v1update_speak_speak_endpoint_provider_eleven_labs_version import (
    AgentV1UpdateSpeakSpeakEndpointProviderElevenLabsVersion,
)
from ..types.agent_v1update_speak_speak_endpoint_provider_open_ai_model import (
    AgentV1UpdateSpeakSpeakEndpointProviderOpenAiModel,
)
from ..types.agent_v1update_speak_speak_endpoint_provider_open_ai_version import (
    AgentV1UpdateSpeakSpeakEndpointProviderOpenAiVersion,
)
from ..types.agent_v1update_speak_speak_endpoint_provider_open_ai_voice import (
    AgentV1UpdateSpeakSpeakEndpointProviderOpenAiVoice,
)
from .agent_v1update_speak_speak_endpoint_provider_aws_polly_credentials import (
    AgentV1UpdateSpeakSpeakEndpointProviderAwsPollyCredentialsParams,
)
from .agent_v1update_speak_speak_endpoint_provider_cartesia_voice import (
    AgentV1UpdateSpeakSpeakEndpointProviderCartesiaVoiceParams,
)


class AgentV1UpdateSpeakSpeakEndpointProvider_DeepgramParams(typing_extensions.TypedDict):
    type: typing.Literal["deepgram"]
    version: typing_extensions.NotRequired[AgentV1UpdateSpeakSpeakEndpointProviderDeepgramVersion]
    model: AgentV1UpdateSpeakSpeakEndpointProviderDeepgramModel


class AgentV1UpdateSpeakSpeakEndpointProvider_ElevenLabsParams(typing_extensions.TypedDict):
    type: typing.Literal["eleven_labs"]
    version: typing_extensions.NotRequired[AgentV1UpdateSpeakSpeakEndpointProviderElevenLabsVersion]
    model_id: AgentV1UpdateSpeakSpeakEndpointProviderElevenLabsModelId
    language: typing_extensions.NotRequired[str]
    language_code: typing_extensions.NotRequired[str]


class AgentV1UpdateSpeakSpeakEndpointProvider_CartesiaParams(typing_extensions.TypedDict):
    type: typing.Literal["cartesia"]
    version: typing_extensions.NotRequired[AgentV1UpdateSpeakSpeakEndpointProviderCartesiaVersion]
    model_id: AgentV1UpdateSpeakSpeakEndpointProviderCartesiaModelId
    voice: AgentV1UpdateSpeakSpeakEndpointProviderCartesiaVoiceParams
    language: typing_extensions.NotRequired[str]


class AgentV1UpdateSpeakSpeakEndpointProvider_OpenAiParams(typing_extensions.TypedDict):
    type: typing.Literal["open_ai"]
    version: typing_extensions.NotRequired[AgentV1UpdateSpeakSpeakEndpointProviderOpenAiVersion]
    model: AgentV1UpdateSpeakSpeakEndpointProviderOpenAiModel
    voice: AgentV1UpdateSpeakSpeakEndpointProviderOpenAiVoice


class AgentV1UpdateSpeakSpeakEndpointProvider_AwsPollyParams(typing_extensions.TypedDict):
    type: typing.Literal["aws_polly"]
    voice: AgentV1UpdateSpeakSpeakEndpointProviderAwsPollyVoice
    language: str
    language_code: typing_extensions.NotRequired[str]
    engine: AgentV1UpdateSpeakSpeakEndpointProviderAwsPollyEngine
    credentials: AgentV1UpdateSpeakSpeakEndpointProviderAwsPollyCredentialsParams


AgentV1UpdateSpeakSpeakEndpointProviderParams = typing.Union[
    AgentV1UpdateSpeakSpeakEndpointProvider_DeepgramParams,
    AgentV1UpdateSpeakSpeakEndpointProvider_ElevenLabsParams,
    AgentV1UpdateSpeakSpeakEndpointProvider_CartesiaParams,
    AgentV1UpdateSpeakSpeakEndpointProvider_OpenAiParams,
    AgentV1UpdateSpeakSpeakEndpointProvider_AwsPollyParams,
]
