# 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 .feature_status_common_model import FeatureStatusCommonModel
from .tests_feature_usage_common_model import TestsFeatureUsageCommonModel
from .workflow_features_usage_common_model import WorkflowFeaturesUsageCommonModel


class FeaturesUsageCommonModel(UncheckedBaseModel):
    language_detection: typing.Optional[FeatureStatusCommonModel] = None
    transfer_to_agent: typing.Optional[FeatureStatusCommonModel] = None
    transfer_to_number: typing.Optional[FeatureStatusCommonModel] = None
    multivoice: typing.Optional[FeatureStatusCommonModel] = None
    dtmf_tones: typing.Optional[FeatureStatusCommonModel] = None
    external_mcp_servers: typing.Optional[FeatureStatusCommonModel] = None
    pii_zrm_workspace: typing.Optional[bool] = None
    pii_zrm_agent: typing.Optional[bool] = None
    tool_dynamic_variable_updates: typing.Optional[FeatureStatusCommonModel] = None
    is_livekit: typing.Optional[bool] = None
    voicemail_detection: typing.Optional[FeatureStatusCommonModel] = None
    dtmf_input: typing.Optional[FeatureStatusCommonModel] = None
    workflow: typing.Optional[WorkflowFeaturesUsageCommonModel] = None
    agent_testing: typing.Optional[TestsFeatureUsageCommonModel] = None
    versioning: typing.Optional[FeatureStatusCommonModel] = None
    file_input: typing.Optional[FeatureStatusCommonModel] = None

    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
