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

import datetime as dt
import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .ml_model_hosting_interface import MlModelHostingInterface


class MlModelRead(UniversalBaseModel):
    """
    An ML Model that your Workspace has access to.
    """

    id: str
    name: str = pydantic.Field()
    """
    The unique name of the ML Model.
    """

    hosted_by: MlModelHostingInterface = pydantic.Field()
    """
    The organization hosting the ML Model.
    
    * `ANTHROPIC` - Anthropic
    * `AWS_BEDROCK` - AWS Bedrock
    * `AZURE_AI_FOUNDRY` - Azure AI Foundry
    * `AZURE_OPENAI` - Azure OpenAI
    * `BASETEN` - BaseTen
    * `CEREBRAS` - Cerebras
    * `COHERE` - Cohere
    * `CUSTOM` - Custom
    * `DEEP_SEEK` - DeepSeek
    * `FIREWORKS_AI` - Fireworks AI
    * `GOOGLE` - Google
    * `GOOGLE_VERTEX_AI` - Google Vertex AI
    * `GROQ` - Groq
    * `HUGGINGFACE` - HuggingFace
    * `IBM_WATSONX` - IBM WatsonX
    * `MISTRAL_AI` - Mistral AI
    * `MOSAICML` - MosaicML
    * `MYSTIC` - Mystic
    * `NVIDIA` - NVIDIA
    * `OPENAI` - OpenAI
    * `OPEN_ROUTER` - Open Router
    * `OPENPIPE` - OpenPipe
    * `PERPLEXITY` - Perplexity
    * `PYQ` - Pyq
    * `REPLICATE` - Replicate
    * `SAMBANOVA` - SambaNova
    * `TOGETHER_AI` - Together AI
    * `X_AI` - xAI
    * `FASTWEB` - Fastweb
    * `SWISSCOM` - Swisscom
    """

    introduced_on: dt.datetime

    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
