diff --git a/funkwhale_api_client/models/patched_upload_for_owner_request.py b/funkwhale_api_client/models/patched_upload_for_owner_request.py
index 40d1a4bbecf062bf46877643618a3400282ad94a..f6bbda2e46729ec451446474fc7e99cf43414d78 100644
--- a/funkwhale_api_client/models/patched_upload_for_owner_request.py
+++ b/funkwhale_api_client/models/patched_upload_for_owner_request.py
@@ -16,6 +16,7 @@ T = TypeVar("T", bound="PatchedUploadForOwnerRequest")
 class PatchedUploadForOwnerRequest:
     """
     Attributes:
+        filename (Union[Unset, str]):
         track (Union[Unset, None, TrackRequest]):
         library (Union[Unset, str]):
         channel (Union[Unset, str]):
@@ -26,6 +27,7 @@ class PatchedUploadForOwnerRequest:
         audio_file (Union[Unset, File]):
     """
 
+    filename: Union[Unset, str] = UNSET
     track: Union[Unset, None, TrackRequest] = UNSET
     library: Union[Unset, str] = UNSET
     channel: Union[Unset, str] = UNSET
@@ -37,6 +39,7 @@ class PatchedUploadForOwnerRequest:
     additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
 
     def to_dict(self) -> Dict[str, Any]:
+        filename = self.filename
         track: Union[Unset, None, Dict[str, Any]] = UNSET
         if not isinstance(self.track, Unset):
             track = self.track.to_dict() if self.track else None
@@ -60,6 +63,8 @@ class PatchedUploadForOwnerRequest:
         field_dict: Dict[str, Any] = {}
         field_dict.update(self.additional_properties)
         field_dict.update({})
+        if filename is not UNSET:
+            field_dict["filename"] = filename
         if track is not UNSET:
             field_dict["track"] = track
         if library is not UNSET:
@@ -80,6 +85,9 @@ class PatchedUploadForOwnerRequest:
         return field_dict
 
     def to_multipart(self) -> Dict[str, Any]:
+        filename = (
+            self.filename if isinstance(self.filename, Unset) else (None, str(self.filename).encode(), "text/plain")
+        )
         track: Union[Unset, Tuple[None, bytes, str]] = UNSET
         if not isinstance(self.track, Unset):
             track = (None, json.dumps(self.track.to_dict()).encode(), "application/json") if self.track else None
@@ -109,6 +117,8 @@ class PatchedUploadForOwnerRequest:
             {key: (None, str(value).encode(), "text/plain") for key, value in self.additional_properties.items()}
         )
         field_dict.update({})
+        if filename is not UNSET:
+            field_dict["filename"] = filename
         if track is not UNSET:
             field_dict["track"] = track
         if library is not UNSET:
@@ -131,6 +141,8 @@ class PatchedUploadForOwnerRequest:
     @classmethod
     def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
         d = src_dict.copy()
+        filename = d.pop("filename", UNSET)
+
         _track = d.pop("track", UNSET)
         track: Union[Unset, None, TrackRequest]
         if _track is None:
@@ -170,6 +182,7 @@ class PatchedUploadForOwnerRequest:
             audio_file = File(payload=BytesIO(_audio_file))
 
         patched_upload_for_owner_request = cls(
+            filename=filename,
             track=track,
             library=library,
             channel=channel,
diff --git a/funkwhale_api_client/models/upload_for_owner.py b/funkwhale_api_client/models/upload_for_owner.py
index 98c470588ae1b59ae7d12927d863e454bf71c03c..92cd2588c752ba17166fec018507f2edb92e8950 100644
--- a/funkwhale_api_client/models/upload_for_owner.py
+++ b/funkwhale_api_client/models/upload_for_owner.py
@@ -19,10 +19,10 @@ class UploadForOwner:
     """
     Attributes:
         uuid (str):
-        filename (str):
         creation_date (datetime.datetime):
         import_details (UploadForOwnerImportDetails):
         metadata (UploadForOwnerMetadata):
+        filename (Union[Unset, str]):
         mimetype (Optional[str]):
         track (Union[Unset, None, Track]):
         library (Union[Unset, str]):
@@ -38,7 +38,6 @@ class UploadForOwner:
     """
 
     uuid: str
-    filename: str
     creation_date: datetime.datetime
     import_details: UploadForOwnerImportDetails
     metadata: UploadForOwnerMetadata
@@ -47,6 +46,7 @@ class UploadForOwner:
     bitrate: Optional[int]
     size: Optional[int]
     import_date: Optional[datetime.datetime]
+    filename: Union[Unset, str] = UNSET
     track: Union[Unset, None, Track] = UNSET
     library: Union[Unset, str] = UNSET
     channel: Union[Unset, str] = UNSET
@@ -58,13 +58,13 @@ class UploadForOwner:
 
     def to_dict(self) -> Dict[str, Any]:
         uuid = self.uuid
-        filename = self.filename
         creation_date = self.creation_date.isoformat()
 
         import_details = self.import_details.to_dict()
 
         metadata = self.metadata.to_dict()
 
+        filename = self.filename
         mimetype = self.mimetype
         track: Union[Unset, None, Dict[str, Any]] = UNSET
         if not isinstance(self.track, Unset):
@@ -93,7 +93,6 @@ class UploadForOwner:
         field_dict.update(
             {
                 "uuid": uuid,
-                "filename": filename,
                 "creation_date": creation_date,
                 "import_details": import_details,
                 "metadata": metadata,
@@ -104,6 +103,8 @@ class UploadForOwner:
                 "import_date": import_date,
             }
         )
+        if filename is not UNSET:
+            field_dict["filename"] = filename
         if track is not UNSET:
             field_dict["track"] = track
         if library is not UNSET:
@@ -126,14 +127,14 @@ class UploadForOwner:
         d = src_dict.copy()
         uuid = d.pop("uuid")
 
-        filename = d.pop("filename")
-
         creation_date = isoparse(d.pop("creation_date"))
 
         import_details = UploadForOwnerImportDetails.from_dict(d.pop("import_details"))
 
         metadata = UploadForOwnerMetadata.from_dict(d.pop("metadata"))
 
+        filename = d.pop("filename", UNSET)
+
         mimetype = d.pop("mimetype")
 
         _track = d.pop("track", UNSET)
@@ -182,10 +183,10 @@ class UploadForOwner:
 
         upload_for_owner = cls(
             uuid=uuid,
-            filename=filename,
             creation_date=creation_date,
             import_details=import_details,
             metadata=metadata,
+            filename=filename,
             mimetype=mimetype,
             track=track,
             library=library,
diff --git a/funkwhale_api_client/models/upload_for_owner_request.py b/funkwhale_api_client/models/upload_for_owner_request.py
index 881d694fd48bdeee8f2ffbc190d654863b9bb132..9db162ad60ad31d698e58c445c7f083ca96329ec 100644
--- a/funkwhale_api_client/models/upload_for_owner_request.py
+++ b/funkwhale_api_client/models/upload_for_owner_request.py
@@ -17,6 +17,7 @@ class UploadForOwnerRequest:
     """
     Attributes:
         audio_file (File):
+        filename (Union[Unset, str]):
         track (Union[Unset, None, TrackRequest]):
         library (Union[Unset, str]):
         channel (Union[Unset, str]):
@@ -27,6 +28,7 @@ class UploadForOwnerRequest:
     """
 
     audio_file: File
+    filename: Union[Unset, str] = UNSET
     track: Union[Unset, None, TrackRequest] = UNSET
     library: Union[Unset, str] = UNSET
     channel: Union[Unset, str] = UNSET
@@ -39,6 +41,7 @@ class UploadForOwnerRequest:
     def to_dict(self) -> Dict[str, Any]:
         audio_file = self.audio_file.to_tuple()
 
+        filename = self.filename
         track: Union[Unset, None, Dict[str, Any]] = UNSET
         if not isinstance(self.track, Unset):
             track = self.track.to_dict() if self.track else None
@@ -63,6 +66,8 @@ class UploadForOwnerRequest:
                 "audio_file": audio_file,
             }
         )
+        if filename is not UNSET:
+            field_dict["filename"] = filename
         if track is not UNSET:
             field_dict["track"] = track
         if library is not UNSET:
@@ -83,6 +88,9 @@ class UploadForOwnerRequest:
     def to_multipart(self) -> Dict[str, Any]:
         audio_file = self.audio_file.to_tuple()
 
+        filename = (
+            self.filename if isinstance(self.filename, Unset) else (None, str(self.filename).encode(), "text/plain")
+        )
         track: Union[Unset, Tuple[None, bytes, str]] = UNSET
         if not isinstance(self.track, Unset):
             track = (None, json.dumps(self.track.to_dict()).encode(), "application/json") if self.track else None
@@ -113,6 +121,8 @@ class UploadForOwnerRequest:
                 "audio_file": audio_file,
             }
         )
+        if filename is not UNSET:
+            field_dict["filename"] = filename
         if track is not UNSET:
             field_dict["track"] = track
         if library is not UNSET:
@@ -135,6 +145,8 @@ class UploadForOwnerRequest:
         d = src_dict.copy()
         audio_file = File(payload=BytesIO(d.pop("audio_file")))
 
+        filename = d.pop("filename", UNSET)
+
         _track = d.pop("track", UNSET)
         track: Union[Unset, None, TrackRequest]
         if _track is None:
@@ -168,6 +180,7 @@ class UploadForOwnerRequest:
 
         upload_for_owner_request = cls(
             audio_file=audio_file,
+            filename=filename,
             track=track,
             library=library,
             channel=channel,