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

import datetime as dt

import typing_extensions
from ..core.serialization import FieldMetadata
from ..types.legacy_processor_type import LegacyProcessorType
from .legacy_processor_version_config import LegacyProcessorVersionConfigParams


class LegacyProcessorVersionParams(typing_extensions.TypedDict):
    object: str
    """
    The type of the object. In this case, it will always be `"document_processor_version"`.
    """

    id: str
    """
    The unique identifier for this version of the document processor.
    
    Example: `"exv_xK9mLPqRtN3vS8wF5hB2cQ"`
    """

    processor_id: typing_extensions.Annotated[str, FieldMetadata(alias="processorId")]
    """
    The ID of the parent document processor.
    
    Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
    """

    processor_name: typing_extensions.NotRequired[
        typing_extensions.Annotated[str, FieldMetadata(alias="processorName")]
    ]
    """
    The name of the parent document processor.
    
    Example: `"Invoice Processor"`
    """

    processor_type: typing_extensions.Annotated[LegacyProcessorType, FieldMetadata(alias="processorType")]
    description: typing_extensions.NotRequired[str]
    """
    An optional description of this version of the document processor.
    
    Example: `"Updated extraction fields for new invoice format"`
    """

    version: str
    """
    The version number or identifier for this specific version of the document processor. The draft version will have version="draft".
    
    Examples: `"1.0"`, `"2.1"`, `"draft"`
    """

    config: LegacyProcessorVersionConfigParams
    """
    The configuration settings for this version of the document processor. The structure of this object will vary depending on the processor type.
    
    See the configuration section in the "Guides" tab, for yout specific processor type, for more details on the configuration settings.
    """

    created_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="createdAt")]
    """
    The time (in UTC) at which this version of the document processor was created. Will follow the RFC 3339 format.
    
    Example: `"2024-03-21T15:30:00Z"`
    """

    updated_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="updatedAt")]
    """
    The time (in UTC) at which this version of the document processor was last updated. Will follow the RFC 3339 format.
    
    Example: `"2024-03-21T16:45:00Z"`
    """
