From c55dbbd10709eb8304815c2effafc14aa9557da0 Mon Sep 17 00:00:00 2001
From: wvffle <funkwhale@wvffle.net>
Date: Mon, 26 Sep 2022 23:53:10 +0000
Subject: [PATCH] Use schema from FW-2006

---
 schema.yml | 2651 ++++++++++++++++++++++++++++++++++------------------
 src/api.ts | 1185 ++++++++++++++---------
 2 files changed, 2478 insertions(+), 1358 deletions(-)

diff --git a/schema.yml b/schema.yml
index 3798ea1..fb23f96 100644
--- a/schema.yml
+++ b/schema.yml
@@ -59,7 +59,7 @@ info:
 paths:
   /api/v1/activity/:
     get:
-      operationId: activity_list
+      operationId: get_activity
       parameters:
       - name: ordering
         required: false
@@ -89,7 +89,7 @@ paths:
           description: No response body
   /api/v1/albums/:
     get:
-      operationId: albums_list
+      operationId: get_albums
       parameters:
       - in: query
         name: artist
@@ -191,7 +191,7 @@ paths:
                 $ref: '#/components/schemas/PaginatedAlbumList'
           description: ''
     post:
-      operationId: albums_create
+      operationId: create_album
       tags:
       - albums
       requestBody:
@@ -221,7 +221,7 @@ paths:
           description: ''
   /api/v1/albums/{id}/:
     get:
-      operationId: albums_retrieve
+      operationId: get_album
       parameters:
       - in: path
         name: id
@@ -242,7 +242,7 @@ paths:
                 $ref: '#/components/schemas/Album'
           description: ''
     delete:
-      operationId: albums_destroy
+      operationId: delete_album
       parameters:
       - in: path
         name: id
@@ -260,94 +260,101 @@ paths:
           description: No response body
   /api/v1/albums/{id}/fetches/:
     get:
-      operationId: albums_fetches_retrieve
+      operationId: get_album_fetches
       parameters:
-      - in: path
-        name: id
+      - in: query
+        name: artist
         schema:
           type: integer
-        description: A unique integer value identifying this album.
-        required: true
-      tags:
-      - albums
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/Album'
-          description: ''
-    post:
-      operationId: albums_fetches_create
-      parameters:
+      - in: query
+        name: channel
+        schema:
+          type: string
+      - in: query
+        name: content_category
+        schema:
+          type: string
+      - in: query
+        name: hidden
+        schema:
+          type: boolean
       - in: path
         name: id
         schema:
           type: integer
         description: A unique integer value identifying this album.
         required: true
-      tags:
-      - albums
-      requestBody:
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/Album'
-          application/x-www-form-urlencoded:
-            schema:
-              $ref: '#/components/schemas/Album'
-          multipart/form-data:
-            schema:
-              $ref: '#/components/schemas/Album'
-          application/activity+json:
-            schema:
-              $ref: '#/components/schemas/Album'
-        required: true
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/Album'
-          description: ''
-  /api/v1/albums/{id}/libraries/:
-    get:
-      operationId: albums_libraries_retrieve
-      parameters:
-      - in: path
-        name: id
+      - in: query
+        name: include_channels
+        schema:
+          type: boolean
+      - in: query
+        name: library
+        schema:
+          type: string
+      - in: query
+        name: mbid
+        schema:
+          type: string
+          format: uuid
+      - in: query
+        name: ordering
+        schema:
+          type: array
+          items:
+            type: string
+            enum:
+            - -artist__modification_date
+            - -creation_date
+            - -random
+            - -related
+            - -release_date
+            - -title
+            - artist__modification_date
+            - creation_date
+            - random
+            - related
+            - release_date
+            - title
+        description: Ordering
+        explode: false
+        style: form
+      - name: page
+        required: false
+        in: query
+        description: A page number within the paginated result set.
         schema:
           type: integer
-        description: A unique integer value identifying this album.
-        required: true
-      tags:
-      - albums
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/Album'
-          description: ''
-  /api/v1/albums/{id}/mutations/:
-    get:
-      operationId: albums_mutations_retrieve
-      parameters:
-      - in: path
-        name: id
+      - name: page_size
+        required: false
+        in: query
+        description: Number of results to return per page.
         schema:
           type: integer
-        description: A unique integer value identifying this album.
-        required: true
+      - in: query
+        name: playable
+        schema:
+          type: boolean
+      - in: query
+        name: q
+        schema:
+          type: string
+      - in: query
+        name: related
+        schema:
+          type: string
+      - in: query
+        name: scope
+        schema:
+          type: string
+      - in: query
+        name: tag
+        schema:
+          type: array
+          items:
+            type: string
+        explode: true
+        style: form
       tags:
       - albums
       security:
@@ -358,10 +365,10 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/Album'
+                $ref: '#/components/schemas/PaginatedFetchList'
           description: ''
     post:
-      operationId: albums_mutations_create
+      operationId: create_album_fetch
       parameters:
       - in: path
         name: id
@@ -394,24 +401,34 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/Album'
+                $ref: '#/components/schemas/Fetch'
           description: ''
-  /api/v1/artists/:
+  /api/v1/albums/{id}/libraries/:
     get:
-      operationId: artists_list
+      operationId: get_album_libraries
       parameters:
       - in: query
-        name: content_category
+        name: artist
+        schema:
+          type: integer
+      - in: query
+        name: channel
         schema:
           type: string
       - in: query
-        name: has_albums
+        name: content_category
         schema:
-          type: boolean
+          type: string
       - in: query
         name: hidden
         schema:
           type: boolean
+      - in: path
+        name: id
+        schema:
+          type: integer
+        description: A unique integer value identifying this album.
+        required: true
       - in: query
         name: include_channels
         schema:
@@ -425,22 +442,6 @@ paths:
         schema:
           type: string
           format: uuid
-      - in: query
-        name: name
-        schema:
-          type: string
-      - in: query
-        name: name__icontains
-        schema:
-          type: string
-      - in: query
-        name: name__iexact
-        schema:
-          type: string
-      - in: query
-        name: name__startswith
-        schema:
-          type: string
       - in: query
         name: ordering
         schema:
@@ -448,18 +449,18 @@ paths:
           items:
             type: string
             enum:
+            - -artist__modification_date
             - -creation_date
-            - -id
-            - -modification_date
-            - -name
             - -random
             - -related
+            - -release_date
+            - -title
+            - artist__modification_date
             - creation_date
-            - id
-            - modification_date
-            - name
             - random
             - related
+            - release_date
+            - title
         description: Ordering
         explode: false
         style: form
@@ -500,7 +501,7 @@ paths:
         explode: true
         style: form
       tags:
-      - artists
+      - albums
       security:
       - oauth2: []
       - ApplicationToken: []
@@ -509,56 +510,415 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/PaginatedArtistWithAlbumsList'
+                $ref: '#/components/schemas/PaginatedLibraryList'
           description: ''
-  /api/v1/artists/{id}/:
+  /api/v1/albums/{id}/mutations/:
     get:
-      operationId: artists_retrieve
+      operationId: get_album_mutations
       parameters:
-      - in: path
-        name: id
+      - in: query
+        name: artist
         schema:
           type: integer
-        description: A unique integer value identifying this artist.
-        required: true
-      tags:
-      - artists
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/ArtistWithAlbums'
-          description: ''
-  /api/v1/artists/{id}/fetches/:
-    get:
-      operationId: artists_fetches_retrieve
-      parameters:
+      - in: query
+        name: channel
+        schema:
+          type: string
+      - in: query
+        name: content_category
+        schema:
+          type: string
+      - in: query
+        name: hidden
+        schema:
+          type: boolean
       - in: path
         name: id
         schema:
           type: integer
-        description: A unique integer value identifying this artist.
+        description: A unique integer value identifying this album.
         required: true
-      tags:
-      - artists
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/ArtistWithAlbums'
-          description: ''
-    post:
-      operationId: artists_fetches_create
-      parameters:
-      - in: path
+      - in: query
+        name: include_channels
+        schema:
+          type: boolean
+      - in: query
+        name: library
+        schema:
+          type: string
+      - in: query
+        name: mbid
+        schema:
+          type: string
+          format: uuid
+      - in: query
+        name: ordering
+        schema:
+          type: array
+          items:
+            type: string
+            enum:
+            - -artist__modification_date
+            - -creation_date
+            - -random
+            - -related
+            - -release_date
+            - -title
+            - artist__modification_date
+            - creation_date
+            - random
+            - related
+            - release_date
+            - title
+        description: Ordering
+        explode: false
+        style: form
+      - name: page
+        required: false
+        in: query
+        description: A page number within the paginated result set.
+        schema:
+          type: integer
+      - name: page_size
+        required: false
+        in: query
+        description: Number of results to return per page.
+        schema:
+          type: integer
+      - in: query
+        name: playable
+        schema:
+          type: boolean
+      - in: query
+        name: q
+        schema:
+          type: string
+      - in: query
+        name: related
+        schema:
+          type: string
+      - in: query
+        name: scope
+        schema:
+          type: string
+      - in: query
+        name: tag
+        schema:
+          type: array
+          items:
+            type: string
+        explode: true
+        style: form
+      tags:
+      - albums
+      security:
+      - oauth2: []
+      - ApplicationToken: []
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/PaginatedAPIMutationList'
+          description: ''
+    post:
+      operationId: create_album_mutation
+      parameters:
+      - in: path
+        name: id
+        schema:
+          type: integer
+        description: A unique integer value identifying this album.
+        required: true
+      tags:
+      - albums
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Album'
+          application/x-www-form-urlencoded:
+            schema:
+              $ref: '#/components/schemas/Album'
+          multipart/form-data:
+            schema:
+              $ref: '#/components/schemas/Album'
+          application/activity+json:
+            schema:
+              $ref: '#/components/schemas/Album'
+        required: true
+      security:
+      - oauth2: []
+      - ApplicationToken: []
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/APIMutation'
+          description: ''
+  /api/v1/artists/:
+    get:
+      operationId: get_artists
+      parameters:
+      - in: query
+        name: content_category
+        schema:
+          type: string
+      - in: query
+        name: has_albums
+        schema:
+          type: boolean
+      - in: query
+        name: hidden
+        schema:
+          type: boolean
+      - in: query
+        name: include_channels
+        schema:
+          type: boolean
+      - in: query
+        name: library
+        schema:
+          type: string
+      - in: query
+        name: mbid
+        schema:
+          type: string
+          format: uuid
+      - in: query
+        name: name
+        schema:
+          type: string
+      - in: query
+        name: name__icontains
+        schema:
+          type: string
+      - in: query
+        name: name__iexact
+        schema:
+          type: string
+      - in: query
+        name: name__startswith
+        schema:
+          type: string
+      - in: query
+        name: ordering
+        schema:
+          type: array
+          items:
+            type: string
+            enum:
+            - -creation_date
+            - -id
+            - -modification_date
+            - -name
+            - -random
+            - -related
+            - creation_date
+            - id
+            - modification_date
+            - name
+            - random
+            - related
+        description: Ordering
+        explode: false
+        style: form
+      - name: page
+        required: false
+        in: query
+        description: A page number within the paginated result set.
+        schema:
+          type: integer
+      - name: page_size
+        required: false
+        in: query
+        description: Number of results to return per page.
+        schema:
+          type: integer
+      - in: query
+        name: playable
+        schema:
+          type: boolean
+      - in: query
+        name: q
+        schema:
+          type: string
+      - in: query
+        name: related
+        schema:
+          type: string
+      - in: query
+        name: scope
+        schema:
+          type: string
+      - in: query
+        name: tag
+        schema:
+          type: array
+          items:
+            type: string
+        explode: true
+        style: form
+      tags:
+      - artists
+      security:
+      - oauth2: []
+      - ApplicationToken: []
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/PaginatedArtistWithAlbumsList'
+          description: ''
+  /api/v1/artists/{id}/:
+    get:
+      operationId: get_artist
+      parameters:
+      - in: path
+        name: id
+        schema:
+          type: integer
+        description: A unique integer value identifying this artist.
+        required: true
+      tags:
+      - artists
+      security:
+      - oauth2: []
+      - ApplicationToken: []
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArtistWithAlbums'
+          description: ''
+  /api/v1/artists/{id}/fetches/:
+    get:
+      operationId: get_artist_fetches
+      parameters:
+      - in: query
+        name: content_category
+        schema:
+          type: string
+      - in: query
+        name: has_albums
+        schema:
+          type: boolean
+      - in: query
+        name: hidden
+        schema:
+          type: boolean
+      - in: path
+        name: id
+        schema:
+          type: integer
+        description: A unique integer value identifying this artist.
+        required: true
+      - in: query
+        name: include_channels
+        schema:
+          type: boolean
+      - in: query
+        name: library
+        schema:
+          type: string
+      - in: query
+        name: mbid
+        schema:
+          type: string
+          format: uuid
+      - in: query
+        name: name
+        schema:
+          type: string
+      - in: query
+        name: name__icontains
+        schema:
+          type: string
+      - in: query
+        name: name__iexact
+        schema:
+          type: string
+      - in: query
+        name: name__startswith
+        schema:
+          type: string
+      - in: query
+        name: ordering
+        schema:
+          type: array
+          items:
+            type: string
+            enum:
+            - -creation_date
+            - -id
+            - -modification_date
+            - -name
+            - -random
+            - -related
+            - creation_date
+            - id
+            - modification_date
+            - name
+            - random
+            - related
+        description: Ordering
+        explode: false
+        style: form
+      - name: page
+        required: false
+        in: query
+        description: A page number within the paginated result set.
+        schema:
+          type: integer
+      - name: page_size
+        required: false
+        in: query
+        description: Number of results to return per page.
+        schema:
+          type: integer
+      - in: query
+        name: playable
+        schema:
+          type: boolean
+      - in: query
+        name: q
+        schema:
+          type: string
+      - in: query
+        name: related
+        schema:
+          type: string
+      - in: query
+        name: scope
+        schema:
+          type: string
+      - in: query
+        name: tag
+        schema:
+          type: array
+          items:
+            type: string
+        explode: true
+        style: form
+      tags:
+      - artists
+      security:
+      - oauth2: []
+      - ApplicationToken: []
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/PaginatedFetchList'
+          description: ''
+    post:
+      operationId: create_artist_fetch
+      parameters:
+      - in: path
         name: id
         schema:
           type: integer
@@ -589,18 +949,117 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ArtistWithAlbums'
+                $ref: '#/components/schemas/Fetch'
           description: ''
   /api/v1/artists/{id}/libraries/:
     get:
-      operationId: artists_libraries_retrieve
+      operationId: get_artist_libraries
       parameters:
+      - in: query
+        name: content_category
+        schema:
+          type: string
+      - in: query
+        name: has_albums
+        schema:
+          type: boolean
+      - in: query
+        name: hidden
+        schema:
+          type: boolean
       - in: path
         name: id
         schema:
           type: integer
         description: A unique integer value identifying this artist.
         required: true
+      - in: query
+        name: include_channels
+        schema:
+          type: boolean
+      - in: query
+        name: library
+        schema:
+          type: string
+      - in: query
+        name: mbid
+        schema:
+          type: string
+          format: uuid
+      - in: query
+        name: name
+        schema:
+          type: string
+      - in: query
+        name: name__icontains
+        schema:
+          type: string
+      - in: query
+        name: name__iexact
+        schema:
+          type: string
+      - in: query
+        name: name__startswith
+        schema:
+          type: string
+      - in: query
+        name: ordering
+        schema:
+          type: array
+          items:
+            type: string
+            enum:
+            - -creation_date
+            - -id
+            - -modification_date
+            - -name
+            - -random
+            - -related
+            - creation_date
+            - id
+            - modification_date
+            - name
+            - random
+            - related
+        description: Ordering
+        explode: false
+        style: form
+      - name: page
+        required: false
+        in: query
+        description: A page number within the paginated result set.
+        schema:
+          type: integer
+      - name: page_size
+        required: false
+        in: query
+        description: Number of results to return per page.
+        schema:
+          type: integer
+      - in: query
+        name: playable
+        schema:
+          type: boolean
+      - in: query
+        name: q
+        schema:
+          type: string
+      - in: query
+        name: related
+        schema:
+          type: string
+      - in: query
+        name: scope
+        schema:
+          type: string
+      - in: query
+        name: tag
+        schema:
+          type: array
+          items:
+            type: string
+        explode: true
+        style: form
       tags:
       - artists
       security:
@@ -611,18 +1070,117 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ArtistWithAlbums'
+                $ref: '#/components/schemas/PaginatedLibraryList'
           description: ''
   /api/v1/artists/{id}/mutations/:
     get:
-      operationId: artists_mutations_retrieve
+      operationId: get_artist_mutations
       parameters:
+      - in: query
+        name: content_category
+        schema:
+          type: string
+      - in: query
+        name: has_albums
+        schema:
+          type: boolean
+      - in: query
+        name: hidden
+        schema:
+          type: boolean
       - in: path
         name: id
         schema:
-          type: integer
-        description: A unique integer value identifying this artist.
-        required: true
+          type: integer
+        description: A unique integer value identifying this artist.
+        required: true
+      - in: query
+        name: include_channels
+        schema:
+          type: boolean
+      - in: query
+        name: library
+        schema:
+          type: string
+      - in: query
+        name: mbid
+        schema:
+          type: string
+          format: uuid
+      - in: query
+        name: name
+        schema:
+          type: string
+      - in: query
+        name: name__icontains
+        schema:
+          type: string
+      - in: query
+        name: name__iexact
+        schema:
+          type: string
+      - in: query
+        name: name__startswith
+        schema:
+          type: string
+      - in: query
+        name: ordering
+        schema:
+          type: array
+          items:
+            type: string
+            enum:
+            - -creation_date
+            - -id
+            - -modification_date
+            - -name
+            - -random
+            - -related
+            - creation_date
+            - id
+            - modification_date
+            - name
+            - random
+            - related
+        description: Ordering
+        explode: false
+        style: form
+      - name: page
+        required: false
+        in: query
+        description: A page number within the paginated result set.
+        schema:
+          type: integer
+      - name: page_size
+        required: false
+        in: query
+        description: Number of results to return per page.
+        schema:
+          type: integer
+      - in: query
+        name: playable
+        schema:
+          type: boolean
+      - in: query
+        name: q
+        schema:
+          type: string
+      - in: query
+        name: related
+        schema:
+          type: string
+      - in: query
+        name: scope
+        schema:
+          type: string
+      - in: query
+        name: tag
+        schema:
+          type: array
+          items:
+            type: string
+        explode: true
+        style: form
       tags:
       - artists
       security:
@@ -633,10 +1191,10 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ArtistWithAlbums'
+                $ref: '#/components/schemas/PaginatedAPIMutationList'
           description: ''
     post:
-      operationId: artists_mutations_create
+      operationId: create_artist_mutation
       parameters:
       - in: path
         name: id
@@ -669,11 +1227,11 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ArtistWithAlbums'
+                $ref: '#/components/schemas/APIMutation'
           description: ''
   /api/v1/attachments/:
     post:
-      operationId: attachments_create
+      operationId: create_attachment
       tags:
       - attachments
       requestBody:
@@ -703,7 +1261,7 @@ paths:
           description: ''
   /api/v1/attachments/{uuid}/:
     get:
-      operationId: attachments_retrieve
+      operationId: get_attachment
       parameters:
       - in: path
         name: uuid
@@ -724,7 +1282,7 @@ paths:
                 $ref: '#/components/schemas/Attachment'
           description: ''
     delete:
-      operationId: attachments_destroy
+      operationId: delete_attachment
       parameters:
       - in: path
         name: uuid
@@ -742,7 +1300,7 @@ paths:
           description: No response body
   /api/v1/attachments/{uuid}/proxy/:
     get:
-      operationId: attachments_proxy_retrieve
+      operationId: get_attachment_proxy
       parameters:
       - in: path
         name: uuid
@@ -761,7 +1319,7 @@ paths:
           description: ''
   /api/v1/auth/password/change/:
     post:
-      operationId: auth_password_change_create
+      operationId: change_password
       description: |-
         Calls Django Auth SetPasswordForm save method.
 
@@ -796,7 +1354,7 @@ paths:
           description: ''
   /api/v1/auth/password/reset/:
     post:
-      operationId: auth_password_reset_create
+      operationId: reset_password
       description: |-
         Calls Django Auth PasswordResetForm save method.
 
@@ -832,7 +1390,7 @@ paths:
           description: ''
   /api/v1/auth/password/reset/confirm/:
     post:
-      operationId: auth_password_reset_confirm_create
+      operationId: confirm_password_reset
       description: |-
         Password reset e-mail link is confirmed, therefore
         this resets the user's password.
@@ -870,7 +1428,7 @@ paths:
           description: ''
   /api/v1/auth/registration/:
     post:
-      operationId: auth_registration_create
+      operationId: register
       tags:
       - auth
       requestBody:
@@ -900,7 +1458,7 @@ paths:
           description: ''
   /api/v1/auth/registration/change-password/:
     post:
-      operationId: auth_registration_change_password_create
+      operationId: change_password_2
       description: |-
         Calls Django Auth SetPasswordForm save method.
 
@@ -935,7 +1493,7 @@ paths:
           description: ''
   /api/v1/auth/registration/verify-email/:
     post:
-      operationId: auth_registration_verify_email_create
+      operationId: verify_email
       tags:
       - auth
       requestBody:
@@ -966,7 +1524,7 @@ paths:
           description: ''
   /api/v1/auth/user/:
     get:
-      operationId: auth_user_retrieve
+      operationId: get_auth_user
       description: |-
         Reads and updates UserModel fields
         Accepts GET, PUT, PATCH methods.
@@ -989,7 +1547,7 @@ paths:
                 $ref: '#/components/schemas/UserDetails'
           description: ''
     put:
-      operationId: auth_user_update
+      operationId: update_auth_user
       description: |-
         Reads and updates UserModel fields
         Accepts GET, PUT, PATCH methods.
@@ -1027,7 +1585,7 @@ paths:
                 $ref: '#/components/schemas/UserDetails'
           description: ''
     patch:
-      operationId: auth_user_partial_update
+      operationId: partial_update_auth_user
       description: |-
         Reads and updates UserModel fields
         Accepts GET, PUT, PATCH methods.
@@ -1065,7 +1623,7 @@ paths:
           description: ''
   /api/v1/channels/:
     get:
-      operationId: channels_list
+      operationId: get_channels
       parameters:
       - in: query
         name: external
@@ -1136,7 +1694,7 @@ paths:
                 $ref: '#/components/schemas/PaginatedChannelList'
           description: ''
     post:
-      operationId: channels_create
+      operationId: create_channel
       tags:
       - channels
       requestBody:
@@ -1166,7 +1724,7 @@ paths:
           description: ''
   /api/v1/channels/{composite}/:
     get:
-      operationId: channels_retrieve
+      operationId: get_channel
       parameters:
       - in: path
         name: composite
@@ -1187,7 +1745,7 @@ paths:
                 $ref: '#/components/schemas/Channel'
           description: ''
     put:
-      operationId: channels_update
+      operationId: update_channel
       parameters:
       - in: path
         name: composite
@@ -1223,7 +1781,7 @@ paths:
                 $ref: '#/components/schemas/ChannelUpdate'
           description: ''
     patch:
-      operationId: channels_partial_update
+      operationId: partial_update_channel
       parameters:
       - in: path
         name: composite
@@ -1258,7 +1816,7 @@ paths:
                 $ref: '#/components/schemas/ChannelUpdate'
           description: ''
     delete:
-      operationId: channels_destroy
+      operationId: delete_channel
       parameters:
       - in: path
         name: composite
@@ -1276,7 +1834,7 @@ paths:
           description: No response body
   /api/v1/channels/{composite}/rss/:
     get:
-      operationId: channels_rss_retrieve
+      operationId: get_channel_rss
       parameters:
       - in: path
         name: composite
@@ -1298,7 +1856,7 @@ paths:
           description: ''
   /api/v1/channels/{composite}/subscribe/:
     post:
-      operationId: channels_subscribe_create
+      operationId: subscribe_channel
       parameters:
       - in: path
         name: composite
@@ -1335,7 +1893,7 @@ paths:
           description: ''
   /api/v1/channels/{composite}/unsubscribe/:
     post:
-      operationId: channels_unsubscribe_create
+      operationId: unsubscribe_channel_2
       parameters:
       - in: path
         name: composite
@@ -1371,7 +1929,7 @@ paths:
                 $ref: '#/components/schemas/ChannelCreate'
           description: ''
     delete:
-      operationId: channels_unsubscribe_destroy
+      operationId: unsubscribe_channel
       parameters:
       - in: path
         name: composite
@@ -1389,7 +1947,7 @@ paths:
           description: No response body
   /api/v1/channels/metadata-choices/:
     get:
-      operationId: channels_metadata_choices_retrieve
+      operationId: get_channel_metadata_choices
       tags:
       - channels
       security:
@@ -1404,7 +1962,7 @@ paths:
           description: ''
   /api/v1/channels/rss-subscribe/:
     post:
-      operationId: channels_rss_subscribe_create
+      operationId: subscribe_channel_rss
       tags:
       - channels
       requestBody:
@@ -1434,7 +1992,7 @@ paths:
           description: ''
   /api/v1/favorites/tracks/:
     get:
-      operationId: favorites_tracks_list
+      operationId: get_favorite_tracks
       parameters:
       - in: query
         name: hidden
@@ -1479,7 +2037,7 @@ paths:
                 $ref: '#/components/schemas/PaginatedUserTrackFavoriteList'
           description: ''
     post:
-      operationId: favorites_tracks_create
+      operationId: favorite_track
       tags:
       - favorites
       requestBody:
@@ -1509,7 +2067,7 @@ paths:
           description: ''
   /api/v1/favorites/tracks/{id}/:
     delete:
-      operationId: favorites_tracks_destroy
+      operationId: delete_favorite_track
       parameters:
       - in: path
         name: id
@@ -1527,7 +2085,7 @@ paths:
           description: No response body
   /api/v1/favorites/tracks/all/:
     get:
-      operationId: favorites_tracks_all_retrieve
+      operationId: get_all_favorite_tracks
       description: |-
         Return all the favorites of the current user, with only limited data
         to have a performant endpoint and avoid lots of queries just to display
@@ -1546,7 +2104,7 @@ paths:
           description: ''
   /api/v1/favorites/tracks/remove/:
     post:
-      operationId: favorites_tracks_remove_create
+      operationId: unfavorite_track_2
       tags:
       - favorites
       requestBody:
@@ -1575,7 +2133,7 @@ paths:
                 $ref: '#/components/schemas/UserTrackFavoriteWrite'
           description: ''
     delete:
-      operationId: favorites_tracks_remove_destroy
+      operationId: unfavorite_track
       tags:
       - favorites
       security:
@@ -1586,7 +2144,7 @@ paths:
           description: No response body
   /api/v1/federation/actors/{full_username}/:
     get:
-      operationId: federation_actors_retrieve
+      operationId: get_federation_actor
       parameters:
       - in: path
         name: full_username
@@ -1608,7 +2166,7 @@ paths:
           description: ''
   /api/v1/federation/actors/{full_username}/libraries/:
     get:
-      operationId: federation_actors_libraries_retrieve
+      operationId: get_federation_actor_library
       parameters:
       - in: path
         name: full_username
@@ -1630,7 +2188,7 @@ paths:
           description: ''
   /api/v1/federation/domains/:
     get:
-      operationId: federation_domains_list
+      operationId: get_federation_domains
       parameters:
       - name: ordering
         required: false
@@ -1664,7 +2222,7 @@ paths:
           description: ''
   /api/v1/federation/domains/{name}/:
     get:
-      operationId: federation_domains_retrieve
+      operationId: get_federation_domain
       parameters:
       - in: path
         name: name
@@ -1686,7 +2244,7 @@ paths:
           description: ''
   /api/v1/federation/fetches/:
     post:
-      operationId: federation_fetches_create
+      operationId: create_federation_fetch
       tags:
       - federation
       requestBody:
@@ -1716,7 +2274,7 @@ paths:
           description: ''
   /api/v1/federation/fetches/{id}/:
     get:
-      operationId: federation_fetches_retrieve
+      operationId: get_federation_fetch
       parameters:
       - in: path
         name: id
@@ -1738,7 +2296,7 @@ paths:
           description: ''
   /api/v1/federation/follows/library/:
     get:
-      operationId: federation_follows_library_list
+      operationId: get_federation_library_follows
       parameters:
       - in: query
         name: approved
@@ -1775,7 +2333,7 @@ paths:
                 $ref: '#/components/schemas/PaginatedLibraryFollowList'
           description: ''
     post:
-      operationId: federation_follows_library_create
+      operationId: create_federation_library_follow
       tags:
       - federation
       requestBody:
@@ -1805,7 +2363,7 @@ paths:
           description: ''
   /api/v1/federation/follows/library/{uuid}/:
     get:
-      operationId: federation_follows_library_retrieve
+      operationId: get_federation_library_follow
       parameters:
       - in: path
         name: uuid
@@ -1826,7 +2384,7 @@ paths:
                 $ref: '#/components/schemas/LibraryFollow'
           description: ''
     delete:
-      operationId: federation_follows_library_destroy
+      operationId: delete_federation_library_follow
       parameters:
       - in: path
         name: uuid
@@ -1844,7 +2402,7 @@ paths:
           description: No response body
   /api/v1/federation/follows/library/{uuid}/accept/:
     post:
-      operationId: federation_follows_library_accept_create
+      operationId: accept_federation_library_follow
       parameters:
       - in: path
         name: uuid
@@ -1881,7 +2439,7 @@ paths:
           description: ''
   /api/v1/federation/follows/library/{uuid}/reject/:
     post:
-      operationId: federation_follows_library_reject_create
+      operationId: reject_federation_library_follow
       parameters:
       - in: path
         name: uuid
@@ -1918,7 +2476,7 @@ paths:
           description: ''
   /api/v1/federation/follows/library/all/:
     get:
-      operationId: federation_follows_library_all_retrieve
+      operationId: get_all_federation_library_follows
       description: |-
         Return all the subscriptions of the current user, with only limited data
         to have a performant endpoint and avoid lots of queries just to display
@@ -1937,7 +2495,7 @@ paths:
           description: ''
   /api/v1/federation/inbox/:
     get:
-      operationId: federation_inbox_list
+      operationId: get_federation_inboxes
       parameters:
       - in: query
         name: activity__actor
@@ -1987,7 +2545,7 @@ paths:
           description: ''
   /api/v1/federation/inbox/{id}/:
     get:
-      operationId: federation_inbox_retrieve
+      operationId: get_federation_inbox
       parameters:
       - in: path
         name: id
@@ -2008,7 +2566,7 @@ paths:
                 $ref: '#/components/schemas/InboxItem'
           description: ''
     put:
-      operationId: federation_inbox_update
+      operationId: update_federation_inbox
       parameters:
       - in: path
         name: id
@@ -2044,7 +2602,7 @@ paths:
                 $ref: '#/components/schemas/InboxItem'
           description: ''
     patch:
-      operationId: federation_inbox_partial_update
+      operationId: partial_update_federation_inbox
       parameters:
       - in: path
         name: id
@@ -2080,7 +2638,7 @@ paths:
           description: ''
   /api/v1/federation/inbox/action/:
     post:
-      operationId: federation_inbox_action_create
+      operationId: create_federation_inbox_action
       description: |-
         str(object='') -> str
         str(bytes_or_buffer[, encoding[, errors]]) -> str
@@ -2121,7 +2679,7 @@ paths:
           description: ''
   /api/v1/federation/libraries/{uuid}/:
     get:
-      operationId: federation_libraries_retrieve
+      operationId: get_federation_library
       parameters:
       - in: path
         name: uuid
@@ -2143,7 +2701,7 @@ paths:
           description: ''
   /api/v1/federation/libraries/{uuid}/scan/:
     post:
-      operationId: federation_libraries_scan_create
+      operationId: create_federation_library_scan
       parameters:
       - in: path
         name: uuid
@@ -2180,7 +2738,7 @@ paths:
           description: ''
   /api/v1/federation/libraries/fetch/:
     post:
-      operationId: federation_libraries_fetch_create
+      operationId: create_federation_library_fetch
       tags:
       - federation
       requestBody:
@@ -2210,7 +2768,7 @@ paths:
           description: ''
   /api/v1/history/listenings/:
     get:
-      operationId: history_listenings_list
+      operationId: get_history_listenings
       parameters:
       - in: query
         name: domain
@@ -2259,7 +2817,7 @@ paths:
                 $ref: '#/components/schemas/PaginatedListeningList'
           description: ''
     post:
-      operationId: history_listenings_create
+      operationId: create_history_listening
       tags:
       - history
       requestBody:
@@ -2289,7 +2847,7 @@ paths:
           description: ''
   /api/v1/history/listenings/{id}/:
     get:
-      operationId: history_listenings_retrieve
+      operationId: get_history_listening
       parameters:
       - in: path
         name: id
@@ -2311,7 +2869,7 @@ paths:
           description: ''
   /api/v1/instance/admin/settings/:
     get:
-      operationId: instance_admin_settings_list
+      operationId: get_instance_admin_settings
       description: |-
         - list preferences
         - detail given preference
@@ -2340,7 +2898,7 @@ paths:
           description: ''
   /api/v1/instance/admin/settings/{id}/:
     get:
-      operationId: instance_admin_settings_retrieve
+      operationId: get_instance_admin_setting
       description: |-
         - list preferences
         - detail given preference
@@ -2366,7 +2924,7 @@ paths:
                 $ref: '#/components/schemas/GlobalPreference'
           description: ''
     put:
-      operationId: instance_admin_settings_update
+      operationId: update_instance_admin_setting
       description: |-
         - list preferences
         - detail given preference
@@ -2407,7 +2965,7 @@ paths:
                 $ref: '#/components/schemas/GlobalPreference'
           description: ''
     patch:
-      operationId: instance_admin_settings_partial_update
+      operationId: partial_update_instance_admin_setting
       description: |-
         - list preferences
         - detail given preference
@@ -2448,7 +3006,7 @@ paths:
           description: ''
   /api/v1/instance/admin/settings/bulk/:
     post:
-      operationId: instance_admin_settings_bulk_create
+      operationId: create_instance_admin_setting_bulk
       description: |-
         Update multiple preferences at once
 
@@ -2483,7 +3041,7 @@ paths:
           description: ''
   /api/v1/instance/nodeinfo/2.0/:
     get:
-      operationId: instance_nodeinfo_2.0_retrieve
+      operationId: get_instance_nodeinfo_2.0
       tags:
       - instance
       responses:
@@ -2495,7 +3053,7 @@ paths:
           description: ''
   /api/v1/instance/settings/:
     get:
-      operationId: instance_settings_retrieve
+      operationId: get_instance_settings
       tags:
       - instance
       responses:
@@ -2507,7 +3065,7 @@ paths:
           description: ''
   /api/v1/instance/spa-manifest.json:
     get:
-      operationId: instance_spa_manifest.json_retrieve
+      operationId: get_spa_manifest
       tags:
       - instance
       responses:
@@ -2515,7 +3073,7 @@ paths:
           description: No response body
   /api/v1/libraries/:
     get:
-      operationId: libraries_list
+      operationId: get_libraries
       parameters:
       - name: ordering
         required: false
@@ -2564,7 +3122,7 @@ paths:
                 $ref: '#/components/schemas/PaginatedLibraryForOwnerList'
           description: ''
     post:
-      operationId: libraries_create
+      operationId: create_library
       tags:
       - libraries
       requestBody:
@@ -2594,7 +3152,7 @@ paths:
           description: ''
   /api/v1/libraries/{uuid}/:
     get:
-      operationId: libraries_retrieve
+      operationId: get_library
       parameters:
       - in: path
         name: uuid
@@ -2615,7 +3173,7 @@ paths:
                 $ref: '#/components/schemas/LibraryForOwner'
           description: ''
     put:
-      operationId: libraries_update
+      operationId: update_library
       parameters:
       - in: path
         name: uuid
@@ -2651,7 +3209,7 @@ paths:
                 $ref: '#/components/schemas/LibraryForOwner'
           description: ''
     patch:
-      operationId: libraries_partial_update
+      operationId: partial_update_library
       parameters:
       - in: path
         name: uuid
@@ -2686,7 +3244,7 @@ paths:
                 $ref: '#/components/schemas/LibraryForOwner'
           description: ''
     delete:
-      operationId: libraries_destroy
+      operationId: delete_library
       parameters:
       - in: path
         name: uuid
@@ -2704,7 +3262,7 @@ paths:
           description: No response body
   /api/v1/libraries/{uuid}/follows/:
     get:
-      operationId: libraries_follows_retrieve
+      operationId: get_library_follow
       parameters:
       - in: path
         name: uuid
@@ -2726,7 +3284,7 @@ paths:
           description: ''
   /api/v1/libraries/fs-import/:
     get:
-      operationId: libraries_fs_import_retrieve
+      operationId: get_library_fs_import
       tags:
       - libraries
       security:
@@ -2740,7 +3298,7 @@ paths:
                 $ref: '#/components/schemas/LibraryForOwner'
           description: ''
     post:
-      operationId: libraries_fs_import_create
+      operationId: create_library_fs_import
       tags:
       - libraries
       requestBody:
@@ -2769,7 +3327,7 @@ paths:
                 $ref: '#/components/schemas/LibraryForOwner'
           description: ''
     delete:
-      operationId: libraries_fs_import_destroy
+      operationId: delete_library_fs_import
       tags:
       - libraries
       security:
@@ -2780,7 +3338,7 @@ paths:
           description: No response body
   /api/v1/licenses/:
     get:
-      operationId: licenses_list
+      operationId: get_licenses
       parameters:
       - name: ordering
         required: false
@@ -2814,7 +3372,7 @@ paths:
           description: ''
   /api/v1/licenses/{code}/:
     get:
-      operationId: licenses_retrieve
+      operationId: get_license
       parameters:
       - in: path
         name: code
@@ -2836,7 +3394,7 @@ paths:
           description: ''
   /api/v1/listen/{uuid}/:
     get:
-      operationId: listen_retrieve
+      operationId: get_listen
       parameters:
       - in: path
         name: uuid
@@ -2858,7 +3416,7 @@ paths:
           description: ''
   /api/v1/manage/accounts/:
     get:
-      operationId: manage_accounts_list
+      operationId: admin_get_accounts
       parameters:
       - in: query
         name: domain
@@ -2919,7 +3477,7 @@ paths:
           description: ''
   /api/v1/manage/accounts/{id}/:
     get:
-      operationId: manage_accounts_retrieve
+      operationId: admin_get_account
       parameters:
       - in: path
         name: id
@@ -2941,7 +3499,7 @@ paths:
           description: ''
   /api/v1/manage/accounts/{id}/stats/:
     get:
-      operationId: manage_accounts_stats_retrieve
+      operationId: admin_get_account_stats
       parameters:
       - in: path
         name: id
@@ -2963,7 +3521,7 @@ paths:
           description: ''
   /api/v1/manage/accounts/action/:
     post:
-      operationId: manage_accounts_action_create
+      operationId: admin_create_account_action
       description: |-
         str(object='') -> str
         str(bytes_or_buffer[, encoding[, errors]]) -> str
@@ -3004,7 +3562,7 @@ paths:
           description: ''
   /api/v1/manage/channels/:
     get:
-      operationId: manage_channels_list
+      operationId: admin_get_channels
       parameters:
       - name: ordering
         required: false
@@ -3042,7 +3600,7 @@ paths:
           description: ''
   /api/v1/manage/channels/{composite}/:
     get:
-      operationId: manage_channels_retrieve
+      operationId: admin_get_channel
       parameters:
       - in: path
         name: composite
@@ -3063,7 +3621,7 @@ paths:
                 $ref: '#/components/schemas/ManageChannel'
           description: ''
     delete:
-      operationId: manage_channels_destroy
+      operationId: admin_delete_channel
       parameters:
       - in: path
         name: composite
@@ -3081,7 +3639,7 @@ paths:
           description: No response body
   /api/v1/manage/channels/{composite}/stats/:
     get:
-      operationId: manage_channels_stats_retrieve
+      operationId: admin_get_channel_stats
       parameters:
       - in: path
         name: composite
@@ -3103,7 +3661,7 @@ paths:
           description: ''
   /api/v1/manage/federation/domains/:
     get:
-      operationId: manage_federation_domains_list
+      operationId: admin_get_federation_domains
       parameters:
       - in: query
         name: allowed
@@ -3148,7 +3706,7 @@ paths:
                 $ref: '#/components/schemas/PaginatedManageDomainList'
           description: ''
     post:
-      operationId: manage_federation_domains_create
+      operationId: admin_create_federation_domain
       tags:
       - manage
       requestBody:
@@ -3178,7 +3736,7 @@ paths:
           description: ''
   /api/v1/manage/federation/domains/{name}/:
     get:
-      operationId: manage_federation_domains_retrieve
+      operationId: admin_get_federation_domain
       parameters:
       - in: path
         name: name
@@ -3199,7 +3757,7 @@ paths:
                 $ref: '#/components/schemas/ManageDomain'
           description: ''
     put:
-      operationId: manage_federation_domains_update
+      operationId: admin_update_federation_domain
       parameters:
       - in: path
         name: name
@@ -3234,7 +3792,7 @@ paths:
                 $ref: '#/components/schemas/ManageDomainUpdate'
           description: ''
     patch:
-      operationId: manage_federation_domains_partial_update
+      operationId: admin_partial_update_federation_domain
       parameters:
       - in: path
         name: name
@@ -3270,7 +3828,7 @@ paths:
           description: ''
   /api/v1/manage/federation/domains/{name}/nodeinfo/:
     get:
-      operationId: manage_federation_domains_nodeinfo_retrieve
+      operationId: admin_get_federation_domain_nodeinfo
       parameters:
       - in: path
         name: name
@@ -3292,7 +3850,7 @@ paths:
           description: ''
   /api/v1/manage/federation/domains/{name}/stats/:
     get:
-      operationId: manage_federation_domains_stats_retrieve
+      operationId: admin_get_federation_domain_stats
       parameters:
       - in: path
         name: name
@@ -3314,7 +3872,7 @@ paths:
           description: ''
   /api/v1/manage/federation/domains/action/:
     post:
-      operationId: manage_federation_domains_action_create
+      operationId: admin_create_federation_domain_action
       description: |-
         str(object='') -> str
         str(bytes_or_buffer[, encoding[, errors]]) -> str
@@ -3355,7 +3913,7 @@ paths:
           description: ''
   /api/v1/manage/library/albums/:
     get:
-      operationId: manage_library_albums_list
+      operationId: admin_get_albums
       parameters:
       - in: query
         name: artist
@@ -3410,7 +3968,7 @@ paths:
           description: ''
   /api/v1/manage/library/albums/{id}/:
     get:
-      operationId: manage_library_albums_retrieve
+      operationId: admin_get_album
       parameters:
       - in: path
         name: id
@@ -3431,7 +3989,7 @@ paths:
                 $ref: '#/components/schemas/ManageAlbum'
           description: ''
     delete:
-      operationId: manage_library_albums_destroy
+      operationId: admin_delete_album
       parameters:
       - in: path
         name: id
@@ -3449,7 +4007,7 @@ paths:
           description: No response body
   /api/v1/manage/library/albums/{id}/stats/:
     get:
-      operationId: manage_library_albums_stats_retrieve
+      operationId: admin_get_library_album_stats
       parameters:
       - in: path
         name: id
@@ -3471,7 +4029,7 @@ paths:
           description: ''
   /api/v1/manage/library/albums/action/:
     post:
-      operationId: manage_library_albums_action_create
+      operationId: admin_create_album_action
       description: |-
         str(object='') -> str
         str(bytes_or_buffer[, encoding[, errors]]) -> str
@@ -3512,7 +4070,7 @@ paths:
           description: ''
   /api/v1/manage/library/artists/:
     get:
-      operationId: manage_library_artists_list
+      operationId: admin_get_artists
       parameters:
       - in: query
         name: content_category
@@ -3571,7 +4129,7 @@ paths:
           description: ''
   /api/v1/manage/library/artists/{id}/:
     get:
-      operationId: manage_library_artists_retrieve
+      operationId: admin_get_artist
       parameters:
       - in: path
         name: id
@@ -3592,7 +4150,7 @@ paths:
                 $ref: '#/components/schemas/ManageArtist'
           description: ''
     delete:
-      operationId: manage_library_artists_destroy
+      operationId: admin_delete_artist
       parameters:
       - in: path
         name: id
@@ -3610,7 +4168,7 @@ paths:
           description: No response body
   /api/v1/manage/library/artists/{id}/stats/:
     get:
-      operationId: manage_library_artists_stats_retrieve
+      operationId: admin_get_library_artist_stats
       parameters:
       - in: path
         name: id
@@ -3632,7 +4190,7 @@ paths:
           description: ''
   /api/v1/manage/library/artists/action/:
     post:
-      operationId: manage_library_artists_action_create
+      operationId: admin_create_artist_action
       description: |-
         str(object='') -> str
         str(bytes_or_buffer[, encoding[, errors]]) -> str
@@ -3673,7 +4231,7 @@ paths:
           description: ''
   /api/v1/manage/library/libraries/:
     get:
-      operationId: manage_library_libraries_list
+      operationId: admin_get_libraries
       parameters:
       - in: query
         name: domain
@@ -3741,7 +4299,7 @@ paths:
           description: ''
   /api/v1/manage/library/libraries/{uuid}/:
     get:
-      operationId: manage_library_libraries_retrieve
+      operationId: admin_get_library
       parameters:
       - in: path
         name: uuid
@@ -3762,7 +4320,7 @@ paths:
                 $ref: '#/components/schemas/ManageLibrary'
           description: ''
     put:
-      operationId: manage_library_libraries_update
+      operationId: admin_update_library
       parameters:
       - in: path
         name: uuid
@@ -3798,7 +4356,7 @@ paths:
                 $ref: '#/components/schemas/ManageLibrary'
           description: ''
     patch:
-      operationId: manage_library_libraries_partial_update
+      operationId: admin_partial_update_library
       parameters:
       - in: path
         name: uuid
@@ -3833,7 +4391,7 @@ paths:
                 $ref: '#/components/schemas/ManageLibrary'
           description: ''
     delete:
-      operationId: manage_library_libraries_destroy
+      operationId: admin_delete_library
       parameters:
       - in: path
         name: uuid
@@ -3851,7 +4409,7 @@ paths:
           description: No response body
   /api/v1/manage/library/libraries/{uuid}/stats/:
     get:
-      operationId: manage_library_libraries_stats_retrieve
+      operationId: admin_get_library_stats
       parameters:
       - in: path
         name: uuid
@@ -3873,7 +4431,7 @@ paths:
           description: ''
   /api/v1/manage/library/libraries/action/:
     post:
-      operationId: manage_library_libraries_action_create
+      operationId: admin_create_library_action
       description: |-
         str(object='') -> str
         str(bytes_or_buffer[, encoding[, errors]]) -> str
@@ -3914,7 +4472,7 @@ paths:
           description: ''
   /api/v1/manage/library/tracks/:
     get:
-      operationId: manage_library_tracks_list
+      operationId: admin_get_tracks
       parameters:
       - in: query
         name: album
@@ -3977,7 +4535,7 @@ paths:
           description: ''
   /api/v1/manage/library/tracks/{id}/:
     get:
-      operationId: manage_library_tracks_retrieve
+      operationId: admin_get_track
       parameters:
       - in: path
         name: id
@@ -3998,7 +4556,7 @@ paths:
                 $ref: '#/components/schemas/ManageTrack'
           description: ''
     delete:
-      operationId: manage_library_tracks_destroy
+      operationId: admin_delete_track
       parameters:
       - in: path
         name: id
@@ -4016,7 +4574,7 @@ paths:
           description: No response body
   /api/v1/manage/library/tracks/{id}/stats/:
     get:
-      operationId: manage_library_tracks_stats_retrieve
+      operationId: admin_get_track_stats
       parameters:
       - in: path
         name: id
@@ -4038,7 +4596,7 @@ paths:
           description: ''
   /api/v1/manage/library/tracks/action/:
     post:
-      operationId: manage_library_tracks_action_create
+      operationId: admin_create_track_action
       description: |-
         str(object='') -> str
         str(bytes_or_buffer[, encoding[, errors]]) -> str
@@ -4079,7 +4637,7 @@ paths:
           description: ''
   /api/v1/manage/library/uploads/:
     get:
-      operationId: manage_library_uploads_list
+      operationId: admin_get_uploads
       parameters:
       - in: query
         name: domain
@@ -4163,7 +4721,7 @@ paths:
           description: ''
   /api/v1/manage/library/uploads/{uuid}/:
     get:
-      operationId: manage_library_uploads_retrieve
+      operationId: admin_get_upload
       parameters:
       - in: path
         name: uuid
@@ -4184,7 +4742,7 @@ paths:
                 $ref: '#/components/schemas/ManageUpload'
           description: ''
     delete:
-      operationId: manage_library_uploads_destroy
+      operationId: admin_delete_upload
       parameters:
       - in: path
         name: uuid
@@ -4202,7 +4760,7 @@ paths:
           description: No response body
   /api/v1/manage/library/uploads/action/:
     post:
-      operationId: manage_library_uploads_action_create
+      operationId: admin_create_upload_action
       description: |-
         str(object='') -> str
         str(bytes_or_buffer[, encoding[, errors]]) -> str
@@ -4243,7 +4801,7 @@ paths:
           description: ''
   /api/v1/manage/moderation/instance-policies/:
     get:
-      operationId: manage_moderation_instance_policies_list
+      operationId: moderation_get_instance_policies
       parameters:
       - in: query
         name: block_all
@@ -4308,7 +4866,7 @@ paths:
                 $ref: '#/components/schemas/PaginatedManageInstancePolicyList'
           description: ''
     post:
-      operationId: manage_moderation_instance_policies_create
+      operationId: moderation_create_instance_policy
       tags:
       - manage
       requestBody:
@@ -4338,7 +4896,7 @@ paths:
           description: ''
   /api/v1/manage/moderation/instance-policies/{id}/:
     get:
-      operationId: manage_moderation_instance_policies_retrieve
+      operationId: moderation_get_instance_policy
       parameters:
       - in: path
         name: id
@@ -4359,7 +4917,7 @@ paths:
                 $ref: '#/components/schemas/ManageInstancePolicy'
           description: ''
     put:
-      operationId: manage_moderation_instance_policies_update
+      operationId: moderation_update_instance_policy
       parameters:
       - in: path
         name: id
@@ -4395,7 +4953,7 @@ paths:
                 $ref: '#/components/schemas/ManageInstancePolicy'
           description: ''
     patch:
-      operationId: manage_moderation_instance_policies_partial_update
+      operationId: moderation_partial_update_instance_policy
       parameters:
       - in: path
         name: id
@@ -4430,7 +4988,7 @@ paths:
                 $ref: '#/components/schemas/ManageInstancePolicy'
           description: ''
     delete:
-      operationId: manage_moderation_instance_policies_destroy
+      operationId: moderation_delete_instance_policy
       parameters:
       - in: path
         name: id
@@ -4448,7 +5006,7 @@ paths:
           description: No response body
   /api/v1/manage/moderation/notes/:
     get:
-      operationId: manage_moderation_notes_list
+      operationId: moderation_get_notes
       parameters:
       - name: ordering
         required: false
@@ -4485,7 +5043,7 @@ paths:
                 $ref: '#/components/schemas/PaginatedManageNoteList'
           description: ''
     post:
-      operationId: manage_moderation_notes_create
+      operationId: moderation_create_note
       tags:
       - manage
       requestBody:
@@ -4515,7 +5073,7 @@ paths:
           description: ''
   /api/v1/manage/moderation/notes/{uuid}/:
     get:
-      operationId: manage_moderation_notes_retrieve
+      operationId: moderation_get_note
       parameters:
       - in: path
         name: uuid
@@ -4536,7 +5094,7 @@ paths:
                 $ref: '#/components/schemas/ManageNote'
           description: ''
     delete:
-      operationId: manage_moderation_notes_destroy
+      operationId: moderation_delete_note
       parameters:
       - in: path
         name: uuid
@@ -4554,7 +5112,7 @@ paths:
           description: No response body
   /api/v1/manage/moderation/reports/:
     get:
-      operationId: manage_moderation_reports_list
+      operationId: moderation_get_reports
       parameters:
       - in: query
         name: is_handled
@@ -4610,7 +5168,7 @@ paths:
           description: ''
   /api/v1/manage/moderation/reports/{uuid}/:
     get:
-      operationId: manage_moderation_reports_retrieve
+      operationId: moderation_get_report
       parameters:
       - in: path
         name: uuid
@@ -4631,7 +5189,7 @@ paths:
                 $ref: '#/components/schemas/ManageReport'
           description: ''
     put:
-      operationId: manage_moderation_reports_update
+      operationId: moderation_update_report
       parameters:
       - in: path
         name: uuid
@@ -4667,7 +5225,7 @@ paths:
                 $ref: '#/components/schemas/ManageReport'
           description: ''
     patch:
-      operationId: manage_moderation_reports_partial_update
+      operationId: moderation_partial_update_report
       parameters:
       - in: path
         name: uuid
@@ -4703,7 +5261,7 @@ paths:
           description: ''
   /api/v1/manage/moderation/requests/:
     get:
-      operationId: manage_moderation_requests_list
+      operationId: moderation_get_requests
       parameters:
       - name: ordering
         required: false
@@ -4755,7 +5313,7 @@ paths:
           description: ''
   /api/v1/manage/moderation/requests/{uuid}/:
     get:
-      operationId: manage_moderation_requests_retrieve
+      operationId: moderation_get_request
       parameters:
       - in: path
         name: uuid
@@ -4776,7 +5334,7 @@ paths:
                 $ref: '#/components/schemas/ManageUserRequest'
           description: ''
     put:
-      operationId: manage_moderation_requests_update
+      operationId: moderation_update_request
       parameters:
       - in: path
         name: uuid
@@ -4812,7 +5370,7 @@ paths:
                 $ref: '#/components/schemas/ManageUserRequest'
           description: ''
     patch:
-      operationId: manage_moderation_requests_partial_update
+      operationId: moderation_partial_update_request
       parameters:
       - in: path
         name: uuid
@@ -4848,7 +5406,7 @@ paths:
           description: ''
   /api/v1/manage/tags/:
     get:
-      operationId: manage_tags_list
+      operationId: admin_get_tags
       parameters:
       - name: ordering
         required: false
@@ -4885,7 +5443,7 @@ paths:
                 $ref: '#/components/schemas/PaginatedManageTagList'
           description: ''
     post:
-      operationId: manage_tags_create
+      operationId: admin_create_tag
       tags:
       - manage
       requestBody:
@@ -4915,7 +5473,7 @@ paths:
           description: ''
   /api/v1/manage/tags/{name}/:
     get:
-      operationId: manage_tags_retrieve
+      operationId: admin_get_tag
       parameters:
       - in: path
         name: name
@@ -4935,7 +5493,7 @@ paths:
                 $ref: '#/components/schemas/ManageTag'
           description: ''
     delete:
-      operationId: manage_tags_destroy
+      operationId: admin_delete_tag
       parameters:
       - in: path
         name: name
@@ -4952,7 +5510,7 @@ paths:
           description: No response body
   /api/v1/manage/tags/action/:
     post:
-      operationId: manage_tags_action_create
+      operationId: admin_create_tag_action
       description: |-
         str(object='') -> str
         str(bytes_or_buffer[, encoding[, errors]]) -> str
@@ -4993,7 +5551,7 @@ paths:
           description: ''
   /api/v1/manage/users/invitations/:
     get:
-      operationId: manage_users_invitations_list
+      operationId: admin_get_invitations
       parameters:
       - in: query
         name: is_open
@@ -5034,7 +5592,7 @@ paths:
                 $ref: '#/components/schemas/PaginatedManageInvitationList'
           description: ''
     post:
-      operationId: manage_users_invitations_create
+      operationId: admin_create_invitation
       tags:
       - manage
       requestBody:
@@ -5063,7 +5621,7 @@ paths:
           description: ''
   /api/v1/manage/users/invitations/{id}/:
     get:
-      operationId: manage_users_invitations_retrieve
+      operationId: admin_get_invitation
       parameters:
       - in: path
         name: id
@@ -5084,7 +5642,7 @@ paths:
                 $ref: '#/components/schemas/ManageInvitation'
           description: ''
     put:
-      operationId: manage_users_invitations_update
+      operationId: admin_update_invitation
       parameters:
       - in: path
         name: id
@@ -5119,7 +5677,7 @@ paths:
                 $ref: '#/components/schemas/ManageInvitation'
           description: ''
     patch:
-      operationId: manage_users_invitations_partial_update
+      operationId: admin_partial_update_invitation
       parameters:
       - in: path
         name: id
@@ -5155,7 +5713,7 @@ paths:
           description: ''
   /api/v1/manage/users/invitations/action/:
     post:
-      operationId: manage_users_invitations_action_create
+      operationId: admin_create_invitation_action
       description: |-
         str(object='') -> str
         str(bytes_or_buffer[, encoding[, errors]]) -> str
@@ -5195,7 +5753,7 @@ paths:
           description: ''
   /api/v1/manage/users/users/:
     get:
-      operationId: manage_users_users_list
+      operationId: admin_get_users
       parameters:
       - in: query
         name: is_active
@@ -5266,7 +5824,7 @@ paths:
           description: ''
   /api/v1/manage/users/users/{id}/:
     get:
-      operationId: manage_users_users_retrieve
+      operationId: admin_get_user
       parameters:
       - in: path
         name: id
@@ -5287,7 +5845,7 @@ paths:
                 $ref: '#/components/schemas/ManageUser'
           description: ''
     put:
-      operationId: manage_users_users_update
+      operationId: admin_update_user
       parameters:
       - in: path
         name: id
@@ -5323,7 +5881,7 @@ paths:
                 $ref: '#/components/schemas/ManageUser'
           description: ''
     patch:
-      operationId: manage_users_users_partial_update
+      operationId: admin_partial_update_user
       parameters:
       - in: path
         name: id
@@ -5359,7 +5917,7 @@ paths:
           description: ''
   /api/v1/moderation/content-filters/:
     get:
-      operationId: moderation_content_filters_list
+      operationId: get_moderation_content_filters
       parameters:
       - name: ordering
         required: false
@@ -5392,7 +5950,7 @@ paths:
                 $ref: '#/components/schemas/PaginatedUserFilterList'
           description: ''
     post:
-      operationId: moderation_content_filters_create
+      operationId: create_moderation_content_filter
       tags:
       - moderation
       requestBody:
@@ -5422,7 +5980,7 @@ paths:
           description: ''
   /api/v1/moderation/content-filters/{uuid}/:
     get:
-      operationId: moderation_content_filters_retrieve
+      operationId: get_moderation_content_filter
       parameters:
       - in: path
         name: uuid
@@ -5443,7 +6001,7 @@ paths:
                 $ref: '#/components/schemas/UserFilter'
           description: ''
     delete:
-      operationId: moderation_content_filters_destroy
+      operationId: delete_moderation_content_filter
       parameters:
       - in: path
         name: uuid
@@ -5461,7 +6019,7 @@ paths:
           description: No response body
   /api/v1/moderation/reports/:
     post:
-      operationId: moderation_reports_create
+      operationId: create_moderation_report
       tags:
       - moderation
       requestBody:
@@ -5491,7 +6049,7 @@ paths:
           description: ''
   /api/v1/mutations/:
     get:
-      operationId: mutations_list
+      operationId: get_mutations
       parameters:
       - in: query
         name: is_applied
@@ -5557,7 +6115,7 @@ paths:
           description: ''
   /api/v1/mutations/{uuid}/:
     get:
-      operationId: mutations_retrieve
+      operationId: get_mutation
       parameters:
       - in: path
         name: uuid
@@ -5578,7 +6136,7 @@ paths:
                 $ref: '#/components/schemas/APIMutation'
           description: ''
     delete:
-      operationId: mutations_destroy
+      operationId: delete_mutation
       parameters:
       - in: path
         name: uuid
@@ -5596,7 +6154,7 @@ paths:
           description: No response body
   /api/v1/mutations/{uuid}/approve/:
     post:
-      operationId: mutations_approve_create
+      operationId: approve_mutation
       parameters:
       - in: path
         name: uuid
@@ -5633,7 +6191,7 @@ paths:
           description: ''
   /api/v1/mutations/{uuid}/reject/:
     post:
-      operationId: mutations_reject_create
+      operationId: reject_mutation
       parameters:
       - in: path
         name: uuid
@@ -5670,7 +6228,7 @@ paths:
           description: ''
   /api/v1/oauth/apps/:
     get:
-      operationId: oauth_apps_list
+      operationId: get_oauth_apps
       parameters:
       - name: ordering
         required: false
@@ -5703,7 +6261,7 @@ paths:
                 $ref: '#/components/schemas/PaginatedApplicationList'
           description: ''
     post:
-      operationId: oauth_apps_create
+      operationId: create_oauth_app
       tags:
       - oauth
       requestBody:
@@ -5733,7 +6291,7 @@ paths:
           description: ''
   /api/v1/oauth/apps/{client_id}/:
     get:
-      operationId: oauth_apps_retrieve
+      operationId: get_oauth_app
       parameters:
       - in: path
         name: client_id
@@ -5753,7 +6311,7 @@ paths:
                 $ref: '#/components/schemas/Application'
           description: ''
     put:
-      operationId: oauth_apps_update
+      operationId: update_oauth_app
       parameters:
       - in: path
         name: client_id
@@ -5788,7 +6346,7 @@ paths:
                 $ref: '#/components/schemas/Application'
           description: ''
     patch:
-      operationId: oauth_apps_partial_update
+      operationId: partial_update_oauth_app
       parameters:
       - in: path
         name: client_id
@@ -5822,7 +6380,7 @@ paths:
                 $ref: '#/components/schemas/Application'
           description: ''
     delete:
-      operationId: oauth_apps_destroy
+      operationId: delete_oauth_app
       parameters:
       - in: path
         name: client_id
@@ -5839,7 +6397,7 @@ paths:
           description: No response body
   /api/v1/oauth/apps/{client_id}/refresh-token/:
     post:
-      operationId: oauth_apps_refresh_token_create
+      operationId: refresh_oauth_token
       parameters:
       - in: path
         name: client_id
@@ -5875,7 +6433,7 @@ paths:
           description: ''
   /api/v1/oauth/authorize/:
     get:
-      operationId: oauth_authorize_retrieve
+      operationId: get_oauth_authorize
       description: 'Handle GET requests: instantiate a blank version of the form.'
       tags:
       - oauth
@@ -5886,7 +6444,7 @@ paths:
         '200':
           description: No response body
     post:
-      operationId: oauth_authorize_create
+      operationId: create_oauth_authorize
       description: |-
         Handle POST requests: instantiate a form instance with the passed
         POST variables and then check if it's valid.
@@ -5899,7 +6457,7 @@ paths:
         '200':
           description: No response body
     put:
-      operationId: oauth_authorize_update
+      operationId: update_oauth_authorize
       tags:
       - oauth
       security:
@@ -5910,7 +6468,7 @@ paths:
           description: No response body
   /api/v1/oauth/grants/:
     get:
-      operationId: oauth_grants_list
+      operationId: get_oauth_grants
       description: |-
         This is a viewset that list applications that have access to the request user
         account, to allow revoking tokens easily.
@@ -5937,7 +6495,7 @@ paths:
           description: ''
   /api/v1/oauth/grants/{client_id}/:
     get:
-      operationId: oauth_grants_retrieve
+      operationId: get_oauth_grant
       description: |-
         This is a viewset that list applications that have access to the request user
         account, to allow revoking tokens easily.
@@ -5960,7 +6518,7 @@ paths:
                 $ref: '#/components/schemas/Application'
           description: ''
     delete:
-      operationId: oauth_grants_destroy
+      operationId: delete_oauth_grant
       description: |-
         This is a viewset that list applications that have access to the request user
         account, to allow revoking tokens easily.
@@ -5980,7 +6538,7 @@ paths:
           description: No response body
   /api/v1/oembed/:
     get:
-      operationId: oembed_retrieve
+      operationId: get_oembed
       tags:
       - oembed
       security:
@@ -5991,7 +6549,7 @@ paths:
           description: No response body
   /api/v1/playlists/:
     get:
-      operationId: playlists_list
+      operationId: get_playlists
       parameters:
       - in: query
         name: album
@@ -6056,7 +6614,7 @@ paths:
                 $ref: '#/components/schemas/PaginatedPlaylistList'
           description: ''
     post:
-      operationId: playlists_create
+      operationId: create_playlist
       tags:
       - playlists
       requestBody:
@@ -6086,7 +6644,7 @@ paths:
           description: ''
   /api/v1/playlists/{id}/:
     get:
-      operationId: playlists_retrieve
+      operationId: get_playlist
       parameters:
       - in: path
         name: id
@@ -6107,7 +6665,7 @@ paths:
                 $ref: '#/components/schemas/Playlist'
           description: ''
     put:
-      operationId: playlists_update
+      operationId: update_playlist
       parameters:
       - in: path
         name: id
@@ -6143,7 +6701,7 @@ paths:
                 $ref: '#/components/schemas/Playlist'
           description: ''
     patch:
-      operationId: playlists_partial_update
+      operationId: partial_update_playlist
       parameters:
       - in: path
         name: id
@@ -6178,7 +6736,7 @@ paths:
                 $ref: '#/components/schemas/Playlist'
           description: ''
     delete:
-      operationId: playlists_destroy
+      operationId: delete_playlist
       parameters:
       - in: path
         name: id
@@ -6196,7 +6754,7 @@ paths:
           description: No response body
   /api/v1/playlists/{id}/add/:
     post:
-      operationId: playlists_add_create
+      operationId: add_to_playlist
       parameters:
       - in: path
         name: id
@@ -6210,16 +6768,16 @@ paths:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/Playlist'
+              $ref: '#/components/schemas/PlaylistAddMany'
           application/x-www-form-urlencoded:
             schema:
-              $ref: '#/components/schemas/Playlist'
+              $ref: '#/components/schemas/PlaylistAddMany'
           multipart/form-data:
             schema:
-              $ref: '#/components/schemas/Playlist'
+              $ref: '#/components/schemas/PlaylistAddMany'
           application/activity+json:
             schema:
-              $ref: '#/components/schemas/Playlist'
+              $ref: '#/components/schemas/PlaylistAddMany'
         required: true
       security:
       - oauth2: []
@@ -6233,7 +6791,7 @@ paths:
           description: ''
   /api/v1/playlists/{id}/clear/:
     delete:
-      operationId: playlists_clear_destroy
+      operationId: clear_playlist
       parameters:
       - in: path
         name: id
@@ -6251,7 +6809,7 @@ paths:
           description: No response body
   /api/v1/playlists/{id}/move/:
     post:
-      operationId: playlists_move_create
+      operationId: reorder_track_in_playlist
       parameters:
       - in: path
         name: id
@@ -6288,7 +6846,7 @@ paths:
           description: ''
   /api/v1/playlists/{id}/remove/:
     post:
-      operationId: playlists_remove_create
+      operationId: remove_from_playlist_2
       parameters:
       - in: path
         name: id
@@ -6324,7 +6882,7 @@ paths:
                 $ref: '#/components/schemas/Playlist'
           description: ''
     delete:
-      operationId: playlists_remove_destroy
+      operationId: remove_from_playlist
       parameters:
       - in: path
         name: id
@@ -6342,14 +6900,64 @@ paths:
           description: No response body
   /api/v1/playlists/{id}/tracks/:
     get:
-      operationId: playlists_tracks_retrieve
+      operationId: get_playlist_tracks
       parameters:
+      - in: query
+        name: album
+        schema:
+          type: integer
+      - in: query
+        name: artist
+        schema:
+          type: integer
       - in: path
         name: id
         schema:
           type: integer
         description: A unique integer value identifying this playlist.
         required: true
+      - in: query
+        name: name
+        schema:
+          type: string
+      - in: query
+        name: name__icontains
+        schema:
+          type: string
+      - name: ordering
+        required: false
+        in: query
+        description: Which field to use when ordering the results.
+        schema:
+          type: string
+      - name: page
+        required: false
+        in: query
+        description: A page number within the paginated result set.
+        schema:
+          type: integer
+      - name: page_size
+        required: false
+        in: query
+        description: Number of results to return per page.
+        schema:
+          type: integer
+      - in: query
+        name: playable
+        schema:
+          type: boolean
+      - in: query
+        name: q
+        schema:
+          type: string
+      - in: query
+        name: scope
+        schema:
+          type: string
+      - in: query
+        name: track
+        schema:
+          type: integer
       tags:
       - playlists
       security:
@@ -6360,11 +6968,11 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/Playlist'
+                $ref: '#/components/schemas/PaginatedPlaylistTrackList'
           description: ''
   /api/v1/plugins/:
     get:
-      operationId: plugins_list
+      operationId: get_plugins
       parameters:
       - name: ordering
         required: false
@@ -6393,7 +7001,7 @@ paths:
         '200':
           description: No response body
     post:
-      operationId: plugins_create
+      operationId: create_plugin
       tags:
       - plugins
       security:
@@ -6404,7 +7012,7 @@ paths:
           description: No response body
   /api/v1/plugins/{id}/:
     get:
-      operationId: plugins_retrieve
+      operationId: get_plugin
       parameters:
       - in: path
         name: id
@@ -6422,7 +7030,7 @@ paths:
           description: No response body
   /api/v1/plugins/{id}/disable/:
     post:
-      operationId: plugins_disable_create
+      operationId: disable_plugin
       parameters:
       - in: path
         name: id
@@ -6440,7 +7048,7 @@ paths:
           description: No response body
   /api/v1/plugins/{id}/enable/:
     post:
-      operationId: plugins_enable_create
+      operationId: enable_plugin
       parameters:
       - in: path
         name: id
@@ -6458,7 +7066,7 @@ paths:
           description: No response body
   /api/v1/plugins/{id}/scan/:
     post:
-      operationId: plugins_scan_create
+      operationId: create_plugin_scan
       parameters:
       - in: path
         name: id
@@ -6476,7 +7084,7 @@ paths:
           description: No response body
   /api/v1/radios/radios/:
     get:
-      operationId: radios_radios_list
+      operationId: get_radios
       parameters:
       - in: query
         name: name
@@ -6533,7 +7141,7 @@ paths:
                 $ref: '#/components/schemas/PaginatedRadioList'
           description: ''
     post:
-      operationId: radios_radios_create
+      operationId: create_radio
       tags:
       - radios
       requestBody:
@@ -6563,7 +7171,7 @@ paths:
           description: ''
   /api/v1/radios/radios/{id}/:
     get:
-      operationId: radios_radios_retrieve
+      operationId: get_radio
       parameters:
       - in: path
         name: id
@@ -6584,7 +7192,7 @@ paths:
                 $ref: '#/components/schemas/Radio'
           description: ''
     put:
-      operationId: radios_radios_update
+      operationId: update_radio
       parameters:
       - in: path
         name: id
@@ -6620,7 +7228,7 @@ paths:
                 $ref: '#/components/schemas/Radio'
           description: ''
     patch:
-      operationId: radios_radios_partial_update
+      operationId: partial_update_radio
       parameters:
       - in: path
         name: id
@@ -6655,7 +7263,7 @@ paths:
                 $ref: '#/components/schemas/Radio'
           description: ''
     delete:
-      operationId: radios_radios_destroy
+      operationId: delete_radio
       parameters:
       - in: path
         name: id
@@ -6673,7 +7281,7 @@ paths:
           description: No response body
   /api/v1/radios/radios/{id}/tracks/:
     get:
-      operationId: radios_radios_tracks_retrieve
+      operationId: get_radio_track
       parameters:
       - in: path
         name: id
@@ -6695,7 +7303,7 @@ paths:
           description: ''
   /api/v1/radios/radios/filters/:
     get:
-      operationId: radios_radios_filters_retrieve
+      operationId: get_radio_filter
       tags:
       - radios
       security:
@@ -6710,7 +7318,7 @@ paths:
           description: ''
   /api/v1/radios/radios/validate/:
     post:
-      operationId: radios_radios_validate_create
+      operationId: validate_radio
       tags:
       - radios
       requestBody:
@@ -6740,7 +7348,7 @@ paths:
           description: ''
   /api/v1/radios/sessions/:
     post:
-      operationId: radios_sessions_create
+      operationId: create_radio_session
       tags:
       - radios
       requestBody:
@@ -6770,7 +7378,7 @@ paths:
           description: ''
   /api/v1/radios/sessions/{id}/:
     get:
-      operationId: radios_sessions_retrieve
+      operationId: get_radio_session
       parameters:
       - in: path
         name: id
@@ -6792,39 +7400,224 @@ paths:
           description: ''
   /api/v1/radios/tracks/:
     post:
-      operationId: radios_tracks_create
+      operationId: get_next_radio_track
+      tags:
+      - radios
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/RadioSessionTrackSerializerCreate'
+          application/x-www-form-urlencoded:
+            schema:
+              $ref: '#/components/schemas/RadioSessionTrackSerializerCreate'
+          multipart/form-data:
+            schema:
+              $ref: '#/components/schemas/RadioSessionTrackSerializerCreate'
+          application/activity+json:
+            schema:
+              $ref: '#/components/schemas/RadioSessionTrackSerializerCreate'
+        required: true
+      security:
+      - oauth2: []
+      - ApplicationToken: []
+      responses:
+        '201':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/RadioSessionTrackSerializerCreate'
+          description: ''
+  /api/v1/rate-limit/:
+    get:
+      operationId: get_rate_limit
+      tags:
+      - rate-limit
+      security:
+      - oauth2: []
+      - ApplicationToken: []
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/RateLimit'
+          description: ''
+  /api/v1/search:
+    get:
+      operationId: get_search_results
+      tags:
+      - search
+      security:
+      - oauth2: []
+      - ApplicationToken: []
+      responses:
+        '200':
+          description: No response body
+  /api/v1/stream/{uuid}/:
+    get:
+      operationId: get_stream
+      parameters:
+      - in: path
+        name: uuid
+        schema:
+          type: string
+          format: uuid
+        required: true
+      tags:
+      - stream
+      security:
+      - oauth2: []
+      - ApplicationToken: []
+      responses:
+        '200':
+          content:
+            audio/mpeg:
+              schema:
+                $ref: '#/components/schemas/Track'
+          description: ''
+  /api/v1/subscriptions/:
+    get:
+      operationId: get_subscriptions
+      parameters:
+      - name: ordering
+        required: false
+        in: query
+        description: Which field to use when ordering the results.
+        schema:
+          type: string
+      - name: page
+        required: false
+        in: query
+        description: A page number within the paginated result set.
+        schema:
+          type: integer
+      - name: page_size
+        required: false
+        in: query
+        description: Number of results to return per page.
+        schema:
+          type: integer
+      tags:
+      - subscriptions
+      security:
+      - oauth2: []
+      - ApplicationToken: []
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/PaginatedSubscriptionList'
+          description: ''
+  /api/v1/subscriptions/{uuid}/:
+    get:
+      operationId: get_subscription
+      parameters:
+      - in: path
+        name: uuid
+        schema:
+          type: string
+          format: uuid
+        required: true
+      tags:
+      - subscriptions
+      security:
+      - oauth2: []
+      - ApplicationToken: []
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Subscription'
+          description: ''
+  /api/v1/subscriptions/all/:
+    get:
+      operationId: get_all_subscriptions
+      description: |-
+        Return all the subscriptions of the current user, with only limited data
+        to have a performant endpoint and avoid lots of queries just to display
+        subscription status in the UI
+      tags:
+      - subscriptions
+      security:
+      - oauth2: []
+      - ApplicationToken: []
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Subscription'
+          description: ''
+  /api/v1/tags/:
+    get:
+      operationId: get_tags
+      parameters:
+      - in: query
+        name: name
+        schema:
+          type: string
+      - in: query
+        name: name__startswith
+        schema:
+          type: string
+      - in: query
+        name: ordering
+        schema:
+          type: array
+          items:
+            type: string
+            enum:
+            - -creation_date
+            - -length
+            - -name
+            - creation_date
+            - length
+            - name
+        description: Ordering
+        explode: false
+        style: form
+      - name: page
+        required: false
+        in: query
+        description: A page number within the paginated result set.
+        schema:
+          type: integer
+      - name: page_size
+        required: false
+        in: query
+        description: Number of results to return per page.
+        schema:
+          type: integer
+      - in: query
+        name: q
+        schema:
+          type: string
       tags:
-      - radios
-      requestBody:
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/RadioSessionTrackSerializerCreate'
-          application/x-www-form-urlencoded:
-            schema:
-              $ref: '#/components/schemas/RadioSessionTrackSerializerCreate'
-          multipart/form-data:
-            schema:
-              $ref: '#/components/schemas/RadioSessionTrackSerializerCreate'
-          application/activity+json:
-            schema:
-              $ref: '#/components/schemas/RadioSessionTrackSerializerCreate'
-        required: true
+      - tags
       security:
       - oauth2: []
       - ApplicationToken: []
       responses:
-        '201':
+        '200':
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/RadioSessionTrackSerializerCreate'
+                $ref: '#/components/schemas/PaginatedTagList'
           description: ''
-  /api/v1/rate-limit/:
+  /api/v1/tags/{name}/:
     get:
-      operationId: rate_limit_retrieve
+      operationId: get_tag
+      parameters:
+      - in: path
+        name: name
+        schema:
+          type: string
+        required: true
       tags:
-      - rate-limit
+      - tags
       security:
       - oauth2: []
       - ApplicationToken: []
@@ -6833,51 +7626,97 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/RateLimit'
+                $ref: '#/components/schemas/Tag'
           description: ''
-  /api/v1/search:
-    get:
-      operationId: search_retrieve
+  /api/v1/text-preview/:
+    post:
+      operationId: preview_text
       tags:
-      - search
+      - text-preview
       security:
       - oauth2: []
       - ApplicationToken: []
       responses:
         '200':
           description: No response body
-  /api/v1/stream/{uuid}/:
+  /api/v1/tracks/:
     get:
-      operationId: stream_retrieve
+      operationId: get_tracks
+      description: A simple ViewSet for viewing and editing accounts.
       parameters:
-      - in: path
-        name: uuid
+      - in: query
+        name: album
+        schema:
+          type: integer
+      - in: query
+        name: artist
         schema:
           type: string
-          format: uuid
-        required: true
-      tags:
-      - stream
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            audio/mpeg:
-              schema:
-                $ref: '#/components/schemas/Track'
-          description: ''
-  /api/v1/subscriptions/:
-    get:
-      operationId: subscriptions_list
-      parameters:
-      - name: ordering
-        required: false
-        in: query
-        description: Which field to use when ordering the results.
+      - in: query
+        name: channel
+        schema:
+          type: string
+      - in: query
+        name: hidden
+        schema:
+          type: boolean
+      - in: query
+        name: id
+        schema:
+          type: array
+          items:
+            type: integer
+        explode: true
+        style: form
+      - in: query
+        name: include_channels
+        schema:
+          type: boolean
+      - in: query
+        name: library
+        schema:
+          type: string
+      - in: query
+        name: license
+        schema:
+          type: string
+      - in: query
+        name: mbid
         schema:
           type: string
+          format: uuid
+      - in: query
+        name: ordering
+        schema:
+          type: array
+          items:
+            type: string
+            enum:
+            - -album__release_date
+            - -album__title
+            - -artist__modification_date
+            - -artist__name
+            - -creation_date
+            - -disc_number
+            - -position
+            - -random
+            - -related
+            - -size
+            - -title
+            - album__release_date
+            - album__title
+            - artist__modification_date
+            - artist__name
+            - creation_date
+            - disc_number
+            - position
+            - random
+            - related
+            - size
+            - title
+        description: Ordering
+        explode: false
+        style: form
       - name: page
         required: false
         in: query
@@ -6890,8 +7729,48 @@ paths:
         description: Number of results to return per page.
         schema:
           type: integer
+      - in: query
+        name: playable
+        schema:
+          type: boolean
+      - in: query
+        name: q
+        schema:
+          type: string
+      - in: query
+        name: related
+        schema:
+          type: string
+      - in: query
+        name: scope
+        schema:
+          type: string
+      - in: query
+        name: tag
+        schema:
+          type: array
+          items:
+            type: string
+        explode: true
+        style: form
+      - in: query
+        name: title
+        schema:
+          type: string
+      - in: query
+        name: title__icontains
+        schema:
+          type: string
+      - in: query
+        name: title__iexact
+        schema:
+          type: string
+      - in: query
+        name: title__startswith
+        schema:
+          type: string
       tags:
-      - subscriptions
+      - tracks
       security:
       - oauth2: []
       - ApplicationToken: []
@@ -6900,20 +7779,21 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/PaginatedSubscriptionList'
+                $ref: '#/components/schemas/PaginatedTrackList'
           description: ''
-  /api/v1/subscriptions/{uuid}/:
+  /api/v1/tracks/{id}/:
     get:
-      operationId: subscriptions_retrieve
+      operationId: get_track
+      description: A simple ViewSet for viewing and editing accounts.
       parameters:
       - in: path
-        name: uuid
+        name: id
         schema:
-          type: string
-          format: uuid
+          type: integer
+        description: A unique integer value identifying this track.
         required: true
       tags:
-      - subscriptions
+      - tracks
       security:
       - oauth2: []
       - ApplicationToken: []
@@ -6922,39 +7802,70 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/Subscription'
+                $ref: '#/components/schemas/Track'
           description: ''
-  /api/v1/subscriptions/all/:
-    get:
-      operationId: subscriptions_all_retrieve
-      description: |-
-        Return all the subscriptions of the current user, with only limited data
-        to have a performant endpoint and avoid lots of queries just to display
-        subscription status in the UI
+    delete:
+      operationId: delete_track
+      description: A simple ViewSet for viewing and editing accounts.
+      parameters:
+      - in: path
+        name: id
+        schema:
+          type: integer
+        description: A unique integer value identifying this track.
+        required: true
       tags:
-      - subscriptions
+      - tracks
       security:
       - oauth2: []
       - ApplicationToken: []
       responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/Subscription'
-          description: ''
-  /api/v1/tags/:
+        '204':
+          description: No response body
+  /api/v1/tracks/{id}/fetches/:
     get:
-      operationId: tags_list
+      operationId: get_track_fetches
+      description: A simple ViewSet for viewing and editing accounts.
       parameters:
       - in: query
-        name: name
+        name: album
+        schema:
+          type: integer
+      - in: query
+        name: artist
         schema:
           type: string
       - in: query
-        name: name__startswith
+        name: channel
+        schema:
+          type: string
+      - in: query
+        name: hidden
+        schema:
+          type: boolean
+      - in: path
+        name: id
+        schema:
+          type: integer
+        description: A unique integer value identifying this track.
+        required: true
+      - in: query
+        name: include_channels
+        schema:
+          type: boolean
+      - in: query
+        name: library
+        schema:
+          type: string
+      - in: query
+        name: license
+        schema:
+          type: string
+      - in: query
+        name: mbid
         schema:
           type: string
+          format: uuid
       - in: query
         name: ordering
         schema:
@@ -6962,12 +7873,28 @@ paths:
           items:
             type: string
             enum:
+            - -album__release_date
+            - -album__title
+            - -artist__modification_date
+            - -artist__name
             - -creation_date
-            - -length
-            - -name
+            - -disc_number
+            - -position
+            - -random
+            - -related
+            - -size
+            - -title
+            - album__release_date
+            - album__title
+            - artist__modification_date
+            - artist__name
             - creation_date
-            - length
-            - name
+            - disc_number
+            - position
+            - random
+            - related
+            - size
+            - title
         description: Ordering
         explode: false
         style: form
@@ -6983,12 +7910,48 @@ paths:
         description: Number of results to return per page.
         schema:
           type: integer
+      - in: query
+        name: playable
+        schema:
+          type: boolean
       - in: query
         name: q
         schema:
           type: string
+      - in: query
+        name: related
+        schema:
+          type: string
+      - in: query
+        name: scope
+        schema:
+          type: string
+      - in: query
+        name: tag
+        schema:
+          type: array
+          items:
+            type: string
+        explode: true
+        style: form
+      - in: query
+        name: title
+        schema:
+          type: string
+      - in: query
+        name: title__icontains
+        schema:
+          type: string
+      - in: query
+        name: title__iexact
+        schema:
+          type: string
+      - in: query
+        name: title__startswith
+        schema:
+          type: string
       tags:
-      - tags
+      - tracks
       security:
       - oauth2: []
       - ApplicationToken: []
@@ -6997,19 +7960,35 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/PaginatedTagList'
+                $ref: '#/components/schemas/PaginatedFetchList'
           description: ''
-  /api/v1/tags/{name}/:
-    get:
-      operationId: tags_retrieve
+    post:
+      operationId: create_track_fetch
+      description: A simple ViewSet for viewing and editing accounts.
       parameters:
       - in: path
-        name: name
+        name: id
         schema:
-          type: string
+          type: integer
+        description: A unique integer value identifying this track.
         required: true
       tags:
-      - tags
+      - tracks
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Track'
+          application/x-www-form-urlencoded:
+            schema:
+              $ref: '#/components/schemas/Track'
+          multipart/form-data:
+            schema:
+              $ref: '#/components/schemas/Track'
+          application/activity+json:
+            schema:
+              $ref: '#/components/schemas/Track'
+        required: true
       security:
       - oauth2: []
       - ApplicationToken: []
@@ -7018,22 +7997,11 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/Tag'
+                $ref: '#/components/schemas/Fetch'
           description: ''
-  /api/v1/text-preview/:
-    post:
-      operationId: text_preview_create
-      tags:
-      - text-preview
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          description: No response body
-  /api/v1/tracks/:
+  /api/v1/tracks/{id}/libraries/:
     get:
-      operationId: tracks_list
+      operationId: get_track_libraries
       description: A simple ViewSet for viewing and editing accounts.
       parameters:
       - in: query
@@ -7052,14 +8020,12 @@ paths:
         name: hidden
         schema:
           type: boolean
-      - in: query
+      - in: path
         name: id
         schema:
-          type: array
-          items:
-            type: integer
-        explode: true
-        style: form
+          type: integer
+        description: A unique integer value identifying this track.
+        required: true
       - in: query
         name: include_channels
         schema:
@@ -7171,143 +8137,136 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/PaginatedTrackList'
+                $ref: '#/components/schemas/PaginatedLibraryList'
           description: ''
-  /api/v1/tracks/{id}/:
+  /api/v1/tracks/{id}/mutations/:
     get:
-      operationId: tracks_retrieve
+      operationId: get_track_mutations
       description: A simple ViewSet for viewing and editing accounts.
       parameters:
-      - in: path
-        name: id
+      - in: query
+        name: album
         schema:
           type: integer
-        description: A unique integer value identifying this track.
-        required: true
-      tags:
-      - tracks
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/Track'
-          description: ''
-    delete:
-      operationId: tracks_destroy
-      description: A simple ViewSet for viewing and editing accounts.
-      parameters:
-      - in: path
-        name: id
+      - in: query
+        name: artist
         schema:
-          type: integer
-        description: A unique integer value identifying this track.
-        required: true
-      tags:
-      - tracks
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '204':
-          description: No response body
-  /api/v1/tracks/{id}/fetches/:
-    get:
-      operationId: tracks_fetches_retrieve
-      description: A simple ViewSet for viewing and editing accounts.
-      parameters:
-      - in: path
-        name: id
+          type: string
+      - in: query
+        name: channel
         schema:
-          type: integer
-        description: A unique integer value identifying this track.
-        required: true
-      tags:
-      - tracks
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/Track'
-          description: ''
-    post:
-      operationId: tracks_fetches_create
-      description: A simple ViewSet for viewing and editing accounts.
-      parameters:
+          type: string
+      - in: query
+        name: hidden
+        schema:
+          type: boolean
       - in: path
         name: id
         schema:
           type: integer
         description: A unique integer value identifying this track.
         required: true
-      tags:
-      - tracks
-      requestBody:
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/Track'
-          application/x-www-form-urlencoded:
-            schema:
-              $ref: '#/components/schemas/Track'
-          multipart/form-data:
-            schema:
-              $ref: '#/components/schemas/Track'
-          application/activity+json:
-            schema:
-              $ref: '#/components/schemas/Track'
-        required: true
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/Track'
-          description: ''
-  /api/v1/tracks/{id}/libraries/:
-    get:
-      operationId: tracks_libraries_retrieve
-      description: A simple ViewSet for viewing and editing accounts.
-      parameters:
-      - in: path
-        name: id
+      - in: query
+        name: include_channels
+        schema:
+          type: boolean
+      - in: query
+        name: library
+        schema:
+          type: string
+      - in: query
+        name: license
+        schema:
+          type: string
+      - in: query
+        name: mbid
+        schema:
+          type: string
+          format: uuid
+      - in: query
+        name: ordering
+        schema:
+          type: array
+          items:
+            type: string
+            enum:
+            - -album__release_date
+            - -album__title
+            - -artist__modification_date
+            - -artist__name
+            - -creation_date
+            - -disc_number
+            - -position
+            - -random
+            - -related
+            - -size
+            - -title
+            - album__release_date
+            - album__title
+            - artist__modification_date
+            - artist__name
+            - creation_date
+            - disc_number
+            - position
+            - random
+            - related
+            - size
+            - title
+        description: Ordering
+        explode: false
+        style: form
+      - name: page
+        required: false
+        in: query
+        description: A page number within the paginated result set.
         schema:
           type: integer
-        description: A unique integer value identifying this track.
-        required: true
-      tags:
-      - tracks
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/Track'
-          description: ''
-  /api/v1/tracks/{id}/mutations/:
-    get:
-      operationId: tracks_mutations_retrieve
-      description: A simple ViewSet for viewing and editing accounts.
-      parameters:
-      - in: path
-        name: id
+      - name: page_size
+        required: false
+        in: query
+        description: Number of results to return per page.
         schema:
           type: integer
-        description: A unique integer value identifying this track.
-        required: true
+      - in: query
+        name: playable
+        schema:
+          type: boolean
+      - in: query
+        name: q
+        schema:
+          type: string
+      - in: query
+        name: related
+        schema:
+          type: string
+      - in: query
+        name: scope
+        schema:
+          type: string
+      - in: query
+        name: tag
+        schema:
+          type: array
+          items:
+            type: string
+        explode: true
+        style: form
+      - in: query
+        name: title
+        schema:
+          type: string
+      - in: query
+        name: title__icontains
+        schema:
+          type: string
+      - in: query
+        name: title__iexact
+        schema:
+          type: string
+      - in: query
+        name: title__startswith
+        schema:
+          type: string
       tags:
       - tracks
       security:
@@ -7318,10 +8277,10 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/Track'
+                $ref: '#/components/schemas/PaginatedAPIMutationList'
           description: ''
     post:
-      operationId: tracks_mutations_create
+      operationId: create_track_mutation
       description: A simple ViewSet for viewing and editing accounts.
       parameters:
       - in: path
@@ -7355,11 +8314,11 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/Track'
+                $ref: '#/components/schemas/APIMutation'
           description: ''
   /api/v1/uploads/:
     get:
-      operationId: uploads_list
+      operationId: get_uploads
       parameters:
       - in: query
         name: album_artist
@@ -7451,183 +8410,10 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/PaginatedUploadForOwnerList'
-          description: ''
-    post:
-      operationId: uploads_create
-      tags:
-      - uploads
-      requestBody:
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/UploadForOwner'
-          application/x-www-form-urlencoded:
-            schema:
-              $ref: '#/components/schemas/UploadForOwner'
-          multipart/form-data:
-            schema:
-              $ref: '#/components/schemas/UploadForOwner'
-          application/activity+json:
-            schema:
-              $ref: '#/components/schemas/UploadForOwner'
-        required: true
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '201':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/UploadForOwner'
-          description: ''
-  /api/v1/uploads/{uuid}/:
-    get:
-      operationId: uploads_retrieve
-      parameters:
-      - in: path
-        name: uuid
-        schema:
-          type: string
-          format: uuid
-        required: true
-      tags:
-      - uploads
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/UploadForOwner'
-          description: ''
-    put:
-      operationId: uploads_update
-      parameters:
-      - in: path
-        name: uuid
-        schema:
-          type: string
-          format: uuid
-        required: true
-      tags:
-      - uploads
-      requestBody:
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/UploadForOwner'
-          application/x-www-form-urlencoded:
-            schema:
-              $ref: '#/components/schemas/UploadForOwner'
-          multipart/form-data:
-            schema:
-              $ref: '#/components/schemas/UploadForOwner'
-          application/activity+json:
-            schema:
-              $ref: '#/components/schemas/UploadForOwner'
-        required: true
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/UploadForOwner'
-          description: ''
-    patch:
-      operationId: uploads_partial_update
-      parameters:
-      - in: path
-        name: uuid
-        schema:
-          type: string
-          format: uuid
-        required: true
-      tags:
-      - uploads
-      requestBody:
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/PatchedUploadForOwner'
-          application/x-www-form-urlencoded:
-            schema:
-              $ref: '#/components/schemas/PatchedUploadForOwner'
-          multipart/form-data:
-            schema:
-              $ref: '#/components/schemas/PatchedUploadForOwner'
-          application/activity+json:
-            schema:
-              $ref: '#/components/schemas/PatchedUploadForOwner'
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/UploadForOwner'
-          description: ''
-    delete:
-      operationId: uploads_destroy
-      parameters:
-      - in: path
-        name: uuid
-        schema:
-          type: string
-          format: uuid
-        required: true
-      tags:
-      - uploads
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '204':
-          description: No response body
-  /api/v1/uploads/{uuid}/audio-file-metadata/:
-    get:
-      operationId: uploads_audio_file_metadata_retrieve
-      parameters:
-      - in: path
-        name: uuid
-        schema:
-          type: string
-          format: uuid
-        required: true
-      tags:
-      - uploads
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/UploadForOwner'
-          description: ''
-  /api/v1/uploads/action/:
-    post:
-      operationId: uploads_action_create
-      description: |-
-        str(object='') -> str
-        str(bytes_or_buffer[, encoding[, errors]]) -> str
-
-        Create a new string object from the given object. If encoding or
-        errors is specified, then the object must expose a data buffer
-        that will be decoded using the given encoding and error handler.
-        Otherwise, returns the result of object.__str__() (if defined)
-        or repr(object).
-        encoding defaults to sys.getdefaultencoding().
-        errors defaults to 'strict'.
+                $ref: '#/components/schemas/PaginatedUploadForOwnerList'
+          description: ''
+    post:
+      operationId: create_upload
       tags:
       - uploads
       requestBody:
@@ -7649,39 +8435,24 @@ paths:
       - oauth2: []
       - ApplicationToken: []
       responses:
-        '200':
+        '201':
           content:
             application/json:
               schema:
                 $ref: '#/components/schemas/UploadForOwner'
           description: ''
-  /api/v1/users/{username}/:
-    put:
-      operationId: users_update
+  /api/v1/uploads/{uuid}/:
+    get:
+      operationId: get_upload
       parameters:
       - in: path
-        name: username
+        name: uuid
         schema:
           type: string
-          pattern: ^[a-zA-Z0-9-_.]+$
+          format: uuid
         required: true
       tags:
-      - users
-      requestBody:
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/UserWrite'
-          application/x-www-form-urlencoded:
-            schema:
-              $ref: '#/components/schemas/UserWrite'
-          multipart/form-data:
-            schema:
-              $ref: '#/components/schemas/UserWrite'
-          application/activity+json:
-            schema:
-              $ref: '#/components/schemas/UserWrite'
-        required: true
+      - uploads
       security:
       - oauth2: []
       - ApplicationToken: []
@@ -7690,55 +8461,34 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/UserWrite'
+                $ref: '#/components/schemas/UploadForOwner'
           description: ''
-    patch:
-      operationId: users_partial_update
+    put:
+      operationId: update_upload
       parameters:
       - in: path
-        name: username
+        name: uuid
         schema:
           type: string
-          pattern: ^[a-zA-Z0-9-_.]+$
+          format: uuid
         required: true
       tags:
-      - users
+      - uploads
       requestBody:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/PatchedUserWrite'
+              $ref: '#/components/schemas/UploadForOwner'
           application/x-www-form-urlencoded:
             schema:
-              $ref: '#/components/schemas/PatchedUserWrite'
+              $ref: '#/components/schemas/UploadForOwner'
           multipart/form-data:
             schema:
-              $ref: '#/components/schemas/PatchedUserWrite'
+              $ref: '#/components/schemas/UploadForOwner'
           application/activity+json:
             schema:
-              $ref: '#/components/schemas/PatchedUserWrite'
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/UserWrite'
-          description: ''
-  /api/v1/users/{username}/subsonic-token/:
-    get:
-      operationId: users_subsonic_token_retrieve
-      parameters:
-      - in: path
-        name: username
-        schema:
-          type: string
-          pattern: ^[a-zA-Z0-9-_.]+$
+              $ref: '#/components/schemas/UploadForOwner'
         required: true
-      tags:
-      - users
       security:
       - oauth2: []
       - ApplicationToken: []
@@ -7747,34 +8497,33 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/UserWrite'
+                $ref: '#/components/schemas/UploadForOwner'
           description: ''
-    post:
-      operationId: users_subsonic_token_create
+    patch:
+      operationId: partial_update_upload
       parameters:
       - in: path
-        name: username
+        name: uuid
         schema:
           type: string
-          pattern: ^[a-zA-Z0-9-_.]+$
+          format: uuid
         required: true
       tags:
-      - users
+      - uploads
       requestBody:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/UserWrite'
+              $ref: '#/components/schemas/PatchedUploadForOwner'
           application/x-www-form-urlencoded:
             schema:
-              $ref: '#/components/schemas/UserWrite'
+              $ref: '#/components/schemas/PatchedUploadForOwner'
           multipart/form-data:
             schema:
-              $ref: '#/components/schemas/UserWrite'
+              $ref: '#/components/schemas/PatchedUploadForOwner'
           application/activity+json:
             schema:
-              $ref: '#/components/schemas/UserWrite'
-        required: true
+              $ref: '#/components/schemas/PatchedUploadForOwner'
       security:
       - oauth2: []
       - ApplicationToken: []
@@ -7783,61 +8532,37 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/UserWrite'
+                $ref: '#/components/schemas/UploadForOwner'
           description: ''
     delete:
-      operationId: users_subsonic_token_destroy
+      operationId: delete_upload
       parameters:
       - in: path
-        name: username
+        name: uuid
         schema:
           type: string
-          pattern: ^[a-zA-Z0-9-_.]+$
+          format: uuid
         required: true
       tags:
-      - users
+      - uploads
       security:
       - oauth2: []
       - ApplicationToken: []
       responses:
         '204':
           description: No response body
-  /api/v1/users/change-email/:
-    post:
-      operationId: users_change_email_create
-      tags:
-      - users
-      requestBody:
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/UserWrite'
-          application/x-www-form-urlencoded:
-            schema:
-              $ref: '#/components/schemas/UserWrite'
-          multipart/form-data:
-            schema:
-              $ref: '#/components/schemas/UserWrite'
-          application/activity+json:
-            schema:
-              $ref: '#/components/schemas/UserWrite'
-        required: true
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/UserWrite'
-          description: ''
-  /api/v1/users/me/:
+  /api/v1/uploads/{uuid}/audio-file-metadata/:
     get:
-      operationId: users_me_retrieve
-      description: Return information about the current user or delete it
+      operationId: get_upload_metadata
+      parameters:
+      - in: path
+        name: uuid
+        schema:
+          type: string
+          format: uuid
+        required: true
       tags:
-      - users
+      - uploads
       security:
       - oauth2: []
       - ApplicationToken: []
@@ -7846,39 +8571,38 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/UserWrite'
+                $ref: '#/components/schemas/UploadForOwner'
           description: ''
-    delete:
-      operationId: users_me_destroy
-      description: Return information about the current user or delete it
-      tags:
-      - users
-      security:
-      - oauth2: []
-      - ApplicationToken: []
-      responses:
-        '204':
-          description: No response body
-  /api/v1/users/settings/:
+  /api/v1/uploads/action/:
     post:
-      operationId: users_settings_create
-      description: Return information about the current user or delete it
+      operationId: create_upload_action
+      description: |-
+        str(object='') -> str
+        str(bytes_or_buffer[, encoding[, errors]]) -> str
+
+        Create a new string object from the given object. If encoding or
+        errors is specified, then the object must expose a data buffer
+        that will be decoded using the given encoding and error handler.
+        Otherwise, returns the result of object.__str__() (if defined)
+        or repr(object).
+        encoding defaults to sys.getdefaultencoding().
+        errors defaults to 'strict'.
       tags:
-      - users
+      - uploads
       requestBody:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/UserWrite'
+              $ref: '#/components/schemas/UploadForOwner'
           application/x-www-form-urlencoded:
             schema:
-              $ref: '#/components/schemas/UserWrite'
+              $ref: '#/components/schemas/UploadForOwner'
           multipart/form-data:
             schema:
-              $ref: '#/components/schemas/UserWrite'
+              $ref: '#/components/schemas/UploadForOwner'
           application/activity+json:
             schema:
-              $ref: '#/components/schemas/UserWrite'
+              $ref: '#/components/schemas/UploadForOwner'
         required: true
       security:
       - oauth2: []
@@ -7888,11 +8612,11 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/UserWrite'
+                $ref: '#/components/schemas/UploadForOwner'
           description: ''
-  /api/v1/users/users/{username}/:
+  /api/v1/users/{username}/:
     put:
-      operationId: users_users_update
+      operationId: update_user
       parameters:
       - in: path
         name: username
@@ -7928,7 +8652,7 @@ paths:
                 $ref: '#/components/schemas/UserWrite'
           description: ''
     patch:
-      operationId: users_users_partial_update
+      operationId: partial_update_user
       parameters:
       - in: path
         name: username
@@ -7962,9 +8686,9 @@ paths:
               schema:
                 $ref: '#/components/schemas/UserWrite'
           description: ''
-  /api/v1/users/users/{username}/subsonic-token/:
+  /api/v1/users/{username}/subsonic-token/:
     get:
-      operationId: users_users_subsonic_token_retrieve
+      operationId: get_user_subsonic_token
       parameters:
       - in: path
         name: username
@@ -7985,7 +8709,7 @@ paths:
                 $ref: '#/components/schemas/UserWrite'
           description: ''
     post:
-      operationId: users_users_subsonic_token_create
+      operationId: create_user_subsonic_token
       parameters:
       - in: path
         name: username
@@ -8021,7 +8745,7 @@ paths:
                 $ref: '#/components/schemas/UserWrite'
           description: ''
     delete:
-      operationId: users_users_subsonic_token_destroy
+      operationId: delete_user_subsonic_token
       parameters:
       - in: path
         name: username
@@ -8037,9 +8761,9 @@ paths:
       responses:
         '204':
           description: No response body
-  /api/v1/users/users/change-email/:
+  /api/v1/users/change-email/:
     post:
-      operationId: users_users_change_email_create
+      operationId: change_email
       tags:
       - users
       requestBody:
@@ -8067,9 +8791,9 @@ paths:
               schema:
                 $ref: '#/components/schemas/UserWrite'
           description: ''
-  /api/v1/users/users/me/:
+  /api/v1/users/me/:
     get:
-      operationId: users_users_me_retrieve
+      operationId: get_authenticated_user
       description: Return information about the current user or delete it
       tags:
       - users
@@ -8084,7 +8808,7 @@ paths:
                 $ref: '#/components/schemas/UserWrite'
           description: ''
     delete:
-      operationId: users_users_me_destroy
+      operationId: delete_authenticated_user
       description: Return information about the current user or delete it
       tags:
       - users
@@ -8094,9 +8818,9 @@ paths:
       responses:
         '204':
           description: No response body
-  /api/v1/users/users/settings/:
+  /api/v1/users/settings/:
     post:
-      operationId: users_users_settings_create
+      operationId: update_settings
       description: Return information about the current user or delete it
       tags:
       - users
@@ -10637,6 +11361,26 @@ components:
           type: array
           items:
             $ref: '#/components/schemas/Domain'
+    PaginatedFetchList:
+      type: object
+      properties:
+        count:
+          type: integer
+          example: 123
+        next:
+          type: string
+          nullable: true
+          format: uri
+          example: http://api.example.org/accounts/?page=4
+        previous:
+          type: string
+          nullable: true
+          format: uri
+          example: http://api.example.org/accounts/?page=2
+        results:
+          type: array
+          items:
+            $ref: '#/components/schemas/Fetch'
     PaginatedInboxItemList:
       type: object
       properties:
@@ -10697,6 +11441,26 @@ components:
           type: array
           items:
             $ref: '#/components/schemas/LibraryForOwner'
+    PaginatedLibraryList:
+      type: object
+      properties:
+        count:
+          type: integer
+          example: 123
+        next:
+          type: string
+          nullable: true
+          format: uri
+          example: http://api.example.org/accounts/?page=4
+        previous:
+          type: string
+          nullable: true
+          format: uri
+          example: http://api.example.org/accounts/?page=2
+        results:
+          type: array
+          items:
+            $ref: '#/components/schemas/Library'
     PaginatedLicenseList:
       type: object
       properties:
@@ -11057,6 +11821,26 @@ components:
           type: array
           items:
             $ref: '#/components/schemas/Playlist'
+    PaginatedPlaylistTrackList:
+      type: object
+      properties:
+        count:
+          type: integer
+          example: 123
+        next:
+          type: string
+          nullable: true
+          format: uri
+          example: http://api.example.org/accounts/?page=4
+        previous:
+          type: string
+          nullable: true
+          format: uri
+          example: http://api.example.org/accounts/?page=2
+        results:
+          type: array
+          items:
+            $ref: '#/components/schemas/PlaylistTrack'
     PaginatedRadioList:
       type: object
       properties:
@@ -11879,6 +12663,33 @@ components:
       - name
       - tracks_count
       - user
+    PlaylistAddMany:
+      type: object
+      properties:
+        tracks:
+          type: array
+          items:
+            type: integer
+        allow_duplicates:
+          type: boolean
+      required:
+      - tracks
+    PlaylistTrack:
+      type: object
+      properties:
+        track:
+          type: string
+          readOnly: true
+        index:
+          type: integer
+          maximum: 2147483647
+          minimum: 0
+          nullable: true
+        creation_date:
+          type: string
+          format: date-time
+      required:
+      - track
     PrivacyLevelEnum:
       enum:
       - me
diff --git a/src/api.ts b/src/api.ts
index 17e084b..a51943a 100644
--- a/src/api.ts
+++ b/src/api.ts
@@ -93,6 +93,87 @@ export type AlbumCreate = {
     description?: (Content) | null;
     artist: string;
 };
+export type FetchStatusEnum = "pending" | "errored" | "finished" | "skipped";
+export type Fetch = {
+    id: number;
+    url: string;
+    actor: ApiActor;
+    status: FetchStatusEnum;
+    detail: {
+        [key: string]: any;
+    };
+    creation_date: string;
+    fetch_date: string | null;
+    "object": string;
+    force?: boolean;
+};
+export type PaginatedFetchList = {
+    count?: number;
+    next?: string | null;
+    previous?: string | null;
+    results?: Fetch[];
+};
+export type LibraryPrivacyLevelEnum = "me" | "instance" | "everyone";
+export type NestedLibraryFollow = {
+    creation_date?: string;
+    uuid?: string;
+    fid?: string | null;
+    approved?: boolean | null;
+    modification_date: string;
+};
+export type LibraryScan = {
+    total_files?: number;
+    processed_files?: number;
+    errored_files?: number;
+    status?: string;
+    creation_date?: string;
+    modification_date?: string | null;
+};
+export type Library = {
+    fid: string;
+    uuid?: string;
+    actor: ApiActor;
+    name: string;
+    description?: string | null;
+    creation_date?: string;
+    uploads_count: number;
+    privacy_level?: LibraryPrivacyLevelEnum;
+    follow: NestedLibraryFollow;
+    latest_scan: LibraryScan;
+};
+export type PaginatedLibraryList = {
+    count?: number;
+    next?: string | null;
+    previous?: string | null;
+    results?: Library[];
+};
+export type ApiMutation = {
+    fid: string;
+    uuid: string;
+    "type": string;
+    creation_date: string;
+    applied_date?: string | null;
+    is_approved?: boolean | null;
+    is_applied: boolean | null;
+    created_by: ApiActor;
+    approved_by: number | null;
+    summary?: string | null;
+    payload: {
+        [key: string]: any;
+    };
+    previous_state: {
+        [key: string]: any;
+    } | null;
+    target: {
+        [key: string]: any;
+    };
+};
+export type PaginatedApiMutationList = {
+    count?: number;
+    next?: string | null;
+    previous?: string | null;
+    results?: ApiMutation[];
+};
 export type ArtistAlbum = {
     cover: CoverField;
     tracks_count: number;
@@ -311,20 +392,6 @@ export type PaginatedDomainList = {
     previous?: string | null;
     results?: Domain[];
 };
-export type FetchStatusEnum = "pending" | "errored" | "finished" | "skipped";
-export type Fetch = {
-    id: number;
-    url: string;
-    actor: ApiActor;
-    status: FetchStatusEnum;
-    detail: {
-        [key: string]: any;
-    };
-    creation_date: string;
-    fetch_date: string | null;
-    "object": string;
-    force?: boolean;
-};
 export type LibraryFollow = {
     creation_date: string;
     actor: ApiActor;
@@ -376,34 +443,6 @@ export type PatchedInboxItem = {
     activity?: Activity;
     is_read?: boolean;
 };
-export type LibraryPrivacyLevelEnum = "me" | "instance" | "everyone";
-export type NestedLibraryFollow = {
-    creation_date?: string;
-    uuid?: string;
-    fid?: string | null;
-    approved?: boolean | null;
-    modification_date: string;
-};
-export type LibraryScan = {
-    total_files?: number;
-    processed_files?: number;
-    errored_files?: number;
-    status?: string;
-    creation_date?: string;
-    modification_date?: string | null;
-};
-export type Library = {
-    fid: string;
-    uuid?: string;
-    actor: ApiActor;
-    name: string;
-    description?: string | null;
-    creation_date?: string;
-    uploads_count: number;
-    privacy_level?: LibraryPrivacyLevelEnum;
-    follow: NestedLibraryFollow;
-    latest_scan: LibraryScan;
-};
 export type Listening = {
     id: number;
     user: UserBasic;
@@ -1122,33 +1161,6 @@ export type Report = {
     };
     "type": ReportTypeEnum;
 };
-export type ApiMutation = {
-    fid: string;
-    uuid: string;
-    "type": string;
-    creation_date: string;
-    applied_date?: string | null;
-    is_approved?: boolean | null;
-    is_applied: boolean | null;
-    created_by: ApiActor;
-    approved_by: number | null;
-    summary?: string | null;
-    payload: {
-        [key: string]: any;
-    };
-    previous_state: {
-        [key: string]: any;
-    } | null;
-    target: {
-        [key: string]: any;
-    };
-};
-export type PaginatedApiMutationList = {
-    count?: number;
-    next?: string | null;
-    previous?: string | null;
-    results?: ApiMutation[];
-};
 export type Application = {
     client_id?: string;
     name?: string;
@@ -1210,6 +1222,21 @@ export type PatchedPlaylist = {
     is_playable?: boolean;
     actor?: ApiActor;
 };
+export type PlaylistAddMany = {
+    tracks: number[];
+    allow_duplicates?: boolean;
+};
+export type PlaylistTrack = {
+    track: string;
+    index?: number | null;
+    creation_date?: string;
+};
+export type PaginatedPlaylistTrackList = {
+    count?: number;
+    next?: string | null;
+    previous?: string | null;
+    results?: PlaylistTrack[];
+};
 export type Radio = {
     id: number;
     is_public?: boolean;
@@ -1376,7 +1403,7 @@ export type PatchedUserWrite = {
     funkwhale_support_message_display_date?: string | null;
     summary?: (Content) | null;
 };
-export function activityList({ ordering, page, pageSize }: {
+export function getActivity({ ordering, page, pageSize }: {
     ordering?: string;
     page?: number;
     pageSize?: number;
@@ -1389,7 +1416,7 @@ export function activityList({ ordering, page, pageSize }: {
         ...opts
     });
 }
-export function albumsList({ artist, channel, contentCategory, hidden, includeChannels, library, mbid, ordering, page, pageSize, playable, q, related, scope, tag }: {
+export function getAlbums({ artist, channel, contentCategory, hidden, includeChannels, library, mbid, ordering, page, pageSize, playable, q, related, scope, tag }: {
     artist?: number;
     channel?: string;
     contentCategory?: string;
@@ -1430,7 +1457,7 @@ export function albumsList({ artist, channel, contentCategory, hidden, includeCh
         ...opts
     });
 }
-export function albumsCreate(albumCreate: AlbumCreate, opts?: Oazapfts.RequestOpts) {
+export function createAlbum(albumCreate: AlbumCreate, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: AlbumCreate;
@@ -1440,7 +1467,7 @@ export function albumsCreate(albumCreate: AlbumCreate, opts?: Oazapfts.RequestOp
         body: albumCreate
     }));
 }
-export function albumsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getAlbum(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Album;
@@ -1448,57 +1475,156 @@ export function albumsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function albumsDestroy(id: number, opts?: Oazapfts.RequestOpts) {
+export function deleteAlbum(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/albums/${encodeURIComponent(id)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function albumsFetchesRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getAlbumFetches(id: number, { artist, channel, contentCategory, hidden, includeChannels, library, mbid, ordering, page, pageSize, playable, q, related, scope, tag }: {
+    artist?: number;
+    channel?: string;
+    contentCategory?: string;
+    hidden?: boolean;
+    includeChannels?: boolean;
+    library?: string;
+    mbid?: string;
+    ordering?: ("-artist__modification_date" | "-creation_date" | "-random" | "-related" | "-release_date" | "-title" | "artist__modification_date" | "creation_date" | "random" | "related" | "release_date" | "title")[];
+    page?: number;
+    pageSize?: number;
+    playable?: boolean;
+    q?: string;
+    related?: string;
+    scope?: string;
+    tag?: string[];
+} = {}, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: Album;
-    }>(`/api/v1/albums/${encodeURIComponent(id)}/fetches/`, {
+        data: PaginatedFetchList;
+    }>(`/api/v1/albums/${encodeURIComponent(id)}/fetches/${QS.query(QS.explode({
+        artist,
+        channel,
+        content_category: contentCategory,
+        hidden,
+        include_channels: includeChannels,
+        library,
+        mbid,
+        page,
+        page_size: pageSize,
+        playable,
+        q,
+        related,
+        scope,
+        tag
+    }), QS.form({
+        ordering
+    }))}`, {
         ...opts
     });
 }
-export function albumsFetchesCreate(id: number, album: Album, opts?: Oazapfts.RequestOpts) {
+export function createAlbumFetch(id: number, album: Album, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: Album;
+        data: Fetch;
     }>(`/api/v1/albums/${encodeURIComponent(id)}/fetches/`, oazapfts.json({
         ...opts,
         method: "POST",
         body: album
     }));
 }
-export function albumsLibrariesRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getAlbumLibraries(id: number, { artist, channel, contentCategory, hidden, includeChannels, library, mbid, ordering, page, pageSize, playable, q, related, scope, tag }: {
+    artist?: number;
+    channel?: string;
+    contentCategory?: string;
+    hidden?: boolean;
+    includeChannels?: boolean;
+    library?: string;
+    mbid?: string;
+    ordering?: ("-artist__modification_date" | "-creation_date" | "-random" | "-related" | "-release_date" | "-title" | "artist__modification_date" | "creation_date" | "random" | "related" | "release_date" | "title")[];
+    page?: number;
+    pageSize?: number;
+    playable?: boolean;
+    q?: string;
+    related?: string;
+    scope?: string;
+    tag?: string[];
+} = {}, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: Album;
-    }>(`/api/v1/albums/${encodeURIComponent(id)}/libraries/`, {
+        data: PaginatedLibraryList;
+    }>(`/api/v1/albums/${encodeURIComponent(id)}/libraries/${QS.query(QS.explode({
+        artist,
+        channel,
+        content_category: contentCategory,
+        hidden,
+        include_channels: includeChannels,
+        library,
+        mbid,
+        page,
+        page_size: pageSize,
+        playable,
+        q,
+        related,
+        scope,
+        tag
+    }), QS.form({
+        ordering
+    }))}`, {
         ...opts
     });
 }
-export function albumsMutationsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getAlbumMutations(id: number, { artist, channel, contentCategory, hidden, includeChannels, library, mbid, ordering, page, pageSize, playable, q, related, scope, tag }: {
+    artist?: number;
+    channel?: string;
+    contentCategory?: string;
+    hidden?: boolean;
+    includeChannels?: boolean;
+    library?: string;
+    mbid?: string;
+    ordering?: ("-artist__modification_date" | "-creation_date" | "-random" | "-related" | "-release_date" | "-title" | "artist__modification_date" | "creation_date" | "random" | "related" | "release_date" | "title")[];
+    page?: number;
+    pageSize?: number;
+    playable?: boolean;
+    q?: string;
+    related?: string;
+    scope?: string;
+    tag?: string[];
+} = {}, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: Album;
-    }>(`/api/v1/albums/${encodeURIComponent(id)}/mutations/`, {
+        data: PaginatedApiMutationList;
+    }>(`/api/v1/albums/${encodeURIComponent(id)}/mutations/${QS.query(QS.explode({
+        artist,
+        channel,
+        content_category: contentCategory,
+        hidden,
+        include_channels: includeChannels,
+        library,
+        mbid,
+        page,
+        page_size: pageSize,
+        playable,
+        q,
+        related,
+        scope,
+        tag
+    }), QS.form({
+        ordering
+    }))}`, {
         ...opts
     });
 }
-export function albumsMutationsCreate(id: number, album: Album, opts?: Oazapfts.RequestOpts) {
+export function createAlbumMutation(id: number, album: Album, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: Album;
+        data: ApiMutation;
     }>(`/api/v1/albums/${encodeURIComponent(id)}/mutations/`, oazapfts.json({
         ...opts,
         method: "POST",
         body: album
     }));
 }
-export function artistsList({ contentCategory, hasAlbums, hidden, includeChannels, library, mbid, name, nameIcontains, nameIexact, nameStartswith, ordering, page, pageSize, playable, q, related, scope, tag }: {
+export function getArtists({ contentCategory, hasAlbums, hidden, includeChannels, library, mbid, name, nameIcontains, nameIexact, nameStartswith, ordering, page, pageSize, playable, q, related, scope, tag }: {
     contentCategory?: string;
     hasAlbums?: boolean;
     hidden?: boolean;
@@ -1545,7 +1671,7 @@ export function artistsList({ contentCategory, hasAlbums, hidden, includeChannel
         ...opts
     });
 }
-export function artistsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getArtist(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ArtistWithAlbums;
@@ -1553,51 +1679,168 @@ export function artistsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function artistsFetchesRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getArtistFetches(id: number, { contentCategory, hasAlbums, hidden, includeChannels, library, mbid, name, nameIcontains, nameIexact, nameStartswith, ordering, page, pageSize, playable, q, related, scope, tag }: {
+    contentCategory?: string;
+    hasAlbums?: boolean;
+    hidden?: boolean;
+    includeChannels?: boolean;
+    library?: string;
+    mbid?: string;
+    name?: string;
+    nameIcontains?: string;
+    nameIexact?: string;
+    nameStartswith?: string;
+    ordering?: ("-creation_date" | "-id" | "-modification_date" | "-name" | "-random" | "-related" | "creation_date" | "id" | "modification_date" | "name" | "random" | "related")[];
+    page?: number;
+    pageSize?: number;
+    playable?: boolean;
+    q?: string;
+    related?: string;
+    scope?: string;
+    tag?: string[];
+} = {}, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: ArtistWithAlbums;
-    }>(`/api/v1/artists/${encodeURIComponent(id)}/fetches/`, {
+        data: PaginatedFetchList;
+    }>(`/api/v1/artists/${encodeURIComponent(id)}/fetches/${QS.query(QS.explode({
+        content_category: contentCategory,
+        has_albums: hasAlbums,
+        hidden,
+        include_channels: includeChannels,
+        library,
+        mbid,
+        name,
+        name__icontains: nameIcontains,
+        name__iexact: nameIexact,
+        name__startswith: nameStartswith,
+        page,
+        page_size: pageSize,
+        playable,
+        q,
+        related,
+        scope,
+        tag
+    }), QS.form({
+        ordering
+    }))}`, {
         ...opts
     });
 }
-export function artistsFetchesCreate(id: number, artistWithAlbums: ArtistWithAlbums, opts?: Oazapfts.RequestOpts) {
+export function createArtistFetch(id: number, artistWithAlbums: ArtistWithAlbums, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: ArtistWithAlbums;
+        data: Fetch;
     }>(`/api/v1/artists/${encodeURIComponent(id)}/fetches/`, oazapfts.json({
         ...opts,
         method: "POST",
         body: artistWithAlbums
     }));
 }
-export function artistsLibrariesRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getArtistLibraries(id: number, { contentCategory, hasAlbums, hidden, includeChannels, library, mbid, name, nameIcontains, nameIexact, nameStartswith, ordering, page, pageSize, playable, q, related, scope, tag }: {
+    contentCategory?: string;
+    hasAlbums?: boolean;
+    hidden?: boolean;
+    includeChannels?: boolean;
+    library?: string;
+    mbid?: string;
+    name?: string;
+    nameIcontains?: string;
+    nameIexact?: string;
+    nameStartswith?: string;
+    ordering?: ("-creation_date" | "-id" | "-modification_date" | "-name" | "-random" | "-related" | "creation_date" | "id" | "modification_date" | "name" | "random" | "related")[];
+    page?: number;
+    pageSize?: number;
+    playable?: boolean;
+    q?: string;
+    related?: string;
+    scope?: string;
+    tag?: string[];
+} = {}, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: ArtistWithAlbums;
-    }>(`/api/v1/artists/${encodeURIComponent(id)}/libraries/`, {
+        data: PaginatedLibraryList;
+    }>(`/api/v1/artists/${encodeURIComponent(id)}/libraries/${QS.query(QS.explode({
+        content_category: contentCategory,
+        has_albums: hasAlbums,
+        hidden,
+        include_channels: includeChannels,
+        library,
+        mbid,
+        name,
+        name__icontains: nameIcontains,
+        name__iexact: nameIexact,
+        name__startswith: nameStartswith,
+        page,
+        page_size: pageSize,
+        playable,
+        q,
+        related,
+        scope,
+        tag
+    }), QS.form({
+        ordering
+    }))}`, {
         ...opts
     });
 }
-export function artistsMutationsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getArtistMutations(id: number, { contentCategory, hasAlbums, hidden, includeChannels, library, mbid, name, nameIcontains, nameIexact, nameStartswith, ordering, page, pageSize, playable, q, related, scope, tag }: {
+    contentCategory?: string;
+    hasAlbums?: boolean;
+    hidden?: boolean;
+    includeChannels?: boolean;
+    library?: string;
+    mbid?: string;
+    name?: string;
+    nameIcontains?: string;
+    nameIexact?: string;
+    nameStartswith?: string;
+    ordering?: ("-creation_date" | "-id" | "-modification_date" | "-name" | "-random" | "-related" | "creation_date" | "id" | "modification_date" | "name" | "random" | "related")[];
+    page?: number;
+    pageSize?: number;
+    playable?: boolean;
+    q?: string;
+    related?: string;
+    scope?: string;
+    tag?: string[];
+} = {}, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: ArtistWithAlbums;
-    }>(`/api/v1/artists/${encodeURIComponent(id)}/mutations/`, {
+        data: PaginatedApiMutationList;
+    }>(`/api/v1/artists/${encodeURIComponent(id)}/mutations/${QS.query(QS.explode({
+        content_category: contentCategory,
+        has_albums: hasAlbums,
+        hidden,
+        include_channels: includeChannels,
+        library,
+        mbid,
+        name,
+        name__icontains: nameIcontains,
+        name__iexact: nameIexact,
+        name__startswith: nameStartswith,
+        page,
+        page_size: pageSize,
+        playable,
+        q,
+        related,
+        scope,
+        tag
+    }), QS.form({
+        ordering
+    }))}`, {
         ...opts
     });
 }
-export function artistsMutationsCreate(id: number, artistWithAlbums: ArtistWithAlbums, opts?: Oazapfts.RequestOpts) {
+export function createArtistMutation(id: number, artistWithAlbums: ArtistWithAlbums, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: ArtistWithAlbums;
+        data: ApiMutation;
     }>(`/api/v1/artists/${encodeURIComponent(id)}/mutations/`, oazapfts.json({
         ...opts,
         method: "POST",
         body: artistWithAlbums
     }));
 }
-export function attachmentsCreate(attachment: Attachment, opts?: Oazapfts.RequestOpts) {
+export function createAttachment(attachment: Attachment, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: Attachment;
@@ -1607,7 +1850,7 @@ export function attachmentsCreate(attachment: Attachment, opts?: Oazapfts.Reques
         body: attachment
     }));
 }
-export function attachmentsRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function getAttachment(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Attachment;
@@ -1615,13 +1858,13 @@ export function attachmentsRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function attachmentsDestroy(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function deleteAttachment(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/attachments/${encodeURIComponent(uuid)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function attachmentsProxyRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function getAttachmentProxy(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Attachment;
@@ -1635,7 +1878,7 @@ export function attachmentsProxyRetrieve(uuid: string, opts?: Oazapfts.RequestOp
  * Accepts the following POST parameters: new_password1, new_password2
  * Returns the success/fail message.
  */
-export function authPasswordChangeCreate(passwordChange: PasswordChange, opts?: Oazapfts.RequestOpts) {
+export function changePassword(passwordChange: PasswordChange, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: PasswordChange;
@@ -1651,7 +1894,7 @@ export function authPasswordChangeCreate(passwordChange: PasswordChange, opts?:
  * Accepts the following POST parameters: email
  * Returns the success/fail message.
  */
-export function authPasswordResetCreate(passwordReset: PasswordReset, opts?: Oazapfts.RequestOpts) {
+export function resetPassword(passwordReset: PasswordReset, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: PasswordReset;
@@ -1669,7 +1912,7 @@ export function authPasswordResetCreate(passwordReset: PasswordReset, opts?: Oaz
  *     new_password1, new_password2
  * Returns the success/fail message.
  */
-export function authPasswordResetConfirmCreate(passwordResetConfirm: PasswordResetConfirm, opts?: Oazapfts.RequestOpts) {
+export function confirmPasswordReset(passwordResetConfirm: PasswordResetConfirm, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: PasswordResetConfirm;
@@ -1679,7 +1922,7 @@ export function authPasswordResetConfirmCreate(passwordResetConfirm: PasswordRes
         body: passwordResetConfirm
     }));
 }
-export function authRegistrationCreate(register: Register, opts?: Oazapfts.RequestOpts) {
+export function register(register: Register, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: Register;
@@ -1695,7 +1938,7 @@ export function authRegistrationCreate(register: Register, opts?: Oazapfts.Reque
  * Accepts the following POST parameters: new_password1, new_password2
  * Returns the success/fail message.
  */
-export function authRegistrationChangePasswordCreate(passwordChange: PasswordChange, opts?: Oazapfts.RequestOpts) {
+export function changePassword2(passwordChange: PasswordChange, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: PasswordChange;
@@ -1705,7 +1948,7 @@ export function authRegistrationChangePasswordCreate(passwordChange: PasswordCha
         body: passwordChange
     }));
 }
-export function authRegistrationVerifyEmailCreate(verifyEmail: VerifyEmail, opts?: Oazapfts.RequestOpts) {
+export function verifyEmail(verifyEmail: VerifyEmail, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: VerifyEmail;
@@ -1725,7 +1968,7 @@ export function authRegistrationVerifyEmailCreate(verifyEmail: VerifyEmail, opts
  *
  * Returns UserModel fields.
  */
-export function authUserRetrieve(opts?: Oazapfts.RequestOpts) {
+export function getAuthUser(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UserDetails;
@@ -1743,7 +1986,7 @@ export function authUserRetrieve(opts?: Oazapfts.RequestOpts) {
  *
  * Returns UserModel fields.
  */
-export function authUserUpdate(userDetails: UserDetails, opts?: Oazapfts.RequestOpts) {
+export function updateAuthUser(userDetails: UserDetails, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UserDetails;
@@ -1763,7 +2006,7 @@ export function authUserUpdate(userDetails: UserDetails, opts?: Oazapfts.Request
  *
  * Returns UserModel fields.
  */
-export function authUserPartialUpdate(patchedUserDetails?: PatchedUserDetails, opts?: Oazapfts.RequestOpts) {
+export function partialUpdateAuthUser(patchedUserDetails?: PatchedUserDetails, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UserDetails;
@@ -1773,7 +2016,7 @@ export function authUserPartialUpdate(patchedUserDetails?: PatchedUserDetails, o
         body: patchedUserDetails
     }));
 }
-export function channelsList({ external, hidden, ordering, page, pageSize, q, scope, subscribed, tag }: {
+export function getChannels({ external, hidden, ordering, page, pageSize, q, scope, subscribed, tag }: {
     external?: boolean;
     hidden?: boolean;
     ordering?: ("-creation_date" | "-modification_date" | "-random" | "creation_date" | "modification_date" | "random")[];
@@ -1802,7 +2045,7 @@ export function channelsList({ external, hidden, ordering, page, pageSize, q, sc
         ...opts
     });
 }
-export function channelsCreate(channelCreate: ChannelCreate, opts?: Oazapfts.RequestOpts) {
+export function createChannel(channelCreate: ChannelCreate, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: ChannelCreate;
@@ -1812,7 +2055,7 @@ export function channelsCreate(channelCreate: ChannelCreate, opts?: Oazapfts.Req
         body: channelCreate
     }));
 }
-export function channelsRetrieve(composite: string, opts?: Oazapfts.RequestOpts) {
+export function getChannel(composite: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Channel;
@@ -1820,7 +2063,7 @@ export function channelsRetrieve(composite: string, opts?: Oazapfts.RequestOpts)
         ...opts
     });
 }
-export function channelsUpdate(composite: string, channelUpdate: ChannelUpdate, opts?: Oazapfts.RequestOpts) {
+export function updateChannel(composite: string, channelUpdate: ChannelUpdate, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ChannelUpdate;
@@ -1830,7 +2073,7 @@ export function channelsUpdate(composite: string, channelUpdate: ChannelUpdate,
         body: channelUpdate
     }));
 }
-export function channelsPartialUpdate(composite: string, patchedChannelUpdate?: PatchedChannelUpdate, opts?: Oazapfts.RequestOpts) {
+export function partialUpdateChannel(composite: string, patchedChannelUpdate?: PatchedChannelUpdate, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ChannelUpdate;
@@ -1840,13 +2083,13 @@ export function channelsPartialUpdate(composite: string, patchedChannelUpdate?:
         body: patchedChannelUpdate
     }));
 }
-export function channelsDestroy(composite: string, opts?: Oazapfts.RequestOpts) {
+export function deleteChannel(composite: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/channels/${encodeURIComponent(composite)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function channelsRssRetrieve(composite: string, opts?: Oazapfts.RequestOpts) {
+export function getChannelRss(composite: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Channel;
@@ -1854,7 +2097,7 @@ export function channelsRssRetrieve(composite: string, opts?: Oazapfts.RequestOp
         ...opts
     });
 }
-export function channelsSubscribeCreate(composite: string, channelCreate: ChannelCreate, opts?: Oazapfts.RequestOpts) {
+export function subscribeChannel(composite: string, channelCreate: ChannelCreate, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ChannelCreate;
@@ -1864,7 +2107,7 @@ export function channelsSubscribeCreate(composite: string, channelCreate: Channe
         body: channelCreate
     }));
 }
-export function channelsUnsubscribeCreate(composite: string, channelCreate: ChannelCreate, opts?: Oazapfts.RequestOpts) {
+export function unsubscribeChannel2(composite: string, channelCreate: ChannelCreate, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ChannelCreate;
@@ -1874,13 +2117,13 @@ export function channelsUnsubscribeCreate(composite: string, channelCreate: Chan
         body: channelCreate
     }));
 }
-export function channelsUnsubscribeDestroy(composite: string, opts?: Oazapfts.RequestOpts) {
+export function unsubscribeChannel(composite: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/channels/${encodeURIComponent(composite)}/unsubscribe/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function channelsMetadataChoicesRetrieve(opts?: Oazapfts.RequestOpts) {
+export function getChannelMetadataChoices(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Channel;
@@ -1888,7 +2131,7 @@ export function channelsMetadataChoicesRetrieve(opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function channelsRssSubscribeCreate(channelCreate: ChannelCreate, opts?: Oazapfts.RequestOpts) {
+export function subscribeChannelRss(channelCreate: ChannelCreate, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ChannelCreate;
@@ -1898,7 +2141,7 @@ export function channelsRssSubscribeCreate(channelCreate: ChannelCreate, opts?:
         body: channelCreate
     }));
 }
-export function favoritesTracksList({ hidden, ordering, page, pageSize, q, scope }: {
+export function getFavoriteTracks({ hidden, ordering, page, pageSize, q, scope }: {
     hidden?: boolean;
     ordering?: string;
     page?: number;
@@ -1920,7 +2163,7 @@ export function favoritesTracksList({ hidden, ordering, page, pageSize, q, scope
         ...opts
     });
 }
-export function favoritesTracksCreate(userTrackFavoriteWrite: UserTrackFavoriteWrite, opts?: Oazapfts.RequestOpts) {
+export function favoriteTrack(userTrackFavoriteWrite: UserTrackFavoriteWrite, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: UserTrackFavoriteWrite;
@@ -1930,7 +2173,7 @@ export function favoritesTracksCreate(userTrackFavoriteWrite: UserTrackFavoriteW
         body: userTrackFavoriteWrite
     }));
 }
-export function favoritesTracksDestroy(id: number, opts?: Oazapfts.RequestOpts) {
+export function deleteFavoriteTrack(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/favorites/tracks/${encodeURIComponent(id)}/`, {
         ...opts,
         method: "DELETE"
@@ -1941,7 +2184,7 @@ export function favoritesTracksDestroy(id: number, opts?: Oazapfts.RequestOpts)
  * to have a performant endpoint and avoid lots of queries just to display
  * favorites status in the UI
  */
-export function favoritesTracksAllRetrieve(opts?: Oazapfts.RequestOpts) {
+export function getAllFavoriteTracks(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UserTrackFavorite;
@@ -1949,7 +2192,7 @@ export function favoritesTracksAllRetrieve(opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function favoritesTracksRemoveCreate(userTrackFavoriteWrite: UserTrackFavoriteWrite, opts?: Oazapfts.RequestOpts) {
+export function unfavoriteTrack2(userTrackFavoriteWrite: UserTrackFavoriteWrite, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UserTrackFavoriteWrite;
@@ -1959,13 +2202,13 @@ export function favoritesTracksRemoveCreate(userTrackFavoriteWrite: UserTrackFav
         body: userTrackFavoriteWrite
     }));
 }
-export function favoritesTracksRemoveDestroy(opts?: Oazapfts.RequestOpts) {
+export function unfavoriteTrack(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText("/api/v1/favorites/tracks/remove/", {
         ...opts,
         method: "DELETE"
     });
 }
-export function federationActorsRetrieve(fullUsername: string, opts?: Oazapfts.RequestOpts) {
+export function getFederationActor(fullUsername: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: FullActor;
@@ -1973,7 +2216,7 @@ export function federationActorsRetrieve(fullUsername: string, opts?: Oazapfts.R
         ...opts
     });
 }
-export function federationActorsLibrariesRetrieve(fullUsername: string, opts?: Oazapfts.RequestOpts) {
+export function getFederationActorLibrary(fullUsername: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: FullActor;
@@ -1981,7 +2224,7 @@ export function federationActorsLibrariesRetrieve(fullUsername: string, opts?: O
         ...opts
     });
 }
-export function federationDomainsList({ ordering, page, pageSize }: {
+export function getFederationDomains({ ordering, page, pageSize }: {
     ordering?: string;
     page?: number;
     pageSize?: number;
@@ -1997,7 +2240,7 @@ export function federationDomainsList({ ordering, page, pageSize }: {
         ...opts
     });
 }
-export function federationDomainsRetrieve(name: string, opts?: Oazapfts.RequestOpts) {
+export function getFederationDomain(name: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Domain;
@@ -2005,7 +2248,7 @@ export function federationDomainsRetrieve(name: string, opts?: Oazapfts.RequestO
         ...opts
     });
 }
-export function federationFetchesCreate(fetch: Fetch, opts?: Oazapfts.RequestOpts) {
+export function createFederationFetch(fetch: Fetch, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: Fetch;
@@ -2015,7 +2258,7 @@ export function federationFetchesCreate(fetch: Fetch, opts?: Oazapfts.RequestOpt
         body: fetch
     }));
 }
-export function federationFetchesRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getFederationFetch(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Fetch;
@@ -2023,7 +2266,7 @@ export function federationFetchesRetrieve(id: number, opts?: Oazapfts.RequestOpt
         ...opts
     });
 }
-export function federationFollowsLibraryList({ approved, ordering, page, pageSize }: {
+export function getFederationLibraryFollows({ approved, ordering, page, pageSize }: {
     approved?: boolean;
     ordering?: string;
     page?: number;
@@ -2041,7 +2284,7 @@ export function federationFollowsLibraryList({ approved, ordering, page, pageSiz
         ...opts
     });
 }
-export function federationFollowsLibraryCreate(libraryFollow: LibraryFollow, opts?: Oazapfts.RequestOpts) {
+export function createFederationLibraryFollow(libraryFollow: LibraryFollow, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: LibraryFollow;
@@ -2051,7 +2294,7 @@ export function federationFollowsLibraryCreate(libraryFollow: LibraryFollow, opt
         body: libraryFollow
     }));
 }
-export function federationFollowsLibraryRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function getFederationLibraryFollow(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: LibraryFollow;
@@ -2059,13 +2302,13 @@ export function federationFollowsLibraryRetrieve(uuid: string, opts?: Oazapfts.R
         ...opts
     });
 }
-export function federationFollowsLibraryDestroy(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function deleteFederationLibraryFollow(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/federation/follows/library/${encodeURIComponent(uuid)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function federationFollowsLibraryAcceptCreate(uuid: string, libraryFollow: LibraryFollow, opts?: Oazapfts.RequestOpts) {
+export function acceptFederationLibraryFollow(uuid: string, libraryFollow: LibraryFollow, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: LibraryFollow;
@@ -2075,7 +2318,7 @@ export function federationFollowsLibraryAcceptCreate(uuid: string, libraryFollow
         body: libraryFollow
     }));
 }
-export function federationFollowsLibraryRejectCreate(uuid: string, libraryFollow: LibraryFollow, opts?: Oazapfts.RequestOpts) {
+export function rejectFederationLibraryFollow(uuid: string, libraryFollow: LibraryFollow, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: LibraryFollow;
@@ -2090,7 +2333,7 @@ export function federationFollowsLibraryRejectCreate(uuid: string, libraryFollow
  * to have a performant endpoint and avoid lots of queries just to display
  * subscription status in the UI
  */
-export function federationFollowsLibraryAllRetrieve(opts?: Oazapfts.RequestOpts) {
+export function getAllFederationLibraryFollows(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: LibraryFollow;
@@ -2098,7 +2341,7 @@ export function federationFollowsLibraryAllRetrieve(opts?: Oazapfts.RequestOpts)
         ...opts
     });
 }
-export function federationInboxList({ activityActor, activityType, before, isRead, ordering, page, pageSize }: {
+export function getFederationInboxes({ activityActor, activityType, before, isRead, ordering, page, pageSize }: {
     activityActor?: number;
     activityType?: string;
     before?: number;
@@ -2122,7 +2365,7 @@ export function federationInboxList({ activityActor, activityType, before, isRea
         ...opts
     });
 }
-export function federationInboxRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getFederationInbox(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: InboxItem;
@@ -2130,7 +2373,7 @@ export function federationInboxRetrieve(id: number, opts?: Oazapfts.RequestOpts)
         ...opts
     });
 }
-export function federationInboxUpdate(id: number, inboxItem: InboxItem, opts?: Oazapfts.RequestOpts) {
+export function updateFederationInbox(id: number, inboxItem: InboxItem, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: InboxItem;
@@ -2140,7 +2383,7 @@ export function federationInboxUpdate(id: number, inboxItem: InboxItem, opts?: O
         body: inboxItem
     }));
 }
-export function federationInboxPartialUpdate(id: number, patchedInboxItem?: PatchedInboxItem, opts?: Oazapfts.RequestOpts) {
+export function partialUpdateFederationInbox(id: number, patchedInboxItem?: PatchedInboxItem, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: InboxItem;
@@ -2162,7 +2405,7 @@ export function federationInboxPartialUpdate(id: number, patchedInboxItem?: Patc
  * encoding defaults to sys.getdefaultencoding().
  * errors defaults to 'strict'.
  */
-export function federationInboxActionCreate(inboxItem: InboxItem, opts?: Oazapfts.RequestOpts) {
+export function createFederationInboxAction(inboxItem: InboxItem, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: InboxItem;
@@ -2172,7 +2415,7 @@ export function federationInboxActionCreate(inboxItem: InboxItem, opts?: Oazapft
         body: inboxItem
     }));
 }
-export function federationLibrariesRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function getFederationLibrary(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Library;
@@ -2180,7 +2423,7 @@ export function federationLibrariesRetrieve(uuid: string, opts?: Oazapfts.Reques
         ...opts
     });
 }
-export function federationLibrariesScanCreate(uuid: string, library: Library, opts?: Oazapfts.RequestOpts) {
+export function createFederationLibraryScan(uuid: string, library: Library, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Library;
@@ -2190,7 +2433,7 @@ export function federationLibrariesScanCreate(uuid: string, library: Library, op
         body: library
     }));
 }
-export function federationLibrariesFetchCreate(library: Library, opts?: Oazapfts.RequestOpts) {
+export function createFederationLibraryFetch(library: Library, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Library;
@@ -2200,7 +2443,7 @@ export function federationLibrariesFetchCreate(library: Library, opts?: Oazapfts
         body: library
     }));
 }
-export function historyListeningsList({ domain, hidden, ordering, page, pageSize, scope, username }: {
+export function getHistoryListenings({ domain, hidden, ordering, page, pageSize, scope, username }: {
     domain?: string;
     hidden?: boolean;
     ordering?: string;
@@ -2224,7 +2467,7 @@ export function historyListeningsList({ domain, hidden, ordering, page, pageSize
         ...opts
     });
 }
-export function historyListeningsCreate(listeningWrite: ListeningWrite, opts?: Oazapfts.RequestOpts) {
+export function createHistoryListening(listeningWrite: ListeningWrite, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: ListeningWrite;
@@ -2234,7 +2477,7 @@ export function historyListeningsCreate(listeningWrite: ListeningWrite, opts?: O
         body: listeningWrite
     }));
 }
-export function historyListeningsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getHistoryListening(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Listening;
@@ -2248,7 +2491,7 @@ export function historyListeningsRetrieve(id: number, opts?: Oazapfts.RequestOpt
  * - batch update preferences
  * - update a single preference
  */
-export function instanceAdminSettingsList({ ordering }: {
+export function getInstanceAdminSettings({ ordering }: {
     ordering?: string;
 } = {}, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
@@ -2266,7 +2509,7 @@ export function instanceAdminSettingsList({ ordering }: {
  * - batch update preferences
  * - update a single preference
  */
-export function instanceAdminSettingsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getInstanceAdminSetting(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: GlobalPreference;
@@ -2280,7 +2523,7 @@ export function instanceAdminSettingsRetrieve(id: number, opts?: Oazapfts.Reques
  * - batch update preferences
  * - update a single preference
  */
-export function instanceAdminSettingsUpdate(id: number, globalPreference: GlobalPreference, opts?: Oazapfts.RequestOpts) {
+export function updateInstanceAdminSetting(id: number, globalPreference: GlobalPreference, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: GlobalPreference;
@@ -2296,7 +2539,7 @@ export function instanceAdminSettingsUpdate(id: number, globalPreference: Global
  * - batch update preferences
  * - update a single preference
  */
-export function instanceAdminSettingsPartialUpdate(id: number, patchedGlobalPreference?: PatchedGlobalPreference, opts?: Oazapfts.RequestOpts) {
+export function partialUpdateInstanceAdminSetting(id: number, patchedGlobalPreference?: PatchedGlobalPreference, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: GlobalPreference;
@@ -2312,7 +2555,7 @@ export function instanceAdminSettingsPartialUpdate(id: number, patchedGlobalPref
  * this is a long method because we ensure everything is valid
  * before actually persisting the changes
  */
-export function instanceAdminSettingsBulkCreate(globalPreference: GlobalPreference, opts?: Oazapfts.RequestOpts) {
+export function createInstanceAdminSettingBulk(globalPreference: GlobalPreference, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: GlobalPreference;
@@ -2330,7 +2573,7 @@ export function getApiV1InstanceNodeinfo20(opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function instanceSettingsRetrieve(opts?: Oazapfts.RequestOpts) {
+export function getInstanceSettings(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: GlobalPreference;
@@ -2338,12 +2581,12 @@ export function instanceSettingsRetrieve(opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function getApiV1InstanceSpaManifestJson(opts?: Oazapfts.RequestOpts) {
+export function getSpaManifest(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText("/api/v1/instance/spa-manifest.json", {
         ...opts
     });
 }
-export function librariesList({ ordering, page, pageSize, privacyLevel, q, scope }: {
+export function getLibraries({ ordering, page, pageSize, privacyLevel, q, scope }: {
     ordering?: string;
     page?: number;
     pageSize?: number;
@@ -2365,7 +2608,7 @@ export function librariesList({ ordering, page, pageSize, privacyLevel, q, scope
         ...opts
     });
 }
-export function librariesCreate(libraryForOwner: LibraryForOwner, opts?: Oazapfts.RequestOpts) {
+export function createLibrary(libraryForOwner: LibraryForOwner, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: LibraryForOwner;
@@ -2375,7 +2618,7 @@ export function librariesCreate(libraryForOwner: LibraryForOwner, opts?: Oazapft
         body: libraryForOwner
     }));
 }
-export function librariesRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function getLibrary(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: LibraryForOwner;
@@ -2383,7 +2626,7 @@ export function librariesRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function librariesUpdate(uuid: string, libraryForOwner: LibraryForOwner, opts?: Oazapfts.RequestOpts) {
+export function updateLibrary(uuid: string, libraryForOwner: LibraryForOwner, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: LibraryForOwner;
@@ -2393,7 +2636,7 @@ export function librariesUpdate(uuid: string, libraryForOwner: LibraryForOwner,
         body: libraryForOwner
     }));
 }
-export function librariesPartialUpdate(uuid: string, patchedLibraryForOwner?: PatchedLibraryForOwner, opts?: Oazapfts.RequestOpts) {
+export function partialUpdateLibrary(uuid: string, patchedLibraryForOwner?: PatchedLibraryForOwner, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: LibraryForOwner;
@@ -2403,13 +2646,13 @@ export function librariesPartialUpdate(uuid: string, patchedLibraryForOwner?: Pa
         body: patchedLibraryForOwner
     }));
 }
-export function librariesDestroy(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function deleteLibrary(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/libraries/${encodeURIComponent(uuid)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function librariesFollowsRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function getLibraryFollow(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: LibraryForOwner;
@@ -2417,7 +2660,7 @@ export function librariesFollowsRetrieve(uuid: string, opts?: Oazapfts.RequestOp
         ...opts
     });
 }
-export function librariesFsImportRetrieve(opts?: Oazapfts.RequestOpts) {
+export function getLibraryFsImport(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: LibraryForOwner;
@@ -2425,7 +2668,7 @@ export function librariesFsImportRetrieve(opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function librariesFsImportCreate(libraryForOwner: LibraryForOwner, opts?: Oazapfts.RequestOpts) {
+export function createLibraryFsImport(libraryForOwner: LibraryForOwner, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: LibraryForOwner;
@@ -2435,13 +2678,13 @@ export function librariesFsImportCreate(libraryForOwner: LibraryForOwner, opts?:
         body: libraryForOwner
     }));
 }
-export function librariesFsImportDestroy(opts?: Oazapfts.RequestOpts) {
+export function deleteLibraryFsImport(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText("/api/v1/libraries/fs-import/", {
         ...opts,
         method: "DELETE"
     });
 }
-export function licensesList({ ordering, page, pageSize }: {
+export function getLicenses({ ordering, page, pageSize }: {
     ordering?: string;
     page?: number;
     pageSize?: number;
@@ -2457,7 +2700,7 @@ export function licensesList({ ordering, page, pageSize }: {
         ...opts
     });
 }
-export function licensesRetrieve(code: string, opts?: Oazapfts.RequestOpts) {
+export function getLicense(code: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: License;
@@ -2465,7 +2708,7 @@ export function licensesRetrieve(code: string, opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function listenRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function getListen(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Track;
@@ -2473,7 +2716,7 @@ export function listenRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function manageAccountsList({ domain, local, manuallyApprovesFollowers, ordering, page, pageSize, q, type }: {
+export function adminGetAccounts({ domain, local, manuallyApprovesFollowers, ordering, page, pageSize, q, type }: {
     domain?: string;
     local?: boolean;
     manuallyApprovesFollowers?: boolean;
@@ -2499,7 +2742,7 @@ export function manageAccountsList({ domain, local, manuallyApprovesFollowers, o
         ...opts
     });
 }
-export function manageAccountsRetrieve(id: string, opts?: Oazapfts.RequestOpts) {
+export function adminGetAccount(id: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageActor;
@@ -2507,7 +2750,7 @@ export function manageAccountsRetrieve(id: string, opts?: Oazapfts.RequestOpts)
         ...opts
     });
 }
-export function manageAccountsStatsRetrieve(id: string, opts?: Oazapfts.RequestOpts) {
+export function adminGetAccountStats(id: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageActor;
@@ -2527,7 +2770,7 @@ export function manageAccountsStatsRetrieve(id: string, opts?: Oazapfts.RequestO
  * encoding defaults to sys.getdefaultencoding().
  * errors defaults to 'strict'.
  */
-export function manageAccountsActionCreate(manageActor: ManageActor, opts?: Oazapfts.RequestOpts) {
+export function adminCreateAccountAction(manageActor: ManageActor, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageActor;
@@ -2537,7 +2780,7 @@ export function manageAccountsActionCreate(manageActor: ManageActor, opts?: Oaza
         body: manageActor
     }));
 }
-export function manageChannelsList({ ordering, page, pageSize, q }: {
+export function adminGetChannels({ ordering, page, pageSize, q }: {
     ordering?: string;
     page?: number;
     pageSize?: number;
@@ -2555,7 +2798,7 @@ export function manageChannelsList({ ordering, page, pageSize, q }: {
         ...opts
     });
 }
-export function manageChannelsRetrieve(composite: string, opts?: Oazapfts.RequestOpts) {
+export function adminGetChannel(composite: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageChannel;
@@ -2563,13 +2806,13 @@ export function manageChannelsRetrieve(composite: string, opts?: Oazapfts.Reques
         ...opts
     });
 }
-export function manageChannelsDestroy(composite: string, opts?: Oazapfts.RequestOpts) {
+export function adminDeleteChannel(composite: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/manage/channels/${encodeURIComponent(composite)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function manageChannelsStatsRetrieve(composite: string, opts?: Oazapfts.RequestOpts) {
+export function adminGetChannelStats(composite: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageChannel;
@@ -2577,7 +2820,7 @@ export function manageChannelsStatsRetrieve(composite: string, opts?: Oazapfts.R
         ...opts
     });
 }
-export function manageFederationDomainsList({ allowed, name, ordering, page, pageSize, q }: {
+export function adminGetFederationDomains({ allowed, name, ordering, page, pageSize, q }: {
     allowed?: boolean;
     name?: string;
     ordering?: string;
@@ -2599,7 +2842,7 @@ export function manageFederationDomainsList({ allowed, name, ordering, page, pag
         ...opts
     });
 }
-export function manageFederationDomainsCreate(manageDomain: ManageDomain, opts?: Oazapfts.RequestOpts) {
+export function adminCreateFederationDomain(manageDomain: ManageDomain, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: ManageDomain;
@@ -2609,7 +2852,7 @@ export function manageFederationDomainsCreate(manageDomain: ManageDomain, opts?:
         body: manageDomain
     }));
 }
-export function manageFederationDomainsRetrieve(name: string, opts?: Oazapfts.RequestOpts) {
+export function adminGetFederationDomain(name: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageDomain;
@@ -2617,7 +2860,7 @@ export function manageFederationDomainsRetrieve(name: string, opts?: Oazapfts.Re
         ...opts
     });
 }
-export function manageFederationDomainsUpdate(name: string, manageDomainUpdate?: ManageDomainUpdate, opts?: Oazapfts.RequestOpts) {
+export function adminUpdateFederationDomain(name: string, manageDomainUpdate?: ManageDomainUpdate, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageDomainUpdate;
@@ -2627,7 +2870,7 @@ export function manageFederationDomainsUpdate(name: string, manageDomainUpdate?:
         body: manageDomainUpdate
     }));
 }
-export function manageFederationDomainsPartialUpdate(name: string, patchedManageDomainUpdate?: PatchedManageDomainUpdate, opts?: Oazapfts.RequestOpts) {
+export function adminPartialUpdateFederationDomain(name: string, patchedManageDomainUpdate?: PatchedManageDomainUpdate, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageDomainUpdate;
@@ -2637,7 +2880,7 @@ export function manageFederationDomainsPartialUpdate(name: string, patchedManage
         body: patchedManageDomainUpdate
     }));
 }
-export function manageFederationDomainsNodeinfoRetrieve(name: string, opts?: Oazapfts.RequestOpts) {
+export function adminGetFederationDomainNodeinfo(name: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageDomain;
@@ -2645,7 +2888,7 @@ export function manageFederationDomainsNodeinfoRetrieve(name: string, opts?: Oaz
         ...opts
     });
 }
-export function manageFederationDomainsStatsRetrieve(name: string, opts?: Oazapfts.RequestOpts) {
+export function adminGetFederationDomainStats(name: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageDomain;
@@ -2665,7 +2908,7 @@ export function manageFederationDomainsStatsRetrieve(name: string, opts?: Oazapf
  * encoding defaults to sys.getdefaultencoding().
  * errors defaults to 'strict'.
  */
-export function manageFederationDomainsActionCreate(manageDomain: ManageDomain, opts?: Oazapfts.RequestOpts) {
+export function adminCreateFederationDomainAction(manageDomain: ManageDomain, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageDomain;
@@ -2675,7 +2918,7 @@ export function manageFederationDomainsActionCreate(manageDomain: ManageDomain,
         body: manageDomain
     }));
 }
-export function manageLibraryAlbumsList({ artist, fid, mbid, ordering, page, pageSize, q, title }: {
+export function adminGetAlbums({ artist, fid, mbid, ordering, page, pageSize, q, title }: {
     artist?: number;
     fid?: string;
     mbid?: string;
@@ -2701,7 +2944,7 @@ export function manageLibraryAlbumsList({ artist, fid, mbid, ordering, page, pag
         ...opts
     });
 }
-export function manageLibraryAlbumsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function adminGetAlbum(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageAlbum;
@@ -2709,13 +2952,13 @@ export function manageLibraryAlbumsRetrieve(id: number, opts?: Oazapfts.RequestO
         ...opts
     });
 }
-export function manageLibraryAlbumsDestroy(id: number, opts?: Oazapfts.RequestOpts) {
+export function adminDeleteAlbum(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/manage/library/albums/${encodeURIComponent(id)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function manageLibraryAlbumsStatsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function adminGetLibraryAlbumStats(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageAlbum;
@@ -2735,7 +2978,7 @@ export function manageLibraryAlbumsStatsRetrieve(id: number, opts?: Oazapfts.Req
  * encoding defaults to sys.getdefaultencoding().
  * errors defaults to 'strict'.
  */
-export function manageLibraryAlbumsActionCreate(manageAlbum: ManageAlbum, opts?: Oazapfts.RequestOpts) {
+export function adminCreateAlbumAction(manageAlbum: ManageAlbum, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageAlbum;
@@ -2745,7 +2988,7 @@ export function manageLibraryAlbumsActionCreate(manageAlbum: ManageAlbum, opts?:
         body: manageAlbum
     }));
 }
-export function manageLibraryArtistsList({ contentCategory, fid, mbid, name, ordering, page, pageSize, q }: {
+export function adminGetArtists({ contentCategory, fid, mbid, name, ordering, page, pageSize, q }: {
     contentCategory?: "music" | "other" | "podcast";
     fid?: string;
     mbid?: string;
@@ -2771,7 +3014,7 @@ export function manageLibraryArtistsList({ contentCategory, fid, mbid, name, ord
         ...opts
     });
 }
-export function manageLibraryArtistsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function adminGetArtist(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageArtist;
@@ -2779,13 +3022,13 @@ export function manageLibraryArtistsRetrieve(id: number, opts?: Oazapfts.Request
         ...opts
     });
 }
-export function manageLibraryArtistsDestroy(id: number, opts?: Oazapfts.RequestOpts) {
+export function adminDeleteArtist(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/manage/library/artists/${encodeURIComponent(id)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function manageLibraryArtistsStatsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function adminGetLibraryArtistStats(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageArtist;
@@ -2805,7 +3048,7 @@ export function manageLibraryArtistsStatsRetrieve(id: number, opts?: Oazapfts.Re
  * encoding defaults to sys.getdefaultencoding().
  * errors defaults to 'strict'.
  */
-export function manageLibraryArtistsActionCreate(manageArtist: ManageArtist, opts?: Oazapfts.RequestOpts) {
+export function adminCreateArtistAction(manageArtist: ManageArtist, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageArtist;
@@ -2815,7 +3058,7 @@ export function manageLibraryArtistsActionCreate(manageArtist: ManageArtist, opt
         body: manageArtist
     }));
 }
-export function manageLibraryLibrariesList({ domain, fid, name, ordering, page, pageSize, privacyLevel, q }: {
+export function adminGetLibraries({ domain, fid, name, ordering, page, pageSize, privacyLevel, q }: {
     domain?: string;
     fid?: string;
     name?: string;
@@ -2842,7 +3085,7 @@ export function manageLibraryLibrariesList({ domain, fid, name, ordering, page,
         ...opts
     });
 }
-export function manageLibraryLibrariesRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function adminGetLibrary(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageLibrary;
@@ -2850,7 +3093,7 @@ export function manageLibraryLibrariesRetrieve(uuid: string, opts?: Oazapfts.Req
         ...opts
     });
 }
-export function manageLibraryLibrariesUpdate(uuid: string, manageLibrary: ManageLibrary, opts?: Oazapfts.RequestOpts) {
+export function adminUpdateLibrary(uuid: string, manageLibrary: ManageLibrary, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageLibrary;
@@ -2860,7 +3103,7 @@ export function manageLibraryLibrariesUpdate(uuid: string, manageLibrary: Manage
         body: manageLibrary
     }));
 }
-export function manageLibraryLibrariesPartialUpdate(uuid: string, patchedManageLibrary?: PatchedManageLibrary, opts?: Oazapfts.RequestOpts) {
+export function adminPartialUpdateLibrary(uuid: string, patchedManageLibrary?: PatchedManageLibrary, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageLibrary;
@@ -2870,13 +3113,13 @@ export function manageLibraryLibrariesPartialUpdate(uuid: string, patchedManageL
         body: patchedManageLibrary
     }));
 }
-export function manageLibraryLibrariesDestroy(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function adminDeleteLibrary(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/manage/library/libraries/${encodeURIComponent(uuid)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function manageLibraryLibrariesStatsRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function adminGetLibraryStats(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageLibrary;
@@ -2896,7 +3139,7 @@ export function manageLibraryLibrariesStatsRetrieve(uuid: string, opts?: Oazapft
  * encoding defaults to sys.getdefaultencoding().
  * errors defaults to 'strict'.
  */
-export function manageLibraryLibrariesActionCreate(manageLibrary: ManageLibrary, opts?: Oazapfts.RequestOpts) {
+export function adminCreateLibraryAction(manageLibrary: ManageLibrary, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageLibrary;
@@ -2906,7 +3149,7 @@ export function manageLibraryLibrariesActionCreate(manageLibrary: ManageLibrary,
         body: manageLibrary
     }));
 }
-export function manageLibraryTracksList({ album, artist, fid, license, mbid, ordering, page, pageSize, q, title }: {
+export function adminGetTracks({ album, artist, fid, license, mbid, ordering, page, pageSize, q, title }: {
     album?: number;
     artist?: number;
     fid?: string;
@@ -2936,7 +3179,7 @@ export function manageLibraryTracksList({ album, artist, fid, license, mbid, ord
         ...opts
     });
 }
-export function manageLibraryTracksRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function adminGetTrack(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageTrack;
@@ -2944,13 +3187,13 @@ export function manageLibraryTracksRetrieve(id: number, opts?: Oazapfts.RequestO
         ...opts
     });
 }
-export function manageLibraryTracksDestroy(id: number, opts?: Oazapfts.RequestOpts) {
+export function adminDeleteTrack(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/manage/library/tracks/${encodeURIComponent(id)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function manageLibraryTracksStatsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function adminGetTrackStats(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageTrack;
@@ -2970,7 +3213,7 @@ export function manageLibraryTracksStatsRetrieve(id: number, opts?: Oazapfts.Req
  * encoding defaults to sys.getdefaultencoding().
  * errors defaults to 'strict'.
  */
-export function manageLibraryTracksActionCreate(manageTrack: ManageTrack, opts?: Oazapfts.RequestOpts) {
+export function adminCreateTrackAction(manageTrack: ManageTrack, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageTrack;
@@ -2980,7 +3223,7 @@ export function manageLibraryTracksActionCreate(manageTrack: ManageTrack, opts?:
         body: manageTrack
     }));
 }
-export function manageLibraryUploadsList({ domain, fid, importReference, importStatus, mimetype, ordering, page, pageSize, privacyLevel, q }: {
+export function adminGetUploads({ domain, fid, importReference, importStatus, mimetype, ordering, page, pageSize, privacyLevel, q }: {
     domain?: string;
     fid?: string;
     importReference?: string;
@@ -3011,7 +3254,7 @@ export function manageLibraryUploadsList({ domain, fid, importReference, importS
         ...opts
     });
 }
-export function manageLibraryUploadsRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function adminGetUpload(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageUpload;
@@ -3019,7 +3262,7 @@ export function manageLibraryUploadsRetrieve(uuid: string, opts?: Oazapfts.Reque
         ...opts
     });
 }
-export function manageLibraryUploadsDestroy(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function adminDeleteUpload(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/manage/library/uploads/${encodeURIComponent(uuid)}/`, {
         ...opts,
         method: "DELETE"
@@ -3037,7 +3280,7 @@ export function manageLibraryUploadsDestroy(uuid: string, opts?: Oazapfts.Reques
  * encoding defaults to sys.getdefaultencoding().
  * errors defaults to 'strict'.
  */
-export function manageLibraryUploadsActionCreate(manageUpload: ManageUpload, opts?: Oazapfts.RequestOpts) {
+export function adminCreateUploadAction(manageUpload: ManageUpload, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageUpload;
@@ -3047,7 +3290,7 @@ export function manageLibraryUploadsActionCreate(manageUpload: ManageUpload, opt
         body: manageUpload
     }));
 }
-export function manageModerationInstancePoliciesList({ blockAll, ordering, page, pageSize, q, rejectMedia, silenceActivity, silenceNotifications, targetAccountDomain, targetAccountUsername, targetDomain }: {
+export function moderationGetInstancePolicies({ blockAll, ordering, page, pageSize, q, rejectMedia, silenceActivity, silenceNotifications, targetAccountDomain, targetAccountUsername, targetDomain }: {
     blockAll?: boolean;
     ordering?: string;
     page?: number;
@@ -3079,7 +3322,7 @@ export function manageModerationInstancePoliciesList({ blockAll, ordering, page,
         ...opts
     });
 }
-export function manageModerationInstancePoliciesCreate(manageInstancePolicy: ManageInstancePolicy, opts?: Oazapfts.RequestOpts) {
+export function moderationCreateInstancePolicy(manageInstancePolicy: ManageInstancePolicy, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: ManageInstancePolicy;
@@ -3089,7 +3332,7 @@ export function manageModerationInstancePoliciesCreate(manageInstancePolicy: Man
         body: manageInstancePolicy
     }));
 }
-export function manageModerationInstancePoliciesRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function moderationGetInstancePolicy(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageInstancePolicy;
@@ -3097,7 +3340,7 @@ export function manageModerationInstancePoliciesRetrieve(id: number, opts?: Oaza
         ...opts
     });
 }
-export function manageModerationInstancePoliciesUpdate(id: number, manageInstancePolicy: ManageInstancePolicy, opts?: Oazapfts.RequestOpts) {
+export function moderationUpdateInstancePolicy(id: number, manageInstancePolicy: ManageInstancePolicy, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageInstancePolicy;
@@ -3107,7 +3350,7 @@ export function manageModerationInstancePoliciesUpdate(id: number, manageInstanc
         body: manageInstancePolicy
     }));
 }
-export function manageModerationInstancePoliciesPartialUpdate(id: number, patchedManageInstancePolicy?: PatchedManageInstancePolicy, opts?: Oazapfts.RequestOpts) {
+export function moderationPartialUpdateInstancePolicy(id: number, patchedManageInstancePolicy?: PatchedManageInstancePolicy, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageInstancePolicy;
@@ -3117,13 +3360,13 @@ export function manageModerationInstancePoliciesPartialUpdate(id: number, patche
         body: patchedManageInstancePolicy
     }));
 }
-export function manageModerationInstancePoliciesDestroy(id: number, opts?: Oazapfts.RequestOpts) {
+export function moderationDeleteInstancePolicy(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/manage/moderation/instance-policies/${encodeURIComponent(id)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function manageModerationNotesList({ ordering, page, pageSize, q }: {
+export function moderationGetNotes({ ordering, page, pageSize, q }: {
     ordering?: string;
     page?: number;
     pageSize?: number;
@@ -3141,7 +3384,7 @@ export function manageModerationNotesList({ ordering, page, pageSize, q }: {
         ...opts
     });
 }
-export function manageModerationNotesCreate(manageNote: ManageNote, opts?: Oazapfts.RequestOpts) {
+export function moderationCreateNote(manageNote: ManageNote, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: ManageNote;
@@ -3151,7 +3394,7 @@ export function manageModerationNotesCreate(manageNote: ManageNote, opts?: Oazap
         body: manageNote
     }));
 }
-export function manageModerationNotesRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function moderationGetNote(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageNote;
@@ -3159,13 +3402,13 @@ export function manageModerationNotesRetrieve(uuid: string, opts?: Oazapfts.Requ
         ...opts
     });
 }
-export function manageModerationNotesDestroy(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function moderationDeleteNote(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/manage/moderation/notes/${encodeURIComponent(uuid)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function manageModerationReportsList({ isHandled, ordering, page, pageSize, q, submitterEmail, type }: {
+export function moderationGetReports({ isHandled, ordering, page, pageSize, q, submitterEmail, type }: {
     isHandled?: boolean;
     ordering?: string;
     page?: number;
@@ -3189,7 +3432,7 @@ export function manageModerationReportsList({ isHandled, ordering, page, pageSiz
         ...opts
     });
 }
-export function manageModerationReportsRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function moderationGetReport(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageReport;
@@ -3197,7 +3440,7 @@ export function manageModerationReportsRetrieve(uuid: string, opts?: Oazapfts.Re
         ...opts
     });
 }
-export function manageModerationReportsUpdate(uuid: string, manageReport: ManageReport, opts?: Oazapfts.RequestOpts) {
+export function moderationUpdateReport(uuid: string, manageReport: ManageReport, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageReport;
@@ -3207,7 +3450,7 @@ export function manageModerationReportsUpdate(uuid: string, manageReport: Manage
         body: manageReport
     }));
 }
-export function manageModerationReportsPartialUpdate(uuid: string, patchedManageReport?: PatchedManageReport, opts?: Oazapfts.RequestOpts) {
+export function moderationPartialUpdateReport(uuid: string, patchedManageReport?: PatchedManageReport, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageReport;
@@ -3217,7 +3460,7 @@ export function manageModerationReportsPartialUpdate(uuid: string, patchedManage
         body: patchedManageReport
     }));
 }
-export function manageModerationRequestsList({ ordering, page, pageSize, q, status, type }: {
+export function moderationGetRequests({ ordering, page, pageSize, q, status, type }: {
     ordering?: string;
     page?: number;
     pageSize?: number;
@@ -3239,7 +3482,7 @@ export function manageModerationRequestsList({ ordering, page, pageSize, q, stat
         ...opts
     });
 }
-export function manageModerationRequestsRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function moderationGetRequest(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageUserRequest;
@@ -3247,7 +3490,7 @@ export function manageModerationRequestsRetrieve(uuid: string, opts?: Oazapfts.R
         ...opts
     });
 }
-export function manageModerationRequestsUpdate(uuid: string, manageUserRequest: ManageUserRequest, opts?: Oazapfts.RequestOpts) {
+export function moderationUpdateRequest(uuid: string, manageUserRequest: ManageUserRequest, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageUserRequest;
@@ -3257,7 +3500,7 @@ export function manageModerationRequestsUpdate(uuid: string, manageUserRequest:
         body: manageUserRequest
     }));
 }
-export function manageModerationRequestsPartialUpdate(uuid: string, patchedManageUserRequest?: PatchedManageUserRequest, opts?: Oazapfts.RequestOpts) {
+export function moderationPartialUpdateRequest(uuid: string, patchedManageUserRequest?: PatchedManageUserRequest, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageUserRequest;
@@ -3267,7 +3510,7 @@ export function manageModerationRequestsPartialUpdate(uuid: string, patchedManag
         body: patchedManageUserRequest
     }));
 }
-export function manageTagsList({ ordering, page, pageSize, q }: {
+export function adminGetTags({ ordering, page, pageSize, q }: {
     ordering?: string;
     page?: number;
     pageSize?: number;
@@ -3285,7 +3528,7 @@ export function manageTagsList({ ordering, page, pageSize, q }: {
         ...opts
     });
 }
-export function manageTagsCreate(manageTag: ManageTag, opts?: Oazapfts.RequestOpts) {
+export function adminCreateTag(manageTag: ManageTag, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: ManageTag;
@@ -3295,7 +3538,7 @@ export function manageTagsCreate(manageTag: ManageTag, opts?: Oazapfts.RequestOp
         body: manageTag
     }));
 }
-export function manageTagsRetrieve(name: string, opts?: Oazapfts.RequestOpts) {
+export function adminGetTag(name: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageTag;
@@ -3303,7 +3546,7 @@ export function manageTagsRetrieve(name: string, opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function manageTagsDestroy(name: string, opts?: Oazapfts.RequestOpts) {
+export function adminDeleteTag(name: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/manage/tags/${encodeURIComponent(name)}/`, {
         ...opts,
         method: "DELETE"
@@ -3321,7 +3564,7 @@ export function manageTagsDestroy(name: string, opts?: Oazapfts.RequestOpts) {
  * encoding defaults to sys.getdefaultencoding().
  * errors defaults to 'strict'.
  */
-export function manageTagsActionCreate(manageTag: ManageTag, opts?: Oazapfts.RequestOpts) {
+export function adminCreateTagAction(manageTag: ManageTag, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageTag;
@@ -3331,7 +3574,7 @@ export function manageTagsActionCreate(manageTag: ManageTag, opts?: Oazapfts.Req
         body: manageTag
     }));
 }
-export function manageUsersInvitationsList({ isOpen, ordering, page, pageSize, q }: {
+export function adminGetInvitations({ isOpen, ordering, page, pageSize, q }: {
     isOpen?: boolean;
     ordering?: string;
     page?: number;
@@ -3351,7 +3594,7 @@ export function manageUsersInvitationsList({ isOpen, ordering, page, pageSize, q
         ...opts
     });
 }
-export function manageUsersInvitationsCreate(manageInvitation?: ManageInvitation, opts?: Oazapfts.RequestOpts) {
+export function adminCreateInvitation(manageInvitation?: ManageInvitation, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: ManageInvitation;
@@ -3361,7 +3604,7 @@ export function manageUsersInvitationsCreate(manageInvitation?: ManageInvitation
         body: manageInvitation
     }));
 }
-export function manageUsersInvitationsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function adminGetInvitation(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageInvitation;
@@ -3369,7 +3612,7 @@ export function manageUsersInvitationsRetrieve(id: number, opts?: Oazapfts.Reque
         ...opts
     });
 }
-export function manageUsersInvitationsUpdate(id: number, manageInvitation?: ManageInvitation, opts?: Oazapfts.RequestOpts) {
+export function adminUpdateInvitation(id: number, manageInvitation?: ManageInvitation, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageInvitation;
@@ -3379,7 +3622,7 @@ export function manageUsersInvitationsUpdate(id: number, manageInvitation?: Mana
         body: manageInvitation
     }));
 }
-export function manageUsersInvitationsPartialUpdate(id: number, patchedManageInvitation?: PatchedManageInvitation, opts?: Oazapfts.RequestOpts) {
+export function adminPartialUpdateInvitation(id: number, patchedManageInvitation?: PatchedManageInvitation, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageInvitation;
@@ -3401,7 +3644,7 @@ export function manageUsersInvitationsPartialUpdate(id: number, patchedManageInv
  * encoding defaults to sys.getdefaultencoding().
  * errors defaults to 'strict'.
  */
-export function manageUsersInvitationsActionCreate(manageInvitation?: ManageInvitation, opts?: Oazapfts.RequestOpts) {
+export function adminCreateInvitationAction(manageInvitation?: ManageInvitation, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageInvitation;
@@ -3411,7 +3654,7 @@ export function manageUsersInvitationsActionCreate(manageInvitation?: ManageInvi
         body: manageInvitation
     }));
 }
-export function manageUsersUsersList({ isActive, isStaff, isSuperuser, ordering, page, pageSize, permissionLibrary, permissionModeration, permissionSettings, privacyLevel, q }: {
+export function adminGetUsers({ isActive, isStaff, isSuperuser, ordering, page, pageSize, permissionLibrary, permissionModeration, permissionSettings, privacyLevel, q }: {
     isActive?: boolean;
     isStaff?: boolean;
     isSuperuser?: boolean;
@@ -3443,7 +3686,7 @@ export function manageUsersUsersList({ isActive, isStaff, isSuperuser, ordering,
         ...opts
     });
 }
-export function manageUsersUsersRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function adminGetUser(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageUser;
@@ -3451,7 +3694,7 @@ export function manageUsersUsersRetrieve(id: number, opts?: Oazapfts.RequestOpts
         ...opts
     });
 }
-export function manageUsersUsersUpdate(id: number, manageUser: ManageUser, opts?: Oazapfts.RequestOpts) {
+export function adminUpdateUser(id: number, manageUser: ManageUser, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageUser;
@@ -3461,7 +3704,7 @@ export function manageUsersUsersUpdate(id: number, manageUser: ManageUser, opts?
         body: manageUser
     }));
 }
-export function manageUsersUsersPartialUpdate(id: number, patchedManageUser?: PatchedManageUser, opts?: Oazapfts.RequestOpts) {
+export function adminPartialUpdateUser(id: number, patchedManageUser?: PatchedManageUser, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ManageUser;
@@ -3471,7 +3714,7 @@ export function manageUsersUsersPartialUpdate(id: number, patchedManageUser?: Pa
         body: patchedManageUser
     }));
 }
-export function moderationContentFiltersList({ ordering, page, pageSize }: {
+export function getModerationContentFilters({ ordering, page, pageSize }: {
     ordering?: string;
     page?: number;
     pageSize?: number;
@@ -3487,7 +3730,7 @@ export function moderationContentFiltersList({ ordering, page, pageSize }: {
         ...opts
     });
 }
-export function moderationContentFiltersCreate(userFilter: UserFilter, opts?: Oazapfts.RequestOpts) {
+export function createModerationContentFilter(userFilter: UserFilter, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: UserFilter;
@@ -3497,7 +3740,7 @@ export function moderationContentFiltersCreate(userFilter: UserFilter, opts?: Oa
         body: userFilter
     }));
 }
-export function moderationContentFiltersRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function getModerationContentFilter(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UserFilter;
@@ -3505,13 +3748,13 @@ export function moderationContentFiltersRetrieve(uuid: string, opts?: Oazapfts.R
         ...opts
     });
 }
-export function moderationContentFiltersDestroy(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function deleteModerationContentFilter(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/moderation/content-filters/${encodeURIComponent(uuid)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function moderationReportsCreate(report: Report, opts?: Oazapfts.RequestOpts) {
+export function createModerationReport(report: Report, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: Report;
@@ -3521,7 +3764,7 @@ export function moderationReportsCreate(report: Report, opts?: Oazapfts.RequestO
         body: report
     }));
 }
-export function mutationsList({ isApplied, isApproved, ordering, page, pageSize, q, type }: {
+export function getMutations({ isApplied, isApproved, ordering, page, pageSize, q, type }: {
     isApplied?: boolean;
     isApproved?: ("0" | "1" | false | "False" | "None" | "Null" | true | "True" | "false" | "no" | "none" | "null" | "true" | "yes") | null;
     ordering?: string;
@@ -3545,7 +3788,7 @@ export function mutationsList({ isApplied, isApproved, ordering, page, pageSize,
         ...opts
     });
 }
-export function mutationsRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function getMutation(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ApiMutation;
@@ -3553,13 +3796,13 @@ export function mutationsRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function mutationsDestroy(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function deleteMutation(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/mutations/${encodeURIComponent(uuid)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function mutationsApproveCreate(uuid: string, apiMutation: ApiMutation, opts?: Oazapfts.RequestOpts) {
+export function approveMutation(uuid: string, apiMutation: ApiMutation, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ApiMutation;
@@ -3569,7 +3812,7 @@ export function mutationsApproveCreate(uuid: string, apiMutation: ApiMutation, o
         body: apiMutation
     }));
 }
-export function mutationsRejectCreate(uuid: string, apiMutation: ApiMutation, opts?: Oazapfts.RequestOpts) {
+export function rejectMutation(uuid: string, apiMutation: ApiMutation, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: ApiMutation;
@@ -3579,7 +3822,7 @@ export function mutationsRejectCreate(uuid: string, apiMutation: ApiMutation, op
         body: apiMutation
     }));
 }
-export function oauthAppsList({ ordering, page, pageSize }: {
+export function getOauthApps({ ordering, page, pageSize }: {
     ordering?: string;
     page?: number;
     pageSize?: number;
@@ -3595,7 +3838,7 @@ export function oauthAppsList({ ordering, page, pageSize }: {
         ...opts
     });
 }
-export function oauthAppsCreate(createApplication: CreateApplication, opts?: Oazapfts.RequestOpts) {
+export function createOauthApp(createApplication: CreateApplication, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: CreateApplication;
@@ -3605,7 +3848,7 @@ export function oauthAppsCreate(createApplication: CreateApplication, opts?: Oaz
         body: createApplication
     }));
 }
-export function oauthAppsRetrieve(clientId: string, opts?: Oazapfts.RequestOpts) {
+export function getOauthApp(clientId: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Application;
@@ -3613,7 +3856,7 @@ export function oauthAppsRetrieve(clientId: string, opts?: Oazapfts.RequestOpts)
         ...opts
     });
 }
-export function oauthAppsUpdate(clientId: string, application: Application, opts?: Oazapfts.RequestOpts) {
+export function updateOauthApp(clientId: string, application: Application, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Application;
@@ -3623,7 +3866,7 @@ export function oauthAppsUpdate(clientId: string, application: Application, opts
         body: application
     }));
 }
-export function oauthAppsPartialUpdate(clientId: string, patchedApplication?: PatchedApplication, opts?: Oazapfts.RequestOpts) {
+export function partialUpdateOauthApp(clientId: string, patchedApplication?: PatchedApplication, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Application;
@@ -3633,13 +3876,13 @@ export function oauthAppsPartialUpdate(clientId: string, patchedApplication?: Pa
         body: patchedApplication
     }));
 }
-export function oauthAppsDestroy(clientId: string, opts?: Oazapfts.RequestOpts) {
+export function deleteOauthApp(clientId: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/oauth/apps/${encodeURIComponent(clientId)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function oauthAppsRefreshTokenCreate(clientId: string, createApplication: CreateApplication, opts?: Oazapfts.RequestOpts) {
+export function refreshOauthToken(clientId: string, createApplication: CreateApplication, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: CreateApplication;
@@ -3652,7 +3895,7 @@ export function oauthAppsRefreshTokenCreate(clientId: string, createApplication:
 /**
  * Handle GET requests: instantiate a blank version of the form.
  */
-export function oauthAuthorizeRetrieve(opts?: Oazapfts.RequestOpts) {
+export function getOauthAuthorize(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText("/api/v1/oauth/authorize/", {
         ...opts
     });
@@ -3661,13 +3904,13 @@ export function oauthAuthorizeRetrieve(opts?: Oazapfts.RequestOpts) {
  * Handle POST requests: instantiate a form instance with the passed
  * POST variables and then check if it's valid.
  */
-export function oauthAuthorizeCreate(opts?: Oazapfts.RequestOpts) {
+export function createOauthAuthorize(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText("/api/v1/oauth/authorize/", {
         ...opts,
         method: "POST"
     });
 }
-export function oauthAuthorizeUpdate(opts?: Oazapfts.RequestOpts) {
+export function updateOauthAuthorize(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText("/api/v1/oauth/authorize/", {
         ...opts,
         method: "PUT"
@@ -3677,7 +3920,7 @@ export function oauthAuthorizeUpdate(opts?: Oazapfts.RequestOpts) {
  * This is a viewset that list applications that have access to the request user
  * account, to allow revoking tokens easily.
  */
-export function oauthGrantsList({ ordering }: {
+export function getOauthGrants({ ordering }: {
     ordering?: string;
 } = {}, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
@@ -3693,7 +3936,7 @@ export function oauthGrantsList({ ordering }: {
  * This is a viewset that list applications that have access to the request user
  * account, to allow revoking tokens easily.
  */
-export function oauthGrantsRetrieve(clientId: string, opts?: Oazapfts.RequestOpts) {
+export function getOauthGrant(clientId: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Application;
@@ -3705,18 +3948,18 @@ export function oauthGrantsRetrieve(clientId: string, opts?: Oazapfts.RequestOpt
  * This is a viewset that list applications that have access to the request user
  * account, to allow revoking tokens easily.
  */
-export function oauthGrantsDestroy(clientId: string, opts?: Oazapfts.RequestOpts) {
+export function deleteOauthGrant(clientId: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/oauth/grants/${encodeURIComponent(clientId)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function oembedRetrieve(opts?: Oazapfts.RequestOpts) {
+export function getOembed(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText("/api/v1/oembed/", {
         ...opts
     });
 }
-export function playlistsList({ album, artist, name, nameIcontains, ordering, page, pageSize, playable, q, scope, track }: {
+export function getPlaylists({ album, artist, name, nameIcontains, ordering, page, pageSize, playable, q, scope, track }: {
     album?: number;
     artist?: number;
     name?: string;
@@ -3748,7 +3991,7 @@ export function playlistsList({ album, artist, name, nameIcontains, ordering, pa
         ...opts
     });
 }
-export function playlistsCreate(playlist: Playlist, opts?: Oazapfts.RequestOpts) {
+export function createPlaylist(playlist: Playlist, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: Playlist;
@@ -3758,7 +4001,7 @@ export function playlistsCreate(playlist: Playlist, opts?: Oazapfts.RequestOpts)
         body: playlist
     }));
 }
-export function playlistsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getPlaylist(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Playlist;
@@ -3766,7 +4009,7 @@ export function playlistsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function playlistsUpdate(id: number, playlist: Playlist, opts?: Oazapfts.RequestOpts) {
+export function updatePlaylist(id: number, playlist: Playlist, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Playlist;
@@ -3776,7 +4019,7 @@ export function playlistsUpdate(id: number, playlist: Playlist, opts?: Oazapfts.
         body: playlist
     }));
 }
-export function playlistsPartialUpdate(id: number, patchedPlaylist?: PatchedPlaylist, opts?: Oazapfts.RequestOpts) {
+export function partialUpdatePlaylist(id: number, patchedPlaylist?: PatchedPlaylist, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Playlist;
@@ -3786,29 +4029,29 @@ export function playlistsPartialUpdate(id: number, patchedPlaylist?: PatchedPlay
         body: patchedPlaylist
     }));
 }
-export function playlistsDestroy(id: number, opts?: Oazapfts.RequestOpts) {
+export function deletePlaylist(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/playlists/${encodeURIComponent(id)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function playlistsAddCreate(id: number, playlist: Playlist, opts?: Oazapfts.RequestOpts) {
+export function addToPlaylist(id: number, playlistAddMany: PlaylistAddMany, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Playlist;
     }>(`/api/v1/playlists/${encodeURIComponent(id)}/add/`, oazapfts.json({
         ...opts,
         method: "POST",
-        body: playlist
+        body: playlistAddMany
     }));
 }
-export function playlistsClearDestroy(id: number, opts?: Oazapfts.RequestOpts) {
+export function clearPlaylist(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/playlists/${encodeURIComponent(id)}/clear/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function playlistsMoveCreate(id: number, playlist: Playlist, opts?: Oazapfts.RequestOpts) {
+export function reorderTrackInPlaylist(id: number, playlist: Playlist, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Playlist;
@@ -3818,7 +4061,7 @@ export function playlistsMoveCreate(id: number, playlist: Playlist, opts?: Oazap
         body: playlist
     }));
 }
-export function playlistsRemoveCreate(id: number, playlist: Playlist, opts?: Oazapfts.RequestOpts) {
+export function removeFromPlaylist2(id: number, playlist: Playlist, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Playlist;
@@ -3828,21 +4071,45 @@ export function playlistsRemoveCreate(id: number, playlist: Playlist, opts?: Oaz
         body: playlist
     }));
 }
-export function playlistsRemoveDestroy(id: number, opts?: Oazapfts.RequestOpts) {
+export function removeFromPlaylist(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/playlists/${encodeURIComponent(id)}/remove/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function playlistsTracksRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getPlaylistTracks(id: number, { album, artist, name, nameIcontains, ordering, page, pageSize, playable, q, scope, track }: {
+    album?: number;
+    artist?: number;
+    name?: string;
+    nameIcontains?: string;
+    ordering?: string;
+    page?: number;
+    pageSize?: number;
+    playable?: boolean;
+    q?: string;
+    scope?: string;
+    track?: number;
+} = {}, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: Playlist;
-    }>(`/api/v1/playlists/${encodeURIComponent(id)}/tracks/`, {
+        data: PaginatedPlaylistTrackList;
+    }>(`/api/v1/playlists/${encodeURIComponent(id)}/tracks/${QS.query(QS.explode({
+        album,
+        artist,
+        name,
+        name__icontains: nameIcontains,
+        ordering,
+        page,
+        page_size: pageSize,
+        playable,
+        q,
+        scope,
+        track
+    }))}`, {
         ...opts
     });
 }
-export function pluginsList({ ordering, page, pageSize }: {
+export function getPlugins({ ordering, page, pageSize }: {
     ordering?: string;
     page?: number;
     pageSize?: number;
@@ -3855,36 +4122,36 @@ export function pluginsList({ ordering, page, pageSize }: {
         ...opts
     });
 }
-export function pluginsCreate(opts?: Oazapfts.RequestOpts) {
+export function createPlugin(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText("/api/v1/plugins/", {
         ...opts,
         method: "POST"
     });
 }
-export function pluginsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getPlugin(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/plugins/${encodeURIComponent(id)}/`, {
         ...opts
     });
 }
-export function pluginsDisableCreate(id: number, opts?: Oazapfts.RequestOpts) {
+export function disablePlugin(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/plugins/${encodeURIComponent(id)}/disable/`, {
         ...opts,
         method: "POST"
     });
 }
-export function pluginsEnableCreate(id: number, opts?: Oazapfts.RequestOpts) {
+export function enablePlugin(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/plugins/${encodeURIComponent(id)}/enable/`, {
         ...opts,
         method: "POST"
     });
 }
-export function pluginsScanCreate(id: number, opts?: Oazapfts.RequestOpts) {
+export function createPluginScan(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/plugins/${encodeURIComponent(id)}/scan/`, {
         ...opts,
         method: "POST"
     });
 }
-export function radiosRadiosList({ name, nameIcontains, nameIexact, nameStartswith, ordering, page, pageSize, q, scope }: {
+export function getRadios({ name, nameIcontains, nameIexact, nameStartswith, ordering, page, pageSize, q, scope }: {
     name?: string;
     nameIcontains?: string;
     nameIexact?: string;
@@ -3912,7 +4179,7 @@ export function radiosRadiosList({ name, nameIcontains, nameIexact, nameStartswi
         ...opts
     });
 }
-export function radiosRadiosCreate(radio: Radio, opts?: Oazapfts.RequestOpts) {
+export function createRadio(radio: Radio, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: Radio;
@@ -3922,7 +4189,7 @@ export function radiosRadiosCreate(radio: Radio, opts?: Oazapfts.RequestOpts) {
         body: radio
     }));
 }
-export function radiosRadiosRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getRadio(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Radio;
@@ -3930,7 +4197,7 @@ export function radiosRadiosRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function radiosRadiosUpdate(id: number, radio: Radio, opts?: Oazapfts.RequestOpts) {
+export function updateRadio(id: number, radio: Radio, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Radio;
@@ -3940,7 +4207,7 @@ export function radiosRadiosUpdate(id: number, radio: Radio, opts?: Oazapfts.Req
         body: radio
     }));
 }
-export function radiosRadiosPartialUpdate(id: number, patchedRadio?: PatchedRadio, opts?: Oazapfts.RequestOpts) {
+export function partialUpdateRadio(id: number, patchedRadio?: PatchedRadio, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Radio;
@@ -3950,13 +4217,13 @@ export function radiosRadiosPartialUpdate(id: number, patchedRadio?: PatchedRadi
         body: patchedRadio
     }));
 }
-export function radiosRadiosDestroy(id: number, opts?: Oazapfts.RequestOpts) {
+export function deleteRadio(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/radios/radios/${encodeURIComponent(id)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function radiosRadiosTracksRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getRadioTrack(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Radio;
@@ -3964,7 +4231,7 @@ export function radiosRadiosTracksRetrieve(id: number, opts?: Oazapfts.RequestOp
         ...opts
     });
 }
-export function radiosRadiosFiltersRetrieve(opts?: Oazapfts.RequestOpts) {
+export function getRadioFilter(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Radio;
@@ -3972,7 +4239,7 @@ export function radiosRadiosFiltersRetrieve(opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function radiosRadiosValidateCreate(radio: Radio, opts?: Oazapfts.RequestOpts) {
+export function validateRadio(radio: Radio, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Radio;
@@ -3982,7 +4249,7 @@ export function radiosRadiosValidateCreate(radio: Radio, opts?: Oazapfts.Request
         body: radio
     }));
 }
-export function radiosSessionsCreate(radioSession: RadioSession, opts?: Oazapfts.RequestOpts) {
+export function createRadioSession(radioSession: RadioSession, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: RadioSession;
@@ -3992,7 +4259,7 @@ export function radiosSessionsCreate(radioSession: RadioSession, opts?: Oazapfts
         body: radioSession
     }));
 }
-export function radiosSessionsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getRadioSession(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: RadioSession;
@@ -4000,7 +4267,7 @@ export function radiosSessionsRetrieve(id: number, opts?: Oazapfts.RequestOpts)
         ...opts
     });
 }
-export function radiosTracksCreate(radioSessionTrackSerializerCreate: RadioSessionTrackSerializerCreate, opts?: Oazapfts.RequestOpts) {
+export function getNextRadioTrack(radioSessionTrackSerializerCreate: RadioSessionTrackSerializerCreate, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: RadioSessionTrackSerializerCreate;
@@ -4010,7 +4277,7 @@ export function radiosTracksCreate(radioSessionTrackSerializerCreate: RadioSessi
         body: radioSessionTrackSerializerCreate
     }));
 }
-export function rateLimitRetrieve(opts?: Oazapfts.RequestOpts) {
+export function getRateLimit(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: RateLimit;
@@ -4018,12 +4285,12 @@ export function rateLimitRetrieve(opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function searchRetrieve(opts?: Oazapfts.RequestOpts) {
+export function getSearchResults(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText("/api/v1/search", {
         ...opts
     });
 }
-export function streamRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function getStream(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchBlob<{
         status: 200;
         data: Blob;
@@ -4031,7 +4298,7 @@ export function streamRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function subscriptionsList({ ordering, page, pageSize }: {
+export function getSubscriptions({ ordering, page, pageSize }: {
     ordering?: string;
     page?: number;
     pageSize?: number;
@@ -4047,7 +4314,7 @@ export function subscriptionsList({ ordering, page, pageSize }: {
         ...opts
     });
 }
-export function subscriptionsRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function getSubscription(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Subscription;
@@ -4060,7 +4327,7 @@ export function subscriptionsRetrieve(uuid: string, opts?: Oazapfts.RequestOpts)
  * to have a performant endpoint and avoid lots of queries just to display
  * subscription status in the UI
  */
-export function subscriptionsAllRetrieve(opts?: Oazapfts.RequestOpts) {
+export function getAllSubscriptions(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Subscription;
@@ -4068,7 +4335,7 @@ export function subscriptionsAllRetrieve(opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function tagsList({ name, nameStartswith, ordering, page, pageSize, q }: {
+export function getTags({ name, nameStartswith, ordering, page, pageSize, q }: {
     name?: string;
     nameStartswith?: string;
     ordering?: ("-creation_date" | "-length" | "-name" | "creation_date" | "length" | "name")[];
@@ -4091,7 +4358,7 @@ export function tagsList({ name, nameStartswith, ordering, page, pageSize, q }:
         ...opts
     });
 }
-export function tagsRetrieve(name: string, opts?: Oazapfts.RequestOpts) {
+export function getTag(name: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Tag;
@@ -4099,7 +4366,7 @@ export function tagsRetrieve(name: string, opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function textPreviewCreate(opts?: Oazapfts.RequestOpts) {
+export function previewText(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText("/api/v1/text-preview/", {
         ...opts,
         method: "POST"
@@ -4108,7 +4375,7 @@ export function textPreviewCreate(opts?: Oazapfts.RequestOpts) {
 /**
  * A simple ViewSet for viewing and editing accounts.
  */
-export function tracksList({ album, artist, channel, hidden, id, includeChannels, library, license, mbid, ordering, page, pageSize, playable, q, related, scope, tag, title, titleIcontains, titleIexact, titleStartswith }: {
+export function getTracks({ album, artist, channel, hidden, id, includeChannels, library, license, mbid, ordering, page, pageSize, playable, q, related, scope, tag, title, titleIcontains, titleIexact, titleStartswith }: {
     album?: number;
     artist?: string;
     channel?: string;
@@ -4164,7 +4431,7 @@ export function tracksList({ album, artist, channel, hidden, id, includeChannels
 /**
  * A simple ViewSet for viewing and editing accounts.
  */
-export function tracksRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getTrack(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: Track;
@@ -4175,7 +4442,7 @@ export function tracksRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
 /**
  * A simple ViewSet for viewing and editing accounts.
  */
-export function tracksDestroy(id: number, opts?: Oazapfts.RequestOpts) {
+export function deleteTrack(id: number, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/tracks/${encodeURIComponent(id)}/`, {
         ...opts,
         method: "DELETE"
@@ -4184,21 +4451,64 @@ export function tracksDestroy(id: number, opts?: Oazapfts.RequestOpts) {
 /**
  * A simple ViewSet for viewing and editing accounts.
  */
-export function tracksFetchesRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getTrackFetches(id: number, { album, artist, channel, hidden, includeChannels, library, license, mbid, ordering, page, pageSize, playable, q, related, scope, tag, title, titleIcontains, titleIexact, titleStartswith }: {
+    album?: number;
+    artist?: string;
+    channel?: string;
+    hidden?: boolean;
+    includeChannels?: boolean;
+    library?: string;
+    license?: string;
+    mbid?: string;
+    ordering?: ("-album__release_date" | "-album__title" | "-artist__modification_date" | "-artist__name" | "-creation_date" | "-disc_number" | "-position" | "-random" | "-related" | "-size" | "-title" | "album__release_date" | "album__title" | "artist__modification_date" | "artist__name" | "creation_date" | "disc_number" | "position" | "random" | "related" | "size" | "title")[];
+    page?: number;
+    pageSize?: number;
+    playable?: boolean;
+    q?: string;
+    related?: string;
+    scope?: string;
+    tag?: string[];
+    title?: string;
+    titleIcontains?: string;
+    titleIexact?: string;
+    titleStartswith?: string;
+} = {}, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: Track;
-    }>(`/api/v1/tracks/${encodeURIComponent(id)}/fetches/`, {
+        data: PaginatedFetchList;
+    }>(`/api/v1/tracks/${encodeURIComponent(id)}/fetches/${QS.query(QS.explode({
+        album,
+        artist,
+        channel,
+        hidden,
+        include_channels: includeChannels,
+        library,
+        license,
+        mbid,
+        page,
+        page_size: pageSize,
+        playable,
+        q,
+        related,
+        scope,
+        tag,
+        title,
+        title__icontains: titleIcontains,
+        title__iexact: titleIexact,
+        title__startswith: titleStartswith
+    }), QS.form({
+        ordering
+    }))}`, {
         ...opts
     });
 }
 /**
  * A simple ViewSet for viewing and editing accounts.
  */
-export function tracksFetchesCreate(id: number, track: Track, opts?: Oazapfts.RequestOpts) {
+export function createTrackFetch(id: number, track: Track, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: Track;
+        data: Fetch;
     }>(`/api/v1/tracks/${encodeURIComponent(id)}/fetches/`, oazapfts.json({
         ...opts,
         method: "POST",
@@ -4208,39 +4518,125 @@ export function tracksFetchesCreate(id: number, track: Track, opts?: Oazapfts.Re
 /**
  * A simple ViewSet for viewing and editing accounts.
  */
-export function tracksLibrariesRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getTrackLibraries(id: number, { album, artist, channel, hidden, includeChannels, library, license, mbid, ordering, page, pageSize, playable, q, related, scope, tag, title, titleIcontains, titleIexact, titleStartswith }: {
+    album?: number;
+    artist?: string;
+    channel?: string;
+    hidden?: boolean;
+    includeChannels?: boolean;
+    library?: string;
+    license?: string;
+    mbid?: string;
+    ordering?: ("-album__release_date" | "-album__title" | "-artist__modification_date" | "-artist__name" | "-creation_date" | "-disc_number" | "-position" | "-random" | "-related" | "-size" | "-title" | "album__release_date" | "album__title" | "artist__modification_date" | "artist__name" | "creation_date" | "disc_number" | "position" | "random" | "related" | "size" | "title")[];
+    page?: number;
+    pageSize?: number;
+    playable?: boolean;
+    q?: string;
+    related?: string;
+    scope?: string;
+    tag?: string[];
+    title?: string;
+    titleIcontains?: string;
+    titleIexact?: string;
+    titleStartswith?: string;
+} = {}, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: Track;
-    }>(`/api/v1/tracks/${encodeURIComponent(id)}/libraries/`, {
+        data: PaginatedLibraryList;
+    }>(`/api/v1/tracks/${encodeURIComponent(id)}/libraries/${QS.query(QS.explode({
+        album,
+        artist,
+        channel,
+        hidden,
+        include_channels: includeChannels,
+        library,
+        license,
+        mbid,
+        page,
+        page_size: pageSize,
+        playable,
+        q,
+        related,
+        scope,
+        tag,
+        title,
+        title__icontains: titleIcontains,
+        title__iexact: titleIexact,
+        title__startswith: titleStartswith
+    }), QS.form({
+        ordering
+    }))}`, {
         ...opts
     });
 }
 /**
  * A simple ViewSet for viewing and editing accounts.
  */
-export function tracksMutationsRetrieve(id: number, opts?: Oazapfts.RequestOpts) {
+export function getTrackMutations(id: number, { album, artist, channel, hidden, includeChannels, library, license, mbid, ordering, page, pageSize, playable, q, related, scope, tag, title, titleIcontains, titleIexact, titleStartswith }: {
+    album?: number;
+    artist?: string;
+    channel?: string;
+    hidden?: boolean;
+    includeChannels?: boolean;
+    library?: string;
+    license?: string;
+    mbid?: string;
+    ordering?: ("-album__release_date" | "-album__title" | "-artist__modification_date" | "-artist__name" | "-creation_date" | "-disc_number" | "-position" | "-random" | "-related" | "-size" | "-title" | "album__release_date" | "album__title" | "artist__modification_date" | "artist__name" | "creation_date" | "disc_number" | "position" | "random" | "related" | "size" | "title")[];
+    page?: number;
+    pageSize?: number;
+    playable?: boolean;
+    q?: string;
+    related?: string;
+    scope?: string;
+    tag?: string[];
+    title?: string;
+    titleIcontains?: string;
+    titleIexact?: string;
+    titleStartswith?: string;
+} = {}, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: Track;
-    }>(`/api/v1/tracks/${encodeURIComponent(id)}/mutations/`, {
+        data: PaginatedApiMutationList;
+    }>(`/api/v1/tracks/${encodeURIComponent(id)}/mutations/${QS.query(QS.explode({
+        album,
+        artist,
+        channel,
+        hidden,
+        include_channels: includeChannels,
+        library,
+        license,
+        mbid,
+        page,
+        page_size: pageSize,
+        playable,
+        q,
+        related,
+        scope,
+        tag,
+        title,
+        title__icontains: titleIcontains,
+        title__iexact: titleIexact,
+        title__startswith: titleStartswith
+    }), QS.form({
+        ordering
+    }))}`, {
         ...opts
     });
 }
 /**
  * A simple ViewSet for viewing and editing accounts.
  */
-export function tracksMutationsCreate(id: number, track: Track, opts?: Oazapfts.RequestOpts) {
+export function createTrackMutation(id: number, track: Track, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
-        data: Track;
+        data: ApiMutation;
     }>(`/api/v1/tracks/${encodeURIComponent(id)}/mutations/`, oazapfts.json({
         ...opts,
         method: "POST",
         body: track
     }));
 }
-export function uploadsList({ albumArtist, channel, importReference, importStatus, includeChannels, library, mimetype, ordering, page, pageSize, playable, q, scope, track, trackArtist }: {
+export function getUploads({ albumArtist, channel, importReference, importStatus, includeChannels, library, mimetype, ordering, page, pageSize, playable, q, scope, track, trackArtist }: {
     albumArtist?: string;
     channel?: string;
     importReference?: string;
@@ -4280,7 +4676,7 @@ export function uploadsList({ albumArtist, channel, importReference, importStatu
         ...opts
     });
 }
-export function uploadsCreate(uploadForOwner: UploadForOwner, opts?: Oazapfts.RequestOpts) {
+export function createUpload(uploadForOwner: UploadForOwner, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 201;
         data: UploadForOwner;
@@ -4290,7 +4686,7 @@ export function uploadsCreate(uploadForOwner: UploadForOwner, opts?: Oazapfts.Re
         body: uploadForOwner
     }));
 }
-export function uploadsRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function getUpload(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UploadForOwner;
@@ -4298,7 +4694,7 @@ export function uploadsRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
         ...opts
     });
 }
-export function uploadsUpdate(uuid: string, uploadForOwner: UploadForOwner, opts?: Oazapfts.RequestOpts) {
+export function updateUpload(uuid: string, uploadForOwner: UploadForOwner, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UploadForOwner;
@@ -4308,7 +4704,7 @@ export function uploadsUpdate(uuid: string, uploadForOwner: UploadForOwner, opts
         body: uploadForOwner
     }));
 }
-export function uploadsPartialUpdate(uuid: string, patchedUploadForOwner?: PatchedUploadForOwner, opts?: Oazapfts.RequestOpts) {
+export function partialUpdateUpload(uuid: string, patchedUploadForOwner?: PatchedUploadForOwner, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UploadForOwner;
@@ -4318,13 +4714,13 @@ export function uploadsPartialUpdate(uuid: string, patchedUploadForOwner?: Patch
         body: patchedUploadForOwner
     }));
 }
-export function uploadsDestroy(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function deleteUpload(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/uploads/${encodeURIComponent(uuid)}/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function uploadsAudioFileMetadataRetrieve(uuid: string, opts?: Oazapfts.RequestOpts) {
+export function getUploadMetadata(uuid: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UploadForOwner;
@@ -4344,7 +4740,7 @@ export function uploadsAudioFileMetadataRetrieve(uuid: string, opts?: Oazapfts.R
  * encoding defaults to sys.getdefaultencoding().
  * errors defaults to 'strict'.
  */
-export function uploadsActionCreate(uploadForOwner: UploadForOwner, opts?: Oazapfts.RequestOpts) {
+export function createUploadAction(uploadForOwner: UploadForOwner, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UploadForOwner;
@@ -4354,7 +4750,7 @@ export function uploadsActionCreate(uploadForOwner: UploadForOwner, opts?: Oazap
         body: uploadForOwner
     }));
 }
-export function usersUpdate(username: string, userWrite: UserWrite, opts?: Oazapfts.RequestOpts) {
+export function updateUser(username: string, userWrite: UserWrite, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UserWrite;
@@ -4364,7 +4760,7 @@ export function usersUpdate(username: string, userWrite: UserWrite, opts?: Oazap
         body: userWrite
     }));
 }
-export function usersPartialUpdate(username: string, patchedUserWrite?: PatchedUserWrite, opts?: Oazapfts.RequestOpts) {
+export function partialUpdateUser(username: string, patchedUserWrite?: PatchedUserWrite, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UserWrite;
@@ -4374,7 +4770,7 @@ export function usersPartialUpdate(username: string, patchedUserWrite?: PatchedU
         body: patchedUserWrite
     }));
 }
-export function usersSubsonicTokenRetrieve(username: string, opts?: Oazapfts.RequestOpts) {
+export function getUserSubsonicToken(username: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UserWrite;
@@ -4382,7 +4778,7 @@ export function usersSubsonicTokenRetrieve(username: string, opts?: Oazapfts.Req
         ...opts
     });
 }
-export function usersSubsonicTokenCreate(username: string, userWrite: UserWrite, opts?: Oazapfts.RequestOpts) {
+export function createUserSubsonicToken(username: string, userWrite: UserWrite, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UserWrite;
@@ -4392,13 +4788,13 @@ export function usersSubsonicTokenCreate(username: string, userWrite: UserWrite,
         body: userWrite
     }));
 }
-export function usersSubsonicTokenDestroy(username: string, opts?: Oazapfts.RequestOpts) {
+export function deleteUserSubsonicToken(username: string, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText(`/api/v1/users/${encodeURIComponent(username)}/subsonic-token/`, {
         ...opts,
         method: "DELETE"
     });
 }
-export function usersChangeEmailCreate(userWrite: UserWrite, opts?: Oazapfts.RequestOpts) {
+export function changeEmail(userWrite: UserWrite, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UserWrite;
@@ -4411,7 +4807,7 @@ export function usersChangeEmailCreate(userWrite: UserWrite, opts?: Oazapfts.Req
 /**
  * Return information about the current user or delete it
  */
-export function usersMeRetrieve(opts?: Oazapfts.RequestOpts) {
+export function getAuthenticatedUser(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UserWrite;
@@ -4422,7 +4818,7 @@ export function usersMeRetrieve(opts?: Oazapfts.RequestOpts) {
 /**
  * Return information about the current user or delete it
  */
-export function usersMeDestroy(opts?: Oazapfts.RequestOpts) {
+export function deleteAuthenticatedUser(opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchText("/api/v1/users/me/", {
         ...opts,
         method: "DELETE"
@@ -4431,7 +4827,7 @@ export function usersMeDestroy(opts?: Oazapfts.RequestOpts) {
 /**
  * Return information about the current user or delete it
  */
-export function usersSettingsCreate(userWrite: UserWrite, opts?: Oazapfts.RequestOpts) {
+export function updateSettings(userWrite: UserWrite, opts?: Oazapfts.RequestOpts) {
     return oazapfts.fetchJson<{
         status: 200;
         data: UserWrite;
@@ -4441,90 +4837,3 @@ export function usersSettingsCreate(userWrite: UserWrite, opts?: Oazapfts.Reques
         body: userWrite
     }));
 }
-export function usersUsersUpdate(username: string, userWrite: UserWrite, opts?: Oazapfts.RequestOpts) {
-    return oazapfts.fetchJson<{
-        status: 200;
-        data: UserWrite;
-    }>(`/api/v1/users/users/${encodeURIComponent(username)}/`, oazapfts.json({
-        ...opts,
-        method: "PUT",
-        body: userWrite
-    }));
-}
-export function usersUsersPartialUpdate(username: string, patchedUserWrite?: PatchedUserWrite, opts?: Oazapfts.RequestOpts) {
-    return oazapfts.fetchJson<{
-        status: 200;
-        data: UserWrite;
-    }>(`/api/v1/users/users/${encodeURIComponent(username)}/`, oazapfts.json({
-        ...opts,
-        method: "PATCH",
-        body: patchedUserWrite
-    }));
-}
-export function usersUsersSubsonicTokenRetrieve(username: string, opts?: Oazapfts.RequestOpts) {
-    return oazapfts.fetchJson<{
-        status: 200;
-        data: UserWrite;
-    }>(`/api/v1/users/users/${encodeURIComponent(username)}/subsonic-token/`, {
-        ...opts
-    });
-}
-export function usersUsersSubsonicTokenCreate(username: string, userWrite: UserWrite, opts?: Oazapfts.RequestOpts) {
-    return oazapfts.fetchJson<{
-        status: 200;
-        data: UserWrite;
-    }>(`/api/v1/users/users/${encodeURIComponent(username)}/subsonic-token/`, oazapfts.json({
-        ...opts,
-        method: "POST",
-        body: userWrite
-    }));
-}
-export function usersUsersSubsonicTokenDestroy(username: string, opts?: Oazapfts.RequestOpts) {
-    return oazapfts.fetchText(`/api/v1/users/users/${encodeURIComponent(username)}/subsonic-token/`, {
-        ...opts,
-        method: "DELETE"
-    });
-}
-export function usersUsersChangeEmailCreate(userWrite: UserWrite, opts?: Oazapfts.RequestOpts) {
-    return oazapfts.fetchJson<{
-        status: 200;
-        data: UserWrite;
-    }>("/api/v1/users/users/change-email/", oazapfts.json({
-        ...opts,
-        method: "POST",
-        body: userWrite
-    }));
-}
-/**
- * Return information about the current user or delete it
- */
-export function usersUsersMeRetrieve(opts?: Oazapfts.RequestOpts) {
-    return oazapfts.fetchJson<{
-        status: 200;
-        data: UserWrite;
-    }>("/api/v1/users/users/me/", {
-        ...opts
-    });
-}
-/**
- * Return information about the current user or delete it
- */
-export function usersUsersMeDestroy(opts?: Oazapfts.RequestOpts) {
-    return oazapfts.fetchText("/api/v1/users/users/me/", {
-        ...opts,
-        method: "DELETE"
-    });
-}
-/**
- * Return information about the current user or delete it
- */
-export function usersUsersSettingsCreate(userWrite: UserWrite, opts?: Oazapfts.RequestOpts) {
-    return oazapfts.fetchJson<{
-        status: 200;
-        data: UserWrite;
-    }>("/api/v1/users/users/settings/", oazapfts.json({
-        ...opts,
-        method: "POST",
-        body: userWrite
-    }));
-}
-- 
GitLab