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

import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2
from .base_workbench_input import BaseWorkbenchInput
from .workbench_image import WorkbenchImage


class Notebook(BaseWorkbenchInput):
    """
    Describes the configuration for the service
    """

    type: typing.Literal["notebook"] = pydantic.Field(default="notebook")
    """
    +value=notebook
    """

    image: WorkbenchImage
    cull_timeout: typing.Optional[int] = pydantic.Field(default=30)
    """
    Stop the notebook instance after this much time in minutes of inactivity.
    The notebook instance will be stopped even if the notebook is open in your browser, but nothing is running on the notebook.
    """

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow")  # type: ignore # Pydantic v2
    else:

        class Config:
            smart_union = True
            extra = pydantic.Extra.allow
