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

import typing

import pydantic
import typing_extensions
from ...core.pydantic_utilities import IS_PYDANTIC_V2
from ...core.serialization import FieldMetadata
from ...core.unchecked_base_model import UncheckedBaseModel
from ...types.provided_processor_output import ProvidedProcessorOutput


class WorkflowRunsCreateRequestOutputsItem(UncheckedBaseModel):
    processor_id: typing_extensions.Annotated[str, FieldMetadata(alias="processorId")] = pydantic.Field(
        alias="processorId"
    )
    """
    The ID of the extractor, classifier, or splitter that the output is associated with.
    Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
    """

    output: ProvidedProcessorOutput = pydantic.Field()
    """
    The output to be used for the workflow run. The structure will depend on the processor type. More details can be found on the "output type" page for the corresponding processor, in the guides section.
    """

    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
