[docs]classFileResponse(BaseModel):"""Model to represent a single upload in the ListFilesResponse"""id:str=Field(alias="file_id")name:str=Field(alias="file_name")status:FileStatusuploaded_at:datetime.datetime=Field(alias="upload_ts")raw_size:intfolder_id:Optional[str]=Nonetags:Optional[list[str]]=Nonecompany_shared_permission:Optional[SharePermission]=None
[docs]@model_validator(mode="before")@classmethoddefset_company_shared_permission(cls,values:dict):ifvalues.get("shared_with"):values["company_shared_permission"]=(SharePermission.READ)# We only share with own organizationreturnvalues
[docs]classPostFileRequest(BaseModel):"""Model to represent the request of the post upload endpoint"""filename:strfolder_id:Optional[str]=Nonesource_url:Optional[str]=Noneupload_mode:Optional[str]=Noneproperties:Optional[dict]=Noneconnect_to:list[Literal["smart_topics"]]=["smart_topics"]extractor:Optional[ExtractorTypes]=None
[docs]classPostFileResponse(BaseModel):"""Model to represent the response of the post upload endpoint"""file_id:strlocation:str=Field(alias="Location")