# 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 .project_status import ProjectStatus


class Project(UncheckedBaseModel):
    """
    Frame.io Project
    """

    created_at: dt.datetime = pydantic.Field()
    """
    Created Timestamp
    """

    id: str = pydantic.Field()
    """
    Project ID
    """

    name: str = pydantic.Field()
    """
    Project Name
    """

    restricted: typing.Optional[bool] = pydantic.Field(default=None)
    """
    Whether the project is restricted or not
    """

    root_folder_id: str = pydantic.Field()
    """
    Root Folder ID
    """

    status: ProjectStatus = pydantic.Field()
    """
    Project Status
    """

    storage: int = pydantic.Field()
    """
    Storage Usage
    """

    updated_at: dt.datetime = pydantic.Field()
    """
    Updated Timestamp
    """

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

    workspace_id: str = pydantic.Field()
    """
    Workspace ID
    """

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