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

import datetime as dt
import typing

import pydantic
from ..core.unchecked_base_model import UncheckedBaseModel
from .asset_common_with_includes_type import AssetCommonWithIncludesType
from .metadata_field import MetadataField
from .project_with_includes import ProjectWithIncludes
from .user import User


class FolderWithIncludes(UncheckedBaseModel):
    cover_file_id: typing.Optional[str] = pydantic.Field(default=None)
    """
    Cover asset ID
    """

    parent_id: typing.Optional[str] = pydantic.Field(default=None)
    """
    Parent Folder ID
    """

    created_at: dt.datetime = pydantic.Field()
    """
    Creation timestamp
    """

    creator: typing.Optional[User] = None
    id: str = pydantic.Field()
    """
    File, Folder, or Version Stack ID
    """

    metadata: typing.Optional[typing.List[MetadataField]] = pydantic.Field(default=None)
    """
    File attributes
    """

    name: str = pydantic.Field()
    """
    File or Folder Name
    """

    project: typing.Optional[ProjectWithIncludes] = None
    project_id: str = pydantic.Field()
    """
    Project ID
    """

    type: AssetCommonWithIncludesType
    updated_at: dt.datetime = pydantic.Field()
    """
    Update timestamp
    """

    view_url: str = pydantic.Field()
    """
    URL to view the asset in the Frame.io web application
    """

    model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)
