"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from apideck_unify.types import BaseModel
from apideck_unify.utils import FieldMetadata
from typing import Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class FilesFilterTypedDict(TypedDict):
    drive_id: NotRequired[str]
    r"""ID of the drive to filter on"""
    folder_id: NotRequired[str]
    r"""ID of the folder to filter on. The root folder has an alias \"root\" """
    shared: NotRequired[bool]
    r"""Only return files and folders that are shared"""


class FilesFilter(BaseModel):
    drive_id: Annotated[Optional[str], FieldMetadata(query=True)] = None
    r"""ID of the drive to filter on"""

    folder_id: Annotated[Optional[str], FieldMetadata(query=True)] = None
    r"""ID of the folder to filter on. The root folder has an alias \"root\" """

    shared: Annotated[Optional[bool], FieldMetadata(query=True)] = None
    r"""Only return files and folders that are shared"""
