openapi: 3.0.3
info:
  title: Funkwhale API
  version: 1.4.0
  description: |
    # Funkwhale API

    This is the Funkwhale API. Check out our [API explorer](https://docs.funkwhale.audio/swagger/) for interactive documentation.

    ## OAuth Authentication

    Funkwhale uses the OAuth [authorization grant flow](https://tools.ietf.org/html/rfc6749#section-4.1) for external apps. This flow is a secure way to authenticate apps that requires a user's explicit consent to perform actions. You can use our demo server at <https://demo.funkwhale.audio> for testing purposes.

    To authenticate with the Funkwhale API:

    1. Create an application by sending a `POST` request to `api/v1/oauth/apps`. Include your scopes and redirect URI (use `urn:ietf:wg:oauth:2.0:oob`
       to get an authorization code you can copy)
    2. Send an [authorization request](https://www.rfc-editor.org/rfc/rfc6749#section-4.1.2) to the `/authorize` endpoint to receive an authorization code
    3. [Request an access token](https://www.rfc-editor.org/rfc/rfc6749#section-4.1.3) from `/api/v1/oauth/token`
    4. Use your access token to authenticate your calls with the following format: `Authorization: Bearer <token>`
    5. Refresh your access token by sending a refresh request to `/api/v1/oauth/token`

    For more detailed instructions, see [our API authentication documentation](https://docs.funkwhale.audio/developers/authentication.html).

    ## Application token authentication

    If you have an account on your target pod, you can create an application at `/settings/applications/new`. Once you authorize the application you can retrieve an access token. Use your access token to authenticate your calls with the following format: `Authorization: Bearer <token>`

    ## Rate limiting

    Funkwhale supports rate-limiting as of version 0.2.0. Pod admins can choose to rate limit specific endpoints to prevent abuse and improve the stability of the service. If the server drops a request due to rate-limiting, it returns a `429` status code.

    Each API call returns HTTP headers to pass the following information:

    - What was the scope of the request (`X-RateLimit-Scope`)
    - What is the rate-limit associated with the request scope (`X-RateLimit-Limit`)
    - How many more requests in the scope can be made within the rate-limit timeframe (`X-RateLimit-Remaining`)
    - How much time does the client need to wait to send another request (`Retry-After`)

    For more information, check our [rate limit documentation](https://docs.funkwhale.audio/developer/api/rate-limit.html)

    ## Resources

    For more information about API usage, refer to [our API documentation](https://docs.funkwhale.audio/api.html).
paths:
  /api/v1/activity/:
    get:
      operationId: get_activity
      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:
      - activity
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v1/albums/:
    get:
      operationId: get_albums
      parameters:
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: artist_credit
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: content_category
        schema:
          type: string
      - in: query
        name: has_cover
        schema:
          type: boolean
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - in: query
        name: has_release_date
        schema:
          type: boolean
      - in: query
        name: has_tags
        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: ordering
        schema:
          type: array
          items:
            type: string
            enum:
            - -artist_credit__artist__modification_date
            - -creation_date
            - -random
            - -related
            - -release_date
            - -title
            - artist_credit__artist__modification_date
            - creation_date
            - random
            - related
            - release_date
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `release_date` - Release date
          * `-release_date` - Release date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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/PaginatedAlbumList'
          description: ''
    post:
      operationId: create_album
      tags:
      - albums
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AlbumCreateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AlbumCreateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AlbumCreateRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/AlbumCreateRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlbumCreate'
          description: ''
  /api/v1/albums/{id}/:
    get:
      operationId: get_album
      parameters:
      - in: path
        name: id
        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: ''
    delete:
      operationId: delete_album
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this album.
        required: true
      tags:
      - albums
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/albums/{id}/fetches/:
    get:
      operationId: get_album_fetches
      parameters:
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: artist_credit
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: content_category
        schema:
          type: string
      - in: query
        name: has_cover
        schema:
          type: boolean
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - in: query
        name: has_release_date
        schema:
          type: boolean
      - in: query
        name: has_tags
        schema:
          type: boolean
      - 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:
          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_credit__artist__modification_date
            - -creation_date
            - -random
            - -related
            - -release_date
            - -title
            - artist_credit__artist__modification_date
            - creation_date
            - random
            - related
            - release_date
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `release_date` - Release date
          * `-release_date` - Release date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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/PaginatedFetchList'
          description: ''
    post:
      operationId: create_album_fetch
      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/AlbumRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AlbumRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AlbumRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/AlbumRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fetch'
          description: ''
  /api/v1/albums/{id}/libraries/:
    get:
      operationId: get_album_libraries
      parameters:
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: artist_credit
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: content_category
        schema:
          type: string
      - in: query
        name: has_cover
        schema:
          type: boolean
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - in: query
        name: has_release_date
        schema:
          type: boolean
      - in: query
        name: has_tags
        schema:
          type: boolean
      - 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:
          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_credit__artist__modification_date
            - -creation_date
            - -random
            - -related
            - -release_date
            - -title
            - artist_credit__artist__modification_date
            - creation_date
            - random
            - related
            - release_date
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `release_date` - Release date
          * `-release_date` - Release date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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/PaginatedLibraryList'
          description: ''
  /api/v1/albums/{id}/mutations/:
    get:
      operationId: get_album_mutations
      parameters:
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: artist_credit
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: content_category
        schema:
          type: string
      - in: query
        name: has_cover
        schema:
          type: boolean
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - in: query
        name: has_release_date
        schema:
          type: boolean
      - in: query
        name: has_tags
        schema:
          type: boolean
      - 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:
          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_credit__artist__modification_date
            - -creation_date
            - -random
            - -related
            - -release_date
            - -title
            - artist_credit__artist__modification_date
            - creation_date
            - random
            - related
            - release_date
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `release_date` - Release date
          * `-release_date` - Release date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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/AlbumRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AlbumRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AlbumRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/AlbumRequest'
        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: has_mbid
        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

          * `id` - Id
          * `-id` - Id (descending)
          * `name` - Name
          * `-name` - Name (descending)
          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `modification_date` - Modification date
          * `-modification_date` - Modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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: has_mbid
        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

          * `id` - Id
          * `-id` - Id (descending)
          * `name` - Name
          * `-name` - Name (descending)
          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `modification_date` - Modification date
          * `-modification_date` - Modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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
        description: A unique integer value identifying this artist.
        required: true
      tags:
      - artists
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fetch'
          description: ''
  /api/v1/artists/{id}/libraries/:
    get:
      operationId: get_artist_libraries
      parameters:
      - in: query
        name: content_category
        schema:
          type: string
      - in: query
        name: has_albums
        schema:
          type: boolean
      - in: query
        name: has_mbid
        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

          * `id` - Id
          * `-id` - Id (descending)
          * `name` - Name
          * `-name` - Name (descending)
          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `modification_date` - Modification date
          * `-modification_date` - Modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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/PaginatedLibraryList'
          description: ''
  /api/v1/artists/{id}/mutations/:
    get:
      operationId: get_artist_mutations
      parameters:
      - in: query
        name: content_category
        schema:
          type: string
      - in: query
        name: has_albums
        schema:
          type: boolean
      - in: query
        name: has_mbid
        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

          * `id` - Id
          * `-id` - Id (descending)
          * `name` - Name
          * `-name` - Name (descending)
          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `modification_date` - Modification date
          * `-modification_date` - Modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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/PaginatedAPIMutationList'
          description: ''
    post:
      operationId: create_artist_mutation
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this artist.
        required: true
      tags:
      - artists
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMutation'
          description: ''
  /api/v1/attachments/:
    post:
      operationId: create_attachment
      tags:
      - attachments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachmentRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AttachmentRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AttachmentRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/AttachmentRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
          description: ''
  /api/v1/attachments/{uuid}/:
    get:
      operationId: get_attachment
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - attachments
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
          description: ''
    delete:
      operationId: delete_attachment
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - attachments
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/attachments/{uuid}/proxy/:
    get:
      operationId: get_attachment_proxy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - attachments
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
          description: ''
  /api/v1/auth/password/change/:
    post:
      operationId: change_password
      description: The type of the None singleton.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordChange'
          description: ''
  /api/v1/auth/password/reset/:
    post:
      operationId: reset_password
      description: The type of the None singleton.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordResetRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PasswordResetRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PasswordResetRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PasswordResetRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordReset'
          description: ''
  /api/v1/auth/password/reset/confirm/:
    post:
      operationId: confirm_password_reset
      description: The type of the None singleton.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordResetConfirmRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PasswordResetConfirmRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PasswordResetConfirmRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PasswordResetConfirmRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordResetConfirm'
          description: ''
  /api/v1/auth/registration/:
    post:
      operationId: register
      description: The type of the None singleton.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RegisterRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RegisterRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/RegisterRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Register'
          description: ''
  /api/v1/auth/registration/change-password/:
    post:
      operationId: change_password_2
      description: The type of the None singleton.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordChange'
          description: ''
  /api/v1/auth/registration/verify-email/:
    post:
      operationId: verify_email
      description: The type of the None singleton.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyEmailRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/VerifyEmailRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/VerifyEmailRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/VerifyEmailRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      - {}
      responses:
        '200':
          description: No response body
  /api/v1/auth/user/:
    get:
      operationId: get_auth_user
      description: |-
        Reads and updates UserModel fields
        Accepts GET, PUT, PATCH methods.

        Default accepted fields: username, first_name, last_name
        Default display fields: pk, username, email, first_name, last_name
        Read-only fields: pk, email

        Returns UserModel fields.
      tags:
      - auth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDetails'
          description: ''
    put:
      operationId: update_auth_user
      description: |-
        Reads and updates UserModel fields
        Accepts GET, PUT, PATCH methods.

        Default accepted fields: username, first_name, last_name
        Default display fields: pk, username, email, first_name, last_name
        Read-only fields: pk, email

        Returns UserModel fields.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserDetailsRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserDetailsRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserDetailsRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserDetailsRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDetails'
          description: ''
    patch:
      operationId: partial_update_auth_user
      description: |-
        Reads and updates UserModel fields
        Accepts GET, PUT, PATCH methods.

        Default accepted fields: username, first_name, last_name
        Default display fields: pk, username, email, first_name, last_name
        Read-only fields: pk, email

        Returns UserModel fields.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserDetailsRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUserDetailsRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUserDetailsRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedUserDetailsRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDetails'
          description: ''
  /api/v1/channels/:
    get:
      operationId: get_channels
      parameters:
      - in: query
        name: external
        schema:
          type: boolean
      - in: query
        name: hidden
        schema:
          type: boolean
      - in: query
        name: ordering
        schema:
          type: array
          items:
            type: string
            enum:
            - -creation_date
            - -modification_date
            - -random
            - creation_date
            - modification_date
            - random
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `modification_date` - Modification date
          * `-modification_date` - Modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
        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
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: subscribed
        schema:
          type: boolean
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
        explode: true
        style: form
      tags:
      - channels
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedChannelList'
          description: ''
    post:
      operationId: create_channel
      tags:
      - channels
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelCreateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChannelCreateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChannelCreateRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ChannelCreateRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelCreate'
          description: ''
  /api/v1/channels/{composite}/:
    get:
      operationId: get_channel
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Channel'
          description: ''
    put:
      operationId: update_channel
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelUpdateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChannelUpdateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChannelUpdateRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ChannelUpdateRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelUpdate'
          description: ''
    patch:
      operationId: partial_update_channel
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedChannelUpdateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedChannelUpdateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedChannelUpdateRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedChannelUpdateRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelUpdate'
          description: ''
    delete:
      operationId: delete_channel
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/channels/{composite}/rss/:
    get:
      operationId: get_channel_rss
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Channel'
          description: ''
  /api/v1/channels/{composite}/subscribe/:
    post:
      operationId: subscribe_channel
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Channel'
          description: ''
  /api/v1/channels/{composite}/unsubscribe/:
    post:
      operationId: unsubscribe_channel_2
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
    delete:
      operationId: unsubscribe_channel
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/channels/metadata-choices/:
    get:
      operationId: get_channel_metadata_choices
      tags:
      - channels
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetedataChoices'
          description: ''
  /api/v1/channels/rss-subscribe/:
    post:
      operationId: subscribe_channel_rss
      tags:
      - channels
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Channel'
          description: ''
  /api/v1/favorites/tracks/:
    get:
      operationId: get_favorite_tracks
      parameters:
      - in: query
        name: hidden
        schema:
          type: boolean
      - 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: q
        schema:
          type: string
      - in: query
        name: scope
        schema:
          type: string
      tags:
      - favorites
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedUserTrackFavoriteList'
          description: ''
    post:
      operationId: favorite_track
      tags:
      - favorites
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserTrackFavoriteWrite'
          description: ''
  /api/v1/favorites/tracks/{id}/:
    delete:
      operationId: delete_favorite_track
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this track favorite.
        required: true
      tags:
      - favorites
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/favorites/tracks/all/:
    get:
      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
        favorites status in the UI
      tags:
      - favorites
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllFavorite'
          description: ''
  /api/v1/favorites/tracks/remove/:
    post:
      operationId: unfavorite_track_2
      tags:
      - favorites
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserTrackFavoriteWrite'
          description: ''
    delete:
      operationId: unfavorite_track
      tags:
      - favorites
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/federation/actors/{full_username}/:
    get:
      operationId: get_federation_actor
      parameters:
      - in: path
        name: full_username
        schema:
          type: string
          pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FullActor'
          description: ''
  /api/v1/federation/actors/{full_username}/libraries/:
    get:
      operationId: get_federation_actor_library
      parameters:
      - in: path
        name: full_username
        schema:
          type: string
          pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryForOwner'
          description: ''
  /api/v1/federation/domains/:
    get:
      operationId: get_federation_domains
      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:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDomainList'
          description: ''
  /api/v1/federation/domains/{name}/:
    get:
      operationId: get_federation_domain
      parameters:
      - in: path
        name: name
        schema:
          type: string
        description: A unique value identifying this domain.
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Domain'
          description: ''
  /api/v1/federation/fetches/:
    post:
      operationId: create_federation_fetch
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FetchRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/FetchRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FetchRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/FetchRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fetch'
          description: ''
  /api/v1/federation/fetches/{id}/:
    get:
      operationId: get_federation_fetch
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this fetch.
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fetch'
          description: ''
  /api/v1/federation/follows/library/:
    get:
      operationId: get_federation_library_follows
      parameters:
      - in: query
        name: approved
        schema:
          type: boolean
      - 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:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLibraryFollowList'
          description: ''
    post:
      operationId: create_federation_library_follow
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryFollow'
          description: ''
  /api/v1/federation/follows/library/{uuid}/:
    get:
      operationId: get_federation_library_follow
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryFollow'
          description: ''
    delete:
      operationId: delete_federation_library_follow
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/federation/follows/library/{uuid}/accept/:
    post:
      operationId: accept_federation_library_follow
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '404':
          description: No response body
        '204':
          description: No response body
  /api/v1/federation/follows/library/{uuid}/reject/:
    post:
      operationId: reject_federation_library_follow
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryFollow'
          description: ''
  /api/v1/federation/follows/library/all/:
    get:
      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
        subscription status in the UI
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryFollow'
          description: ''
  /api/v1/federation/follows/user/:
    get:
      operationId: get_federation_received_follows
      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:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedFollowList'
          description: ''
    post:
      operationId: create_federation_user_follow
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/FollowRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Follow'
          description: ''
  /api/v1/federation/follows/user/{uuid}/:
    get:
      operationId: get_federation_user_follow
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Follow'
          description: ''
    delete:
      operationId: delete_federation_user_follow
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/federation/follows/user/{uuid}/accept/:
    post:
      operationId: accept_federation_user_follow
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/FollowRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '404':
          description: No response body
        '204':
          description: No response body
  /api/v1/federation/follows/user/{uuid}/reject/:
    post:
      operationId: reject_federation_user_follow
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/FollowRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Follow'
          description: ''
  /api/v1/federation/follows/user/all/:
    get:
      operationId: get_all_federation_library_follows_2
      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:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Follow'
          description: ''
  /api/v1/federation/inbox/:
    get:
      operationId: get_federation_inboxes
      parameters:
      - in: query
        name: activity__actor
        schema:
          type: integer
      - in: query
        name: activity__type
        schema:
          type: string
      - in: query
        name: before
        schema:
          type: number
      - in: query
        name: is_read
        schema:
          type: boolean
      - 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:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedInboxItemList'
          description: ''
  /api/v1/federation/inbox/{id}/:
    get:
      operationId: get_federation_inbox
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this inbox item.
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboxItem'
          description: ''
    put:
      operationId: update_federation_inbox
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this inbox item.
        required: true
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboxItem'
          description: ''
    patch:
      operationId: partial_update_federation_inbox
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this inbox item.
        required: true
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedInboxItemRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedInboxItemRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedInboxItemRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedInboxItemRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboxItem'
          description: ''
  /api/v1/federation/inbox/action/:
    post:
      operationId: create_federation_inbox_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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboxItem'
          description: ''
  /api/v1/federation/libraries/{uuid}/:
    get:
      operationId: get_federation_library
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Library'
          description: ''
  /api/v1/federation/libraries/{uuid}/scan/:
    post:
      operationId: create_federation_library_scan
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Library'
          description: ''
  /api/v1/federation/libraries/fetch/:
    post:
      operationId: create_federation_library_fetch
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Library'
          description: ''
  /api/v1/history/listenings/:
    get:
      operationId: get_history_listenings
      parameters:
      - in: query
        name: domain
        schema:
          type: string
      - in: query
        name: hidden
        schema:
          type: boolean
      - 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: scope
        schema:
          type: string
      - in: query
        name: username
        schema:
          type: string
      tags:
      - history
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedListeningList'
          description: ''
    post:
      operationId: create_history_listening
      tags:
      - history
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListeningWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ListeningWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ListeningWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ListeningWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListeningWrite'
          description: ''
  /api/v1/history/listenings/{id}/:
    get:
      operationId: get_history_listening
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this listening.
        required: true
      tags:
      - history
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Listening'
          description: ''
  /api/v1/instance/admin/settings/:
    get:
      operationId: get_instance_admin_settings
      description: |-
        - list preferences
        - detail given preference
        - batch update preferences
        - update a single preference
      parameters:
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      tags:
      - instance
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GlobalPreference'
          description: ''
  /api/v1/instance/admin/settings/{id}/:
    get:
      operationId: get_instance_admin_setting
      description: |-
        - list preferences
        - detail given preference
        - batch update preferences
        - update a single preference
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Global preference.
        required: true
      tags:
      - instance
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalPreference'
          description: ''
    put:
      operationId: update_instance_admin_setting
      description: |-
        - list preferences
        - detail given preference
        - batch update preferences
        - update a single preference
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Global preference.
        required: true
      tags:
      - instance
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalPreference'
          description: ''
    patch:
      operationId: partial_update_instance_admin_setting
      description: |-
        - list preferences
        - detail given preference
        - batch update preferences
        - update a single preference
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Global preference.
        required: true
      tags:
      - instance
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedGlobalPreferenceRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedGlobalPreferenceRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedGlobalPreferenceRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedGlobalPreferenceRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalPreference'
          description: ''
  /api/v1/instance/admin/settings/bulk/:
    post:
      operationId: create_instance_admin_setting_bulk
      description: |-
        Update multiple preferences at once

        this is a long method because we ensure everything is valid
        before actually persisting the changes
      tags:
      - instance
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalPreference'
          description: ''
  /api/v1/instance/nodeinfo/2.0/:
    get:
      operationId: getNodeInfo20
      tags:
      - instance
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NodeInfo20'
          description: ''
  /api/v1/instance/settings/:
    get:
      operationId: get_instance_settings
      tags:
      - instance
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalPreference'
          description: ''
  /api/v1/instance/spa-manifest.json:
    get:
      operationId: get_spa_manifest
      tags:
      - instance
      responses:
        '200':
          content:
            application/activity+json:
              schema:
                $ref: '#/components/schemas/SpaManifest'
          description: ''
  /api/v1/libraries/:
    get:
      operationId: get_libraries
      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
      - in: query
        name: privacy_level
        schema:
          type: string
          enum:
          - everyone
          - instance
          - me
        description: |-
          * `me` - Only me
          * `instance` - Everyone on my instance, and my followers
          * `everyone` - Everyone, including people on other instances
      - in: query
        name: q
        schema:
          type: string
      - in: query
        name: scope
        schema:
          type: string
      tags:
      - libraries
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLibraryForOwnerList'
          description: ''
  /api/v1/libraries/{uuid}/:
    get:
      operationId: get_library
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - libraries
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryForOwner'
          description: ''
  /api/v1/libraries/fs-import/:
    get:
      operationId: get_library_fs_import
      tags:
      - libraries
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
    post:
      operationId: create_library_fs_import
      tags:
      - libraries
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryForOwnerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryForOwnerRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryForOwnerRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/LibraryForOwnerRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
    delete:
      operationId: delete_library_fs_import
      tags:
      - libraries
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/licenses/:
    get:
      operationId: get_licenses
      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:
      - licenses
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLicenseList'
          description: ''
  /api/v1/licenses/{code}/:
    get:
      operationId: get_license
      parameters:
      - in: path
        name: code
        schema:
          type: string
        description: A unique value identifying this license.
        required: true
      tags:
      - licenses
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/License'
          description: ''
  /api/v1/listen/{uuid}/:
    get:
      operationId: get_listen
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - listen
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            audio/*:
              schema:
                type: string
                format: binary
          description: ''
  /api/v1/manage/accounts/:
    get:
      operationId: admin_get_accounts
      parameters:
      - in: query
        name: domain
        schema:
          type: string
      - in: query
        name: local
        schema:
          type: boolean
      - in: query
        name: manually_approves_followers
        schema:
          type: boolean
      - 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: q
        schema:
          type: string
      - in: query
        name: type
        schema:
          type: string
          enum:
          - Application
          - Group
          - Organization
          - Person
          - Service
          - Tombstone
        description: |-
          * `Person` - Person
          * `Tombstone` - Tombstone
          * `Application` - Application
          * `Group` - Group
          * `Organization` - Organization
          * `Service` - Service
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageActorList'
          description: ''
  /api/v1/manage/accounts/{id}/:
    get:
      operationId: admin_get_account
      parameters:
      - in: path
        name: id
        schema:
          type: string
          pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageActor'
          description: ''
  /api/v1/manage/accounts/{id}/stats/:
    get:
      operationId: admin_get_account_stats
      parameters:
      - in: path
        name: id
        schema:
          type: string
          pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageActor'
          description: ''
  /api/v1/manage/accounts/action/:
    post:
      operationId: admin_create_account_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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageActorRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageActorRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageActorRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageActorRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageActor'
          description: ''
  /api/v1/manage/channels/:
    get:
      operationId: admin_get_channels
      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
      - in: query
        name: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageChannelList'
          description: ''
  /api/v1/manage/channels/{composite}/:
    get:
      operationId: admin_get_channel
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageChannel'
          description: ''
    delete:
      operationId: admin_delete_channel
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/manage/channels/{composite}/stats/:
    get:
      operationId: admin_get_channel_stats
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageChannel'
          description: ''
  /api/v1/manage/federation/domains/:
    get:
      operationId: admin_get_federation_domains
      parameters:
      - in: query
        name: allowed
        schema:
          type: boolean
      - in: query
        name: name
        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: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageDomainList'
          description: ''
    post:
      operationId: admin_create_federation_domain
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageDomain'
          description: ''
  /api/v1/manage/federation/domains/{name}/:
    get:
      operationId: admin_get_federation_domain
      parameters:
      - in: path
        name: name
        schema:
          type: string
        description: A unique value identifying this domain.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageDomain'
          description: ''
    put:
      operationId: admin_update_federation_domain
      parameters:
      - in: path
        name: name
        schema:
          type: string
        description: A unique value identifying this domain.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageDomainUpdateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageDomainUpdateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageDomainUpdateRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageDomainUpdateRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageDomainUpdate'
          description: ''
    patch:
      operationId: admin_partial_update_federation_domain
      parameters:
      - in: path
        name: name
        schema:
          type: string
        description: A unique value identifying this domain.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManageDomainUpdateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManageDomainUpdateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManageDomainUpdateRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedManageDomainUpdateRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageDomainUpdate'
          description: ''
  /api/v1/manage/federation/domains/{name}/nodeinfo/:
    get:
      operationId: admin_get_federation_domain_nodeinfo
      parameters:
      - in: path
        name: name
        schema:
          type: string
        description: A unique value identifying this domain.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageDomain'
          description: ''
  /api/v1/manage/federation/domains/{name}/stats/:
    get:
      operationId: admin_get_federation_domain_stats
      parameters:
      - in: path
        name: name
        schema:
          type: string
        description: A unique value identifying this domain.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageDomain'
          description: ''
  /api/v1/manage/federation/domains/action/:
    post:
      operationId: admin_create_federation_domain_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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageDomain'
          description: ''
  /api/v1/manage/library/albums/:
    get:
      operationId: admin_get_albums
      parameters:
      - in: query
        name: artist_credit
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      - in: query
        name: fid
        schema:
          type: string
      - in: query
        name: mbid
        schema:
          type: string
          format: uuid
      - 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: q
        schema:
          type: string
      - in: query
        name: title
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageAlbumList'
          description: ''
  /api/v1/manage/library/albums/{id}/:
    get:
      operationId: admin_get_album
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this album.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageAlbum'
          description: ''
    delete:
      operationId: admin_delete_album
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this album.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/manage/library/albums/{id}/stats/:
    get:
      operationId: admin_get_library_album_stats
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this album.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageAlbum'
          description: ''
  /api/v1/manage/library/albums/action/:
    post:
      operationId: admin_create_album_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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageAlbumRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageAlbumRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageAlbumRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageAlbumRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageAlbum'
          description: ''
  /api/v1/manage/library/artists/:
    get:
      operationId: admin_get_artists
      parameters:
      - in: query
        name: content_category
        schema:
          type: string
          enum:
          - music
          - other
          - podcast
        description: |-
          * `music` - music
          * `podcast` - podcast
          * `other` - other
      - in: query
        name: fid
        schema:
          type: string
      - in: query
        name: mbid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        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: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageArtistList'
          description: ''
  /api/v1/manage/library/artists/{id}/:
    get:
      operationId: admin_get_artist
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this artist.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageArtist'
          description: ''
    delete:
      operationId: admin_delete_artist
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this artist.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/manage/library/artists/{id}/stats/:
    get:
      operationId: admin_get_library_artist_stats
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this artist.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageArtist'
          description: ''
  /api/v1/manage/library/artists/action/:
    post:
      operationId: admin_create_artist_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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageArtistRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageArtistRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageArtistRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageArtistRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageArtist'
          description: ''
  /api/v1/manage/library/libraries/:
    get:
      operationId: admin_get_libraries
      parameters:
      - in: query
        name: domain
        schema:
          type: string
      - in: query
        name: fid
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: ordering
        schema:
          type: array
          items:
            type: string
            enum:
            - -creation_date
            - -followers_count
            - -uploads_count
            - creation_date
            - followers_count
            - uploads_count
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `uploads_count` - Uploads count
          * `-uploads_count` - Uploads count (descending)
          * `followers_count` - Followers count
          * `-followers_count` - Followers count (descending)
        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: privacy_level
        schema:
          type: string
          enum:
          - everyone
          - instance
          - me
        description: |-
          * `me` - Only me
          * `instance` - Everyone on my instance, and my followers
          * `everyone` - Everyone, including people on other instances
      - in: query
        name: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageLibraryList'
          description: ''
  /api/v1/manage/library/libraries/{uuid}/:
    get:
      operationId: admin_get_library
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageLibrary'
          description: ''
    put:
      operationId: admin_update_library
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageLibrary'
          description: ''
    patch:
      operationId: admin_partial_update_library
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManageLibraryRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManageLibraryRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManageLibraryRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedManageLibraryRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageLibrary'
          description: ''
    delete:
      operationId: admin_delete_library
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/manage/library/libraries/{uuid}/stats/:
    get:
      operationId: admin_get_library_stats
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageLibrary'
          description: ''
  /api/v1/manage/library/libraries/action/:
    post:
      operationId: admin_create_library_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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageLibrary'
          description: ''
  /api/v1/manage/library/tracks/:
    get:
      operationId: admin_get_tracks
      parameters:
      - in: query
        name: album
        schema:
          type: integer
      - in: query
        name: artist_credit
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      - in: query
        name: fid
        schema:
          type: string
      - in: query
        name: license
        schema:
          type: string
      - in: query
        name: mbid
        schema:
          type: string
          format: uuid
      - 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: q
        schema:
          type: string
      - in: query
        name: title
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageTrackList'
          description: ''
  /api/v1/manage/library/tracks/{id}/:
    get:
      operationId: admin_get_track
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this track.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageTrack'
          description: ''
    delete:
      operationId: admin_delete_track
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this track.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/manage/library/tracks/{id}/stats/:
    get:
      operationId: admin_get_track_stats
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this track.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageTrack'
          description: ''
  /api/v1/manage/library/tracks/action/:
    post:
      operationId: admin_create_track_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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageTrackRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageTrackRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageTrackRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageTrackRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageTrack'
          description: ''
  /api/v1/manage/library/uploads/:
    get:
      operationId: admin_get_uploads
      parameters:
      - in: query
        name: domain
        schema:
          type: string
      - in: query
        name: fid
        schema:
          type: string
      - in: query
        name: import_reference
        schema:
          type: string
      - in: query
        name: import_status
        schema:
          type: string
          enum:
          - draft
          - errored
          - finished
          - pending
          - skipped
        description: |-
          * `draft` - Draft
          * `pending` - Pending
          * `finished` - Finished
          * `errored` - Errored
          * `skipped` - Skipped
      - in: query
        name: mimetype
        schema:
          type: string
      - in: query
        name: ordering
        schema:
          type: array
          items:
            type: string
            enum:
            - -accessed_date
            - -bitrate
            - -creation_date
            - -duration
            - -modification_date
            - -size
            - accessed_date
            - bitrate
            - creation_date
            - duration
            - modification_date
            - size
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `modification_date` - Modification date
          * `-modification_date` - Modification date (descending)
          * `accessed_date` - Accessed date
          * `-accessed_date` - Accessed date (descending)
          * `size` - Size
          * `-size` - Size (descending)
          * `bitrate` - Bitrate
          * `-bitrate` - Bitrate (descending)
          * `duration` - Duration
          * `-duration` - Duration (descending)
        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: privacy_level
        schema:
          type: string
      - in: query
        name: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageUploadList'
          description: ''
  /api/v1/manage/library/uploads/{uuid}/:
    get:
      operationId: admin_get_upload
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUpload'
          description: ''
    delete:
      operationId: admin_delete_upload
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/manage/library/uploads/action/:
    post:
      operationId: admin_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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageUploadRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageUploadRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageUploadRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageUploadRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUpload'
          description: ''
  /api/v1/manage/moderation/instance-policies/:
    get:
      operationId: moderation_get_instance_policies
      parameters:
      - in: query
        name: block_all
        schema:
          type: boolean
      - 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: q
        schema:
          type: string
      - in: query
        name: reject_media
        schema:
          type: boolean
      - in: query
        name: silence_activity
        schema:
          type: boolean
      - in: query
        name: silence_notifications
        schema:
          type: boolean
      - in: query
        name: target_account_domain
        schema:
          type: string
      - in: query
        name: target_account_username
        schema:
          type: string
      - in: query
        name: target_domain
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageInstancePolicyList'
          description: ''
    post:
      operationId: moderation_create_instance_policy
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInstancePolicy'
          description: ''
  /api/v1/manage/moderation/instance-policies/{id}/:
    get:
      operationId: moderation_get_instance_policy
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this instance policy.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInstancePolicy'
          description: ''
    put:
      operationId: moderation_update_instance_policy
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this instance policy.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInstancePolicy'
          description: ''
    patch:
      operationId: moderation_partial_update_instance_policy
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this instance policy.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManageInstancePolicyRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManageInstancePolicyRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManageInstancePolicyRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedManageInstancePolicyRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInstancePolicy'
          description: ''
    delete:
      operationId: moderation_delete_instance_policy
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this instance policy.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/manage/moderation/notes/:
    get:
      operationId: moderation_get_notes
      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
      - in: query
        name: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageNoteList'
          description: ''
    post:
      operationId: moderation_create_note
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageNoteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageNoteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageNoteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageNoteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageNote'
          description: ''
  /api/v1/manage/moderation/notes/{uuid}/:
    get:
      operationId: moderation_get_note
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageNote'
          description: ''
    delete:
      operationId: moderation_delete_note
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/manage/moderation/reports/:
    get:
      operationId: moderation_get_reports
      parameters:
      - in: query
        name: is_handled
        schema:
          type: boolean
      - 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: q
        schema:
          type: string
      - in: query
        name: submitter_email
        schema:
          type: string
      - in: query
        name: type
        schema:
          type: string
          enum:
          - illegal_content
          - invalid_metadata
          - offensive_content
          - other
          - takedown_request
        description: |-
          * `takedown_request` - Takedown request
          * `invalid_metadata` - Invalid metadata
          * `illegal_content` - Illegal content
          * `offensive_content` - Offensive content
          * `other` - Other
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageReportList'
          description: ''
  /api/v1/manage/moderation/reports/{uuid}/:
    get:
      operationId: moderation_get_report
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageReport'
          description: ''
    put:
      operationId: moderation_update_report
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageReportRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageReportRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageReportRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageReportRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageReport'
          description: ''
    patch:
      operationId: moderation_partial_update_report
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManageReportRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManageReportRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManageReportRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedManageReportRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageReport'
          description: ''
  /api/v1/manage/moderation/requests/:
    get:
      operationId: moderation_get_requests
      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
      - in: query
        name: q
        schema:
          type: string
      - in: query
        name: status
        schema:
          type: string
          enum:
          - approved
          - pending
          - refused
        description: |-
          * `pending` - Pending
          * `refused` - Refused
          * `approved` - Approved
      - in: query
        name: type
        schema:
          type: string
          enum:
          - signup
        description: '* `signup` - Sign-up'
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageUserRequestList'
          description: ''
  /api/v1/manage/moderation/requests/{uuid}/:
    get:
      operationId: moderation_get_request
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUserRequest'
          description: ''
    put:
      operationId: moderation_update_request
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageUserRequestRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageUserRequestRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageUserRequestRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageUserRequestRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUserRequest'
          description: ''
    patch:
      operationId: moderation_partial_update_request
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequestRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequestRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequestRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequestRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUserRequest'
          description: ''
  /api/v1/manage/tags/:
    get:
      operationId: admin_get_tags
      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
      - in: query
        name: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageTagList'
          description: ''
    post:
      operationId: admin_create_tag
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageTag'
          description: ''
  /api/v1/manage/tags/{name}/:
    get:
      operationId: admin_get_tag
      parameters:
      - in: path
        name: name
        schema:
          type: string
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageTag'
          description: ''
    delete:
      operationId: admin_delete_tag
      parameters:
      - in: path
        name: name
        schema:
          type: string
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/manage/tags/action/:
    post:
      operationId: admin_create_tag_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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageTag'
          description: ''
  /api/v1/manage/users/invitations/:
    get:
      operationId: admin_get_invitations
      parameters:
      - in: query
        name: is_open
        schema:
          type: boolean
      - 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: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageInvitationList'
          description: ''
    post:
      operationId: admin_create_invitation
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInvitation'
          description: ''
  /api/v1/manage/users/invitations/{id}/:
    get:
      operationId: admin_get_invitation
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this invitation.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInvitation'
          description: ''
    put:
      operationId: admin_update_invitation
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this invitation.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInvitation'
          description: ''
    patch:
      operationId: admin_partial_update_invitation
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this invitation.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManageInvitationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManageInvitationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManageInvitationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedManageInvitationRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInvitation'
          description: ''
  /api/v1/manage/users/invitations/action/:
    post:
      operationId: admin_create_invitation_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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInvitation'
          description: ''
  /api/v1/manage/users/users/:
    get:
      operationId: admin_get_users
      parameters:
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: is_staff
        schema:
          type: boolean
      - in: query
        name: is_superuser
        schema:
          type: boolean
      - 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: permission_library
        schema:
          type: boolean
      - in: query
        name: permission_moderation
        schema:
          type: boolean
      - in: query
        name: permission_settings
        schema:
          type: boolean
      - in: query
        name: privacy_level
        schema:
          type: string
          enum:
          - everyone
          - followers
          - instance
          - me
        description: |-
          * `me` - Only me
          * `followers` - Me and my followers
          * `instance` - Everyone on my instance, and my followers
          * `everyone` - Everyone, including people on other instances
      - in: query
        name: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageUserList'
          description: ''
  /api/v1/manage/users/users/{id}/:
    get:
      operationId: admin_get_user
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUser'
          description: ''
    put:
      operationId: admin_update_user
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageUserRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageUserRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageUserRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageUserRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUser'
          description: ''
    patch:
      operationId: admin_partial_update_user
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUser'
          description: ''
  /api/v1/moderation/content-filters/:
    get:
      operationId: get_moderation_content_filters
      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:
      - moderation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedUserFilterList'
          description: ''
    post:
      operationId: create_moderation_content_filter
      tags:
      - moderation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserFilterRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserFilterRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserFilterRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserFilterRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserFilter'
          description: ''
  /api/v1/moderation/content-filters/{uuid}/:
    get:
      operationId: get_moderation_content_filter
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - moderation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserFilter'
          description: ''
    delete:
      operationId: delete_moderation_content_filter
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - moderation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/moderation/reports/:
    post:
      operationId: create_moderation_report
      tags:
      - moderation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReportRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReportRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ReportRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Report'
          description: ''
  /api/v1/mutations/:
    get:
      operationId: get_mutations
      parameters:
      - in: query
        name: is_applied
        schema:
          type: boolean
      - in: query
        name: is_approved
        schema:
          type: boolean
      - 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: q
        schema:
          type: string
      - in: query
        name: type
        schema:
          type: string
      tags:
      - mutations
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAPIMutationList'
          description: ''
  /api/v1/mutations/{uuid}/:
    get:
      operationId: get_mutation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - mutations
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMutation'
          description: ''
    delete:
      operationId: delete_mutation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - mutations
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/mutations/{uuid}/approve/:
    post:
      operationId: approve_mutation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - mutations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMutation'
          description: ''
  /api/v1/mutations/{uuid}/reject/:
    post:
      operationId: reject_mutation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - mutations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMutation'
          description: ''
  /api/v1/oauth/apps/:
    get:
      operationId: get_oauth_apps
      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:
      - oauth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedApplicationList'
          description: ''
    post:
      operationId: create_oauth_app
      tags:
      - oauth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateApplication'
          description: ''
  /api/v1/oauth/apps/{client_id}/:
    get:
      operationId: get_oauth_app
      parameters:
      - in: path
        name: client_id
        schema:
          type: string
        required: true
      tags:
      - oauth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
          description: ''
    put:
      operationId: update_oauth_app
      parameters:
      - in: path
        name: client_id
        schema:
          type: string
        required: true
      tags:
      - oauth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ApplicationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ApplicationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ApplicationRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
          description: ''
    patch:
      operationId: partial_update_oauth_app
      parameters:
      - in: path
        name: client_id
        schema:
          type: string
        required: true
      tags:
      - oauth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedApplicationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedApplicationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedApplicationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedApplicationRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
          description: ''
    delete:
      operationId: delete_oauth_app
      parameters:
      - in: path
        name: client_id
        schema:
          type: string
        required: true
      tags:
      - oauth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/oauth/apps/{client_id}/refresh-token/:
    post:
      operationId: refresh_oauth_token
      parameters:
      - in: path
        name: client_id
        schema:
          type: string
        required: true
      tags:
      - oauth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateApplication'
          description: ''
  /api/v1/oauth/grants/:
    get:
      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.
      parameters:
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      tags:
      - oauth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Application'
          description: ''
  /api/v1/oauth/grants/{client_id}/:
    get:
      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.
      parameters:
      - in: path
        name: client_id
        schema:
          type: string
        required: true
      tags:
      - oauth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
          description: ''
    delete:
      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.
      parameters:
      - in: path
        name: client_id
        schema:
          type: string
        required: true
      tags:
      - oauth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/oembed/:
    get:
      operationId: get_oembed
      tags:
      - oembed
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Oembed'
          description: ''
  /api/v1/playlists/:
    get:
      operationId: get_playlists
      parameters:
      - in: query
        name: album
        schema:
          type: integer
      - in: query
        name: artist
        schema:
          type: integer
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - 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:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPlaylistList'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/PaginatedPlaylistList'
          description: ''
    post:
      operationId: create_playlist
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      tags:
      - playlists
      requestBody:
        content:
          application/octet-stream:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
  /api/v1/playlists/{uuid}/:
    get:
      operationId: get_playlist
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
    put:
      operationId: update_playlist
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      requestBody:
        content:
          application/octet-stream:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
    patch:
      operationId: partial_update_playlist
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      requestBody:
        content:
          application/octet-stream:
            schema:
              $ref: '#/components/schemas/PatchedPlaylistRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPlaylistRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPlaylistRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPlaylistRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
    delete:
      operationId: delete_playlist
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/playlists/{uuid}/add/:
    post:
      operationId: add_to_playlist
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      requestBody:
        content:
          application/octet-stream:
            schema:
              $ref: '#/components/schemas/PlaylistAddManyRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PlaylistAddManyRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PlaylistAddManyRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PlaylistAddManyRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
  /api/v1/playlists/{uuid}/albums/:
    get:
      operationId: get_playlist_albums
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
  /api/v1/playlists/{uuid}/artists/:
    get:
      operationId: get_playlist_artists
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
  /api/v1/playlists/{uuid}/clear/:
    delete:
      operationId: clear_playlist
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/playlists/{uuid}/move/:
    post:
      operationId: reorder_track_in_playlist
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      requestBody:
        content:
          application/octet-stream:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
  /api/v1/playlists/{uuid}/remove/:
    post:
      operationId: remove_from_playlist_2
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      requestBody:
        content:
          application/octet-stream:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
    delete:
      operationId: remove_from_playlist
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/playlists/{uuid}/tracks/:
    get:
      operationId: get_playlist_tracks
      parameters:
      - in: query
        name: album
        schema:
          type: integer
      - in: query
        name: artist
        schema:
          type: integer
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - 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
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPlaylistTrackList'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/PaginatedPlaylistTrackList'
          description: ''
  /api/v1/plugins/:
    get:
      operationId: get_plugins
      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:
      - plugins
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
    post:
      operationId: create_plugin
      tags:
      - plugins
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          description: No response body
  /api/v1/plugins/{id}/:
    get:
      operationId: get_plugin
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this plugin configuration.
        required: true
      tags:
      - plugins
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v1/plugins/{id}/disable/:
    post:
      operationId: disable_plugin
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this plugin configuration.
        required: true
      tags:
      - plugins
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v1/plugins/{id}/enable/:
    post:
      operationId: enable_plugin
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this plugin configuration.
        required: true
      tags:
      - plugins
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v1/plugins/{id}/scan/:
    post:
      operationId: create_plugin_scan
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this plugin configuration.
        required: true
      tags:
      - plugins
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v1/radios/radios/:
    get:
      operationId: get_radios
      parameters:
      - 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
      - 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: q
        schema:
          type: string
      - in: query
        name: scope
        schema:
          type: string
      tags:
      - radios
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedRadioList'
          description: ''
    post:
      operationId: create_radio
      tags:
      - radios
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/RadioRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Radio'
          description: ''
  /api/v1/radios/radios/{id}/:
    get:
      operationId: get_radio
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this radio.
        required: true
      tags:
      - radios
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Radio'
          description: ''
    put:
      operationId: update_radio
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this radio.
        required: true
      tags:
      - radios
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/RadioRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Radio'
          description: ''
    patch:
      operationId: partial_update_radio
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this radio.
        required: true
      tags:
      - radios
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRadioRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedRadioRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedRadioRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedRadioRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Radio'
          description: ''
    delete:
      operationId: delete_radio
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this radio.
        required: true
      tags:
      - radios
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/radios/radios/{id}/tracks/:
    get:
      operationId: get_radio_track
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this radio.
        required: true
      tags:
      - radios
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Track'
          description: ''
  /api/v1/radios/radios/filters/:
    get:
      operationId: get_radio_filter
      tags:
      - radios
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Filter'
          description: ''
  /api/v1/radios/radios/validate/:
    post:
      operationId: validate_radio
      tags:
      - radios
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/RadioRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Radio'
          description: ''
  /api/v1/radios/sessions/:
    post:
      operationId: create_radio_session
      tags:
      - radios
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RadioSessionRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RadioSessionRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RadioSessionRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/RadioSessionRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RadioSession'
          description: ''
  /api/v1/radios/sessions/{id}/:
    get:
      operationId: get_radio_session
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this radio session.
        required: true
      tags:
      - radios
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RadioSession'
          description: ''
  /api/v1/radios/tracks/:
    post:
      operationId: get_next_radio_track
      tags:
      - radios
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest'
        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':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResult'
          description: ''
  /api/v1/stream/{uuid}/:
    get:
      operationId: get_track_stream
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - stream
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            audio/mpeg:
              schema:
                type: string
                format: binary
          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/AllSubscriptions'
          description: ''
  /api/v1/tags/:
    get:
      operationId: get_tags
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: ordering
        schema:
          type: array
          items:
            type: string
            enum:
            - -creation_date
            - -length
            - -name
            - creation_date
            - length
            - name
        description: |-
          Ordering

          * `name` - Name
          * `-name` - Name (descending)
          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `length` - Length
          * `-length` - Length (descending)
        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:
      - tags
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTagList'
          description: ''
  /api/v1/tags/{name}/:
    get:
      operationId: get_tag
      parameters:
      - in: path
        name: name
        schema:
          type: string
        required: true
      tags:
      - tags
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tag'
          description: ''
  /api/v1/text-preview/:
    post:
      operationId: preview_text
      tags:
      - text-preview
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TextPreviewRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TextPreviewRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TextPreviewRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/TextPreviewRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TextPreview'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetail'
          description: ''
  /api/v1/tracks/:
    get:
      operationId: get_tracks
      description: A simple ViewSet for viewing and editing accounts.
      parameters:
      - in: query
        name: album
        schema:
          type: integer
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: format
        schema:
          type: string
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - 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_credit__artist__modification_date
            - -artist_credit__artist__name
            - -creation_date
            - -disc_number
            - -position
            - -random
            - -related
            - -size
            - -title
            - album__release_date
            - album__title
            - artist_credit__artist__modification_date
            - artist_credit__artist__name
            - creation_date
            - disc_number
            - position
            - random
            - related
            - size
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `album__title` - Album  title
          * `-album__title` - Album  title (descending)
          * `album__release_date` - Album  release date
          * `-album__release_date` - Album  release date (descending)
          * `size` - Size
          * `-size` - Size (descending)
          * `position` - Position
          * `-position` - Position (descending)
          * `disc_number` - Disc number
          * `-disc_number` - Disc number (descending)
          * `artist_credit__artist__name` - Artist credit  artist  name
          * `-artist_credit__artist__name` - Artist credit  artist  name (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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: quality
        schema:
          type: integer
          enum:
          - 0
          - 1
          - 2
          - 3
        description: |-
          * `0` - low
          * `1` - medium
          * `2` - high
          * `3` - very_high
      - 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:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTrackList'
          description: ''
  /api/v1/tracks/{id}/:
    get:
      operationId: get_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:
      - tracks
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Track'
          description: ''
    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:
      - tracks
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/tracks/{id}/fetches/:
    get:
      operationId: get_track_fetches
      description: A simple ViewSet for viewing and editing accounts.
      parameters:
      - in: query
        name: album
        schema:
          type: integer
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: format
        schema:
          type: string
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - 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:
          type: array
          items:
            type: string
            enum:
            - -album__release_date
            - -album__title
            - -artist_credit__artist__modification_date
            - -artist_credit__artist__name
            - -creation_date
            - -disc_number
            - -position
            - -random
            - -related
            - -size
            - -title
            - album__release_date
            - album__title
            - artist_credit__artist__modification_date
            - artist_credit__artist__name
            - creation_date
            - disc_number
            - position
            - random
            - related
            - size
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `album__title` - Album  title
          * `-album__title` - Album  title (descending)
          * `album__release_date` - Album  release date
          * `-album__release_date` - Album  release date (descending)
          * `size` - Size
          * `-size` - Size (descending)
          * `position` - Position
          * `-position` - Position (descending)
          * `disc_number` - Disc number
          * `-disc_number` - Disc number (descending)
          * `artist_credit__artist__name` - Artist credit  artist  name
          * `-artist_credit__artist__name` - Artist credit  artist  name (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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: quality
        schema:
          type: integer
          enum:
          - 0
          - 1
          - 2
          - 3
        description: |-
          * `0` - low
          * `1` - medium
          * `2` - high
          * `3` - very_high
      - 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:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedFetchList'
          description: ''
    post:
      operationId: create_track_fetch
      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:
      - tracks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrackRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TrackRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TrackRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/TrackRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fetch'
          description: ''
  /api/v1/tracks/{id}/libraries/:
    get:
      operationId: get_track_libraries
      description: A simple ViewSet for viewing and editing accounts.
      parameters:
      - in: query
        name: album
        schema:
          type: integer
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: format
        schema:
          type: string
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - 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:
          type: array
          items:
            type: string
            enum:
            - -album__release_date
            - -album__title
            - -artist_credit__artist__modification_date
            - -artist_credit__artist__name
            - -creation_date
            - -disc_number
            - -position
            - -random
            - -related
            - -size
            - -title
            - album__release_date
            - album__title
            - artist_credit__artist__modification_date
            - artist_credit__artist__name
            - creation_date
            - disc_number
            - position
            - random
            - related
            - size
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `album__title` - Album  title
          * `-album__title` - Album  title (descending)
          * `album__release_date` - Album  release date
          * `-album__release_date` - Album  release date (descending)
          * `size` - Size
          * `-size` - Size (descending)
          * `position` - Position
          * `-position` - Position (descending)
          * `disc_number` - Disc number
          * `-disc_number` - Disc number (descending)
          * `artist_credit__artist__name` - Artist credit  artist  name
          * `-artist_credit__artist__name` - Artist credit  artist  name (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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: quality
        schema:
          type: integer
          enum:
          - 0
          - 1
          - 2
          - 3
        description: |-
          * `0` - low
          * `1` - medium
          * `2` - high
          * `3` - very_high
      - 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:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLibraryList'
          description: ''
  /api/v1/tracks/{id}/mutations/:
    get:
      operationId: get_track_mutations
      description: A simple ViewSet for viewing and editing accounts.
      parameters:
      - in: query
        name: album
        schema:
          type: integer
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: format
        schema:
          type: string
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - 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:
          type: array
          items:
            type: string
            enum:
            - -album__release_date
            - -album__title
            - -artist_credit__artist__modification_date
            - -artist_credit__artist__name
            - -creation_date
            - -disc_number
            - -position
            - -random
            - -related
            - -size
            - -title
            - album__release_date
            - album__title
            - artist_credit__artist__modification_date
            - artist_credit__artist__name
            - creation_date
            - disc_number
            - position
            - random
            - related
            - size
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `album__title` - Album  title
          * `-album__title` - Album  title (descending)
          * `album__release_date` - Album  release date
          * `-album__release_date` - Album  release date (descending)
          * `size` - Size
          * `-size` - Size (descending)
          * `position` - Position
          * `-position` - Position (descending)
          * `disc_number` - Disc number
          * `-disc_number` - Disc number (descending)
          * `artist_credit__artist__name` - Artist credit  artist  name
          * `-artist_credit__artist__name` - Artist credit  artist  name (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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: quality
        schema:
          type: integer
          enum:
          - 0
          - 1
          - 2
          - 3
        description: |-
          * `0` - low
          * `1` - medium
          * `2` - high
          * `3` - very_high
      - 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:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAPIMutationList'
          description: ''
    post:
      operationId: create_track_mutation
      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:
      - tracks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrackRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TrackRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TrackRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/TrackRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMutation'
          description: ''
  /api/v1/uploads/:
    get:
      operationId: get_uploads
      parameters:
      - in: query
        name: album_artist
        schema:
          type: string
          format: uuid
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: import_reference
        schema:
          type: string
      - in: query
        name: import_status
        schema:
          type: array
          items:
            type: string
            enum:
            - draft
            - errored
            - finished
            - pending
            - skipped
        description: |-
          * `draft` - Draft
          * `pending` - Pending
          * `finished` - Finished
          * `errored` - Errored
          * `skipped` - Skipped
        explode: true
        style: form
      - in: query
        name: include_channels
        schema:
          type: boolean
      - in: query
        name: library
        schema:
          type: string
          format: uuid
      - in: query
        name: mimetype
        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: string
          format: uuid
      - in: query
        name: track_artist
        schema:
          type: string
          format: uuid
      tags:
      - uploads
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedUploadForOwnerList'
          description: ''
    post:
      operationId: create_upload
      tags:
      - uploads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadForOwner'
          description: ''
  /api/v1/uploads/{uuid}/:
    get:
      operationId: get_upload
      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: update_upload
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - uploads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadForOwner'
          description: ''
    patch:
      operationId: partial_update_upload
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - uploads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUploadForOwnerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUploadForOwnerRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUploadForOwnerRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedUploadForOwnerRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadForOwner'
          description: ''
    delete:
      operationId: delete_upload
      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: get_upload_metadata
      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/TrackMetadata'
          description: ''
  /api/v1/uploads/action/:
    post:
      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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - uploads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadForOwner'
          description: ''
  /api/v1/uploads/bulk_update/:
    patch:
      operationId: partial_update_upload_bulk_update
      description: Used to move an upload from one library to another. Receive a upload
        uuid and a privacy_level
      tags:
      - uploads
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UploadBulkUpdateRequest'
          application/x-www-form-urlencoded:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UploadBulkUpdateRequest'
          multipart/form-data:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UploadBulkUpdateRequest'
          application/activity+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UploadBulkUpdateRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadForOwner'
          description: ''
  /api/v1/users/{username}/:
    put:
      operationId: update_user
      parameters:
      - in: path
        name: username
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_.]+$
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
    patch:
      operationId: partial_update_user
      parameters:
      - in: path
        name: username
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_.]+$
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUserWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUserWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedUserWriteRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
  /api/v1/users/{username}/subsonic-token/:
    get:
      operationId: get_user_subsonic_token
      parameters:
      - in: path
        name: username
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_.]+$
        required: true
      tags:
      - users
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
    post:
      operationId: create_user_subsonic_token
      parameters:
      - in: path
        name: username
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_.]+$
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
    delete:
      operationId: delete_user_subsonic_token
      parameters:
      - in: path
        name: username
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_.]+$
        required: true
      tags:
      - users
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v1/users/change-email/:
    post:
      operationId: change_email
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
        '403':
          description: No response body
  /api/v1/users/me/:
    get:
      operationId: get_authenticated_user
      description: Return information about the current user or delete it
      tags:
      - users
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
    delete:
      operationId: delete_authenticated_user
      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/:
    post:
      operationId: update_settings
      description: Return information about the current user or delete it
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
  /api/v2/activity/:
    get:
      operationId: get_activity_2
      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:
      - activity
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v2/albums/:
    get:
      operationId: get_albums_2
      parameters:
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: artist_credit
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: content_category
        schema:
          type: string
      - in: query
        name: has_cover
        schema:
          type: boolean
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - in: query
        name: has_release_date
        schema:
          type: boolean
      - in: query
        name: has_tags
        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: ordering
        schema:
          type: array
          items:
            type: string
            enum:
            - -artist_credit__artist__modification_date
            - -creation_date
            - -random
            - -related
            - -release_date
            - -title
            - artist_credit__artist__modification_date
            - creation_date
            - random
            - related
            - release_date
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `release_date` - Release date
          * `-release_date` - Release date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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/PaginatedAlbumList'
          description: ''
    post:
      operationId: create_album_2
      tags:
      - albums
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AlbumCreateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AlbumCreateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AlbumCreateRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/AlbumCreateRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlbumCreate'
          description: ''
  /api/v2/albums/{id}/:
    get:
      operationId: get_album_2
      parameters:
      - in: path
        name: id
        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: ''
    delete:
      operationId: delete_album_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this album.
        required: true
      tags:
      - albums
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/albums/{id}/fetches/:
    get:
      operationId: get_album_fetches_2
      parameters:
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: artist_credit
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: content_category
        schema:
          type: string
      - in: query
        name: has_cover
        schema:
          type: boolean
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - in: query
        name: has_release_date
        schema:
          type: boolean
      - in: query
        name: has_tags
        schema:
          type: boolean
      - 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:
          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_credit__artist__modification_date
            - -creation_date
            - -random
            - -related
            - -release_date
            - -title
            - artist_credit__artist__modification_date
            - creation_date
            - random
            - related
            - release_date
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `release_date` - Release date
          * `-release_date` - Release date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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/PaginatedFetchList'
          description: ''
    post:
      operationId: create_album_fetch_2
      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/AlbumRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AlbumRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AlbumRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/AlbumRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fetch'
          description: ''
  /api/v2/albums/{id}/libraries/:
    get:
      operationId: get_album_libraries_2
      parameters:
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: artist_credit
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: content_category
        schema:
          type: string
      - in: query
        name: has_cover
        schema:
          type: boolean
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - in: query
        name: has_release_date
        schema:
          type: boolean
      - in: query
        name: has_tags
        schema:
          type: boolean
      - 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:
          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_credit__artist__modification_date
            - -creation_date
            - -random
            - -related
            - -release_date
            - -title
            - artist_credit__artist__modification_date
            - creation_date
            - random
            - related
            - release_date
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `release_date` - Release date
          * `-release_date` - Release date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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/PaginatedLibraryList'
          description: ''
  /api/v2/albums/{id}/mutations/:
    get:
      operationId: get_album_mutations_2
      parameters:
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: artist_credit
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: content_category
        schema:
          type: string
      - in: query
        name: has_cover
        schema:
          type: boolean
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - in: query
        name: has_release_date
        schema:
          type: boolean
      - in: query
        name: has_tags
        schema:
          type: boolean
      - 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:
          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_credit__artist__modification_date
            - -creation_date
            - -random
            - -related
            - -release_date
            - -title
            - artist_credit__artist__modification_date
            - creation_date
            - random
            - related
            - release_date
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `release_date` - Release date
          * `-release_date` - Release date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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_2
      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/AlbumRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AlbumRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AlbumRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/AlbumRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMutation'
          description: ''
  /api/v2/artists/:
    get:
      operationId: get_artists_2
      parameters:
      - in: query
        name: content_category
        schema:
          type: string
      - in: query
        name: has_albums
        schema:
          type: boolean
      - in: query
        name: has_mbid
        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

          * `id` - Id
          * `-id` - Id (descending)
          * `name` - Name
          * `-name` - Name (descending)
          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `modification_date` - Modification date
          * `-modification_date` - Modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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/v2/artists/{id}/:
    get:
      operationId: get_artist_2
      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/v2/artists/{id}/fetches/:
    get:
      operationId: get_artist_fetches_2
      parameters:
      - in: query
        name: content_category
        schema:
          type: string
      - in: query
        name: has_albums
        schema:
          type: boolean
      - in: query
        name: has_mbid
        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

          * `id` - Id
          * `-id` - Id (descending)
          * `name` - Name
          * `-name` - Name (descending)
          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `modification_date` - Modification date
          * `-modification_date` - Modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this artist.
        required: true
      tags:
      - artists
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fetch'
          description: ''
  /api/v2/artists/{id}/libraries/:
    get:
      operationId: get_artist_libraries_2
      parameters:
      - in: query
        name: content_category
        schema:
          type: string
      - in: query
        name: has_albums
        schema:
          type: boolean
      - in: query
        name: has_mbid
        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

          * `id` - Id
          * `-id` - Id (descending)
          * `name` - Name
          * `-name` - Name (descending)
          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `modification_date` - Modification date
          * `-modification_date` - Modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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/PaginatedLibraryList'
          description: ''
  /api/v2/artists/{id}/mutations/:
    get:
      operationId: get_artist_mutations_2
      parameters:
      - in: query
        name: content_category
        schema:
          type: string
      - in: query
        name: has_albums
        schema:
          type: boolean
      - in: query
        name: has_mbid
        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

          * `id` - Id
          * `-id` - Id (descending)
          * `name` - Name
          * `-name` - Name (descending)
          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `modification_date` - Modification date
          * `-modification_date` - Modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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/PaginatedAPIMutationList'
          description: ''
    post:
      operationId: create_artist_mutation_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this artist.
        required: true
      tags:
      - artists
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ArtistWithAlbumsRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMutation'
          description: ''
  /api/v2/attachments/:
    post:
      operationId: create_attachment_2
      tags:
      - attachments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachmentRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AttachmentRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AttachmentRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/AttachmentRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
          description: ''
  /api/v2/attachments/{uuid}/:
    get:
      operationId: get_attachment_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - attachments
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
          description: ''
    delete:
      operationId: delete_attachment_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - attachments
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/attachments/{uuid}/proxy/:
    get:
      operationId: get_attachment_proxy_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - attachments
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
          description: ''
  /api/v2/auth/password/change/:
    post:
      operationId: change_password_3
      description: The type of the None singleton.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordChange'
          description: ''
  /api/v2/auth/password/reset/:
    post:
      operationId: reset_password_2
      description: The type of the None singleton.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordResetRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PasswordResetRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PasswordResetRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PasswordResetRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordReset'
          description: ''
  /api/v2/auth/password/reset/confirm/:
    post:
      operationId: confirm_password_reset_2
      description: The type of the None singleton.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordResetConfirmRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PasswordResetConfirmRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PasswordResetConfirmRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PasswordResetConfirmRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordResetConfirm'
          description: ''
  /api/v2/auth/registration/:
    post:
      operationId: register_2
      description: The type of the None singleton.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RegisterRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RegisterRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/RegisterRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Register'
          description: ''
  /api/v2/auth/registration/change-password/:
    post:
      operationId: change_password_4
      description: The type of the None singleton.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordChange'
          description: ''
  /api/v2/auth/registration/verify-email/:
    post:
      operationId: verify_email_2
      description: The type of the None singleton.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyEmailRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/VerifyEmailRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/VerifyEmailRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/VerifyEmailRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      - {}
      responses:
        '200':
          description: No response body
  /api/v2/auth/user/:
    get:
      operationId: get_auth_user_2
      description: |-
        Reads and updates UserModel fields
        Accepts GET, PUT, PATCH methods.

        Default accepted fields: username, first_name, last_name
        Default display fields: pk, username, email, first_name, last_name
        Read-only fields: pk, email

        Returns UserModel fields.
      tags:
      - auth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDetails'
          description: ''
    put:
      operationId: update_auth_user_2
      description: |-
        Reads and updates UserModel fields
        Accepts GET, PUT, PATCH methods.

        Default accepted fields: username, first_name, last_name
        Default display fields: pk, username, email, first_name, last_name
        Read-only fields: pk, email

        Returns UserModel fields.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserDetailsRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserDetailsRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserDetailsRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserDetailsRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDetails'
          description: ''
    patch:
      operationId: partial_update_auth_user_2
      description: |-
        Reads and updates UserModel fields
        Accepts GET, PUT, PATCH methods.

        Default accepted fields: username, first_name, last_name
        Default display fields: pk, username, email, first_name, last_name
        Read-only fields: pk, email

        Returns UserModel fields.
      tags:
      - auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserDetailsRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUserDetailsRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUserDetailsRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedUserDetailsRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDetails'
          description: ''
  /api/v2/channels/:
    get:
      operationId: get_channels_2
      parameters:
      - in: query
        name: external
        schema:
          type: boolean
      - in: query
        name: hidden
        schema:
          type: boolean
      - in: query
        name: ordering
        schema:
          type: array
          items:
            type: string
            enum:
            - -creation_date
            - -modification_date
            - -random
            - creation_date
            - modification_date
            - random
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `modification_date` - Modification date
          * `-modification_date` - Modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
        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
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: subscribed
        schema:
          type: boolean
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
        explode: true
        style: form
      tags:
      - channels
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedChannelList'
          description: ''
    post:
      operationId: create_channel_2
      tags:
      - channels
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelCreateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChannelCreateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChannelCreateRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ChannelCreateRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelCreate'
          description: ''
  /api/v2/channels/{composite}/:
    get:
      operationId: get_channel_2
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Channel'
          description: ''
    put:
      operationId: update_channel_2
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelUpdateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChannelUpdateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChannelUpdateRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ChannelUpdateRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelUpdate'
          description: ''
    patch:
      operationId: partial_update_channel_2
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedChannelUpdateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedChannelUpdateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedChannelUpdateRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedChannelUpdateRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelUpdate'
          description: ''
    delete:
      operationId: delete_channel_2
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/channels/{composite}/rss/:
    get:
      operationId: get_channel_rss_2
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Channel'
          description: ''
  /api/v2/channels/{composite}/subscribe/:
    post:
      operationId: subscribe_channel_2
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Channel'
          description: ''
  /api/v2/channels/{composite}/unsubscribe/:
    post:
      operationId: unsubscribe_channel_4
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
    delete:
      operationId: unsubscribe_channel_3
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - channels
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/channels/metadata-choices/:
    get:
      operationId: get_channel_metadata_choices_2
      tags:
      - channels
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetedataChoices'
          description: ''
  /api/v2/channels/rss-subscribe/:
    post:
      operationId: subscribe_channel_rss_2
      tags:
      - channels
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ChannelRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Channel'
          description: ''
  /api/v2/favorites/tracks/:
    get:
      operationId: get_favorite_tracks_2
      parameters:
      - in: query
        name: hidden
        schema:
          type: boolean
      - 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: q
        schema:
          type: string
      - in: query
        name: scope
        schema:
          type: string
      tags:
      - favorites
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedUserTrackFavoriteList'
          description: ''
    post:
      operationId: favorite_track_2
      tags:
      - favorites
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserTrackFavoriteWrite'
          description: ''
  /api/v2/favorites/tracks/{id}/:
    delete:
      operationId: delete_favorite_track_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this track favorite.
        required: true
      tags:
      - favorites
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/favorites/tracks/all/:
    get:
      operationId: get_all_favorite_tracks_2
      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
        favorites status in the UI
      tags:
      - favorites
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllFavorite'
          description: ''
  /api/v2/favorites/tracks/remove/:
    post:
      operationId: unfavorite_track_4
      tags:
      - favorites
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserTrackFavoriteWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserTrackFavoriteWrite'
          description: ''
    delete:
      operationId: unfavorite_track_3
      tags:
      - favorites
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/federation/actors/{full_username}/:
    get:
      operationId: get_federation_actor_2
      parameters:
      - in: path
        name: full_username
        schema:
          type: string
          pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FullActor'
          description: ''
  /api/v2/federation/actors/{full_username}/libraries/:
    get:
      operationId: get_federation_actor_library_2
      parameters:
      - in: path
        name: full_username
        schema:
          type: string
          pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryForOwner'
          description: ''
  /api/v2/federation/domains/:
    get:
      operationId: get_federation_domains_2
      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:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDomainList'
          description: ''
  /api/v2/federation/domains/{name}/:
    get:
      operationId: get_federation_domain_2
      parameters:
      - in: path
        name: name
        schema:
          type: string
        description: A unique value identifying this domain.
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Domain'
          description: ''
  /api/v2/federation/fetches/:
    post:
      operationId: create_federation_fetch_2
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FetchRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/FetchRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FetchRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/FetchRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fetch'
          description: ''
  /api/v2/federation/fetches/{id}/:
    get:
      operationId: get_federation_fetch_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this fetch.
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fetch'
          description: ''
  /api/v2/federation/follows/library/:
    get:
      operationId: get_federation_library_follows_2
      parameters:
      - in: query
        name: approved
        schema:
          type: boolean
      - 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:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLibraryFollowList'
          description: ''
    post:
      operationId: create_federation_library_follow_2
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryFollow'
          description: ''
  /api/v2/federation/follows/library/{uuid}/:
    get:
      operationId: get_federation_library_follow_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryFollow'
          description: ''
    delete:
      operationId: delete_federation_library_follow_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/federation/follows/library/{uuid}/accept/:
    post:
      operationId: accept_federation_library_follow_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '404':
          description: No response body
        '204':
          description: No response body
  /api/v2/federation/follows/library/{uuid}/reject/:
    post:
      operationId: reject_federation_library_follow_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/LibraryFollowRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryFollow'
          description: ''
  /api/v2/federation/follows/library/all/:
    get:
      operationId: get_all_federation_library_follows_3
      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:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryFollow'
          description: ''
  /api/v2/federation/follows/user/:
    get:
      operationId: get_federation_received_follows_2
      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:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedFollowList'
          description: ''
    post:
      operationId: create_federation_user_follow_2
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/FollowRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Follow'
          description: ''
  /api/v2/federation/follows/user/{uuid}/:
    get:
      operationId: get_federation_user_follow_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Follow'
          description: ''
    delete:
      operationId: delete_federation_user_follow_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/federation/follows/user/{uuid}/accept/:
    post:
      operationId: accept_federation_user_follow_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/FollowRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '404':
          description: No response body
        '204':
          description: No response body
  /api/v2/federation/follows/user/{uuid}/reject/:
    post:
      operationId: reject_federation_user_follow_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FollowRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/FollowRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Follow'
          description: ''
  /api/v2/federation/follows/user/all/:
    get:
      operationId: get_all_federation_library_follows_4
      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:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Follow'
          description: ''
  /api/v2/federation/inbox/:
    get:
      operationId: get_federation_inboxes_2
      parameters:
      - in: query
        name: activity__actor
        schema:
          type: integer
      - in: query
        name: activity__type
        schema:
          type: string
      - in: query
        name: before
        schema:
          type: number
      - in: query
        name: is_read
        schema:
          type: boolean
      - 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:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedInboxItemList'
          description: ''
  /api/v2/federation/inbox/{id}/:
    get:
      operationId: get_federation_inbox_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this inbox item.
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboxItem'
          description: ''
    put:
      operationId: update_federation_inbox_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this inbox item.
        required: true
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboxItem'
          description: ''
    patch:
      operationId: partial_update_federation_inbox_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this inbox item.
        required: true
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedInboxItemRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedInboxItemRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedInboxItemRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedInboxItemRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboxItem'
          description: ''
  /api/v2/federation/inbox/action/:
    post:
      operationId: create_federation_inbox_action_2
      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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/InboxItemRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboxItem'
          description: ''
  /api/v2/federation/libraries/{uuid}/:
    get:
      operationId: get_federation_library_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Library'
          description: ''
  /api/v2/federation/libraries/{uuid}/scan/:
    post:
      operationId: create_federation_library_scan_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Library'
          description: ''
  /api/v2/federation/libraries/fetch/:
    post:
      operationId: create_federation_library_fetch_2
      tags:
      - federation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/LibraryRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Library'
          description: ''
  /api/v2/history/listenings/:
    get:
      operationId: get_history_listenings_2
      parameters:
      - in: query
        name: domain
        schema:
          type: string
      - in: query
        name: hidden
        schema:
          type: boolean
      - 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: scope
        schema:
          type: string
      - in: query
        name: username
        schema:
          type: string
      tags:
      - history
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedListeningList'
          description: ''
    post:
      operationId: create_history_listening_2
      tags:
      - history
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListeningWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ListeningWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ListeningWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ListeningWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListeningWrite'
          description: ''
  /api/v2/history/listenings/{id}/:
    get:
      operationId: get_history_listening_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this listening.
        required: true
      tags:
      - history
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Listening'
          description: ''
  /api/v2/instance/admin/settings/:
    get:
      operationId: get_instance_admin_settings_2
      description: |-
        - list preferences
        - detail given preference
        - batch update preferences
        - update a single preference
      parameters:
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      tags:
      - instance
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GlobalPreference'
          description: ''
  /api/v2/instance/admin/settings/{id}/:
    get:
      operationId: get_instance_admin_setting_2
      description: |-
        - list preferences
        - detail given preference
        - batch update preferences
        - update a single preference
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Global preference.
        required: true
      tags:
      - instance
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalPreference'
          description: ''
    put:
      operationId: update_instance_admin_setting_2
      description: |-
        - list preferences
        - detail given preference
        - batch update preferences
        - update a single preference
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Global preference.
        required: true
      tags:
      - instance
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalPreference'
          description: ''
    patch:
      operationId: partial_update_instance_admin_setting_2
      description: |-
        - list preferences
        - detail given preference
        - batch update preferences
        - update a single preference
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Global preference.
        required: true
      tags:
      - instance
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedGlobalPreferenceRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedGlobalPreferenceRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedGlobalPreferenceRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedGlobalPreferenceRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalPreference'
          description: ''
  /api/v2/instance/admin/settings/bulk/:
    post:
      operationId: create_instance_admin_setting_bulk_2
      description: |-
        Update multiple preferences at once

        this is a long method because we ensure everything is valid
        before actually persisting the changes
      tags:
      - instance
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/GlobalPreferenceRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalPreference'
          description: ''
  /api/v2/instance/nodeinfo/2.1/:
    get:
      operationId: getNodeInfo21
      tags:
      - instance
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NodeInfo21'
          description: ''
  /api/v2/instance/settings/:
    get:
      operationId: get_instance_settings_2
      tags:
      - instance
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalPreference'
          description: ''
  /api/v2/instance/spa-manifest.json:
    get:
      operationId: get_spa_manifest_2
      tags:
      - instance
      responses:
        '200':
          content:
            application/activity+json:
              schema:
                $ref: '#/components/schemas/SpaManifest'
          description: ''
  /api/v2/libraries/:
    get:
      operationId: get_libraries_2
      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
      - in: query
        name: privacy_level
        schema:
          type: string
          enum:
          - everyone
          - instance
          - me
        description: |-
          * `me` - Only me
          * `instance` - Everyone on my instance, and my followers
          * `everyone` - Everyone, including people on other instances
      - in: query
        name: q
        schema:
          type: string
      - in: query
        name: scope
        schema:
          type: string
      tags:
      - libraries
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLibraryForOwnerList'
          description: ''
  /api/v2/libraries/{uuid}/:
    get:
      operationId: get_library_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - libraries
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryForOwner'
          description: ''
  /api/v2/libraries/fs-import/:
    get:
      operationId: get_library_fs_import_2
      tags:
      - libraries
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
    post:
      operationId: create_library_fs_import_2
      tags:
      - libraries
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryForOwnerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryForOwnerRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryForOwnerRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/LibraryForOwnerRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
    delete:
      operationId: delete_library_fs_import_2
      tags:
      - libraries
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/licenses/:
    get:
      operationId: get_licenses_2
      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:
      - licenses
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLicenseList'
          description: ''
  /api/v2/licenses/{code}/:
    get:
      operationId: get_license_2
      parameters:
      - in: path
        name: code
        schema:
          type: string
        description: A unique value identifying this license.
        required: true
      tags:
      - licenses
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/License'
          description: ''
  /api/v2/listen/{uuid}/:
    get:
      operationId: get_listen_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - listen
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            audio/*:
              schema:
                type: string
                format: binary
          description: ''
  /api/v2/manage/accounts/:
    get:
      operationId: admin_get_accounts_2
      parameters:
      - in: query
        name: domain
        schema:
          type: string
      - in: query
        name: local
        schema:
          type: boolean
      - in: query
        name: manually_approves_followers
        schema:
          type: boolean
      - 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: q
        schema:
          type: string
      - in: query
        name: type
        schema:
          type: string
          enum:
          - Application
          - Group
          - Organization
          - Person
          - Service
          - Tombstone
        description: |-
          * `Person` - Person
          * `Tombstone` - Tombstone
          * `Application` - Application
          * `Group` - Group
          * `Organization` - Organization
          * `Service` - Service
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageActorList'
          description: ''
  /api/v2/manage/accounts/{id}/:
    get:
      operationId: admin_get_account_2
      parameters:
      - in: path
        name: id
        schema:
          type: string
          pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageActor'
          description: ''
  /api/v2/manage/accounts/{id}/stats/:
    get:
      operationId: admin_get_account_stats_2
      parameters:
      - in: path
        name: id
        schema:
          type: string
          pattern: ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageActor'
          description: ''
  /api/v2/manage/accounts/action/:
    post:
      operationId: admin_create_account_action_2
      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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageActorRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageActorRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageActorRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageActorRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageActor'
          description: ''
  /api/v2/manage/channels/:
    get:
      operationId: admin_get_channels_2
      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
      - in: query
        name: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageChannelList'
          description: ''
  /api/v2/manage/channels/{composite}/:
    get:
      operationId: admin_get_channel_2
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageChannel'
          description: ''
    delete:
      operationId: admin_delete_channel_2
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/manage/channels/{composite}/stats/:
    get:
      operationId: admin_get_channel_stats_2
      parameters:
      - in: path
        name: composite
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageChannel'
          description: ''
  /api/v2/manage/federation/domains/:
    get:
      operationId: admin_get_federation_domains_2
      parameters:
      - in: query
        name: allowed
        schema:
          type: boolean
      - in: query
        name: name
        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: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageDomainList'
          description: ''
    post:
      operationId: admin_create_federation_domain_2
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageDomain'
          description: ''
  /api/v2/manage/federation/domains/{name}/:
    get:
      operationId: admin_get_federation_domain_2
      parameters:
      - in: path
        name: name
        schema:
          type: string
        description: A unique value identifying this domain.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageDomain'
          description: ''
    put:
      operationId: admin_update_federation_domain_2
      parameters:
      - in: path
        name: name
        schema:
          type: string
        description: A unique value identifying this domain.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageDomainUpdateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageDomainUpdateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageDomainUpdateRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageDomainUpdateRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageDomainUpdate'
          description: ''
    patch:
      operationId: admin_partial_update_federation_domain_2
      parameters:
      - in: path
        name: name
        schema:
          type: string
        description: A unique value identifying this domain.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManageDomainUpdateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManageDomainUpdateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManageDomainUpdateRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedManageDomainUpdateRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageDomainUpdate'
          description: ''
  /api/v2/manage/federation/domains/{name}/nodeinfo/:
    get:
      operationId: admin_get_federation_domain_nodeinfo_2
      parameters:
      - in: path
        name: name
        schema:
          type: string
        description: A unique value identifying this domain.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageDomain'
          description: ''
  /api/v2/manage/federation/domains/{name}/stats/:
    get:
      operationId: admin_get_federation_domain_stats_2
      parameters:
      - in: path
        name: name
        schema:
          type: string
        description: A unique value identifying this domain.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageDomain'
          description: ''
  /api/v2/manage/federation/domains/action/:
    post:
      operationId: admin_create_federation_domain_action_2
      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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageDomainRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageDomain'
          description: ''
  /api/v2/manage/library/albums/:
    get:
      operationId: admin_get_albums_2
      parameters:
      - in: query
        name: artist_credit
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      - in: query
        name: fid
        schema:
          type: string
      - in: query
        name: mbid
        schema:
          type: string
          format: uuid
      - 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: q
        schema:
          type: string
      - in: query
        name: title
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageAlbumList'
          description: ''
  /api/v2/manage/library/albums/{id}/:
    get:
      operationId: admin_get_album_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this album.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageAlbum'
          description: ''
    delete:
      operationId: admin_delete_album_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this album.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/manage/library/albums/{id}/stats/:
    get:
      operationId: admin_get_library_album_stats_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this album.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageAlbum'
          description: ''
  /api/v2/manage/library/albums/action/:
    post:
      operationId: admin_create_album_action_2
      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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageAlbumRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageAlbumRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageAlbumRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageAlbumRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageAlbum'
          description: ''
  /api/v2/manage/library/artists/:
    get:
      operationId: admin_get_artists_2
      parameters:
      - in: query
        name: content_category
        schema:
          type: string
          enum:
          - music
          - other
          - podcast
        description: |-
          * `music` - music
          * `podcast` - podcast
          * `other` - other
      - in: query
        name: fid
        schema:
          type: string
      - in: query
        name: mbid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        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: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageArtistList'
          description: ''
  /api/v2/manage/library/artists/{id}/:
    get:
      operationId: admin_get_artist_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this artist.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageArtist'
          description: ''
    delete:
      operationId: admin_delete_artist_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this artist.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/manage/library/artists/{id}/stats/:
    get:
      operationId: admin_get_library_artist_stats_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this artist.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageArtist'
          description: ''
  /api/v2/manage/library/artists/action/:
    post:
      operationId: admin_create_artist_action_2
      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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageArtistRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageArtistRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageArtistRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageArtistRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageArtist'
          description: ''
  /api/v2/manage/library/libraries/:
    get:
      operationId: admin_get_libraries_2
      parameters:
      - in: query
        name: domain
        schema:
          type: string
      - in: query
        name: fid
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: ordering
        schema:
          type: array
          items:
            type: string
            enum:
            - -creation_date
            - -followers_count
            - -uploads_count
            - creation_date
            - followers_count
            - uploads_count
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `uploads_count` - Uploads count
          * `-uploads_count` - Uploads count (descending)
          * `followers_count` - Followers count
          * `-followers_count` - Followers count (descending)
        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: privacy_level
        schema:
          type: string
          enum:
          - everyone
          - instance
          - me
        description: |-
          * `me` - Only me
          * `instance` - Everyone on my instance, and my followers
          * `everyone` - Everyone, including people on other instances
      - in: query
        name: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageLibraryList'
          description: ''
  /api/v2/manage/library/libraries/{uuid}/:
    get:
      operationId: admin_get_library_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageLibrary'
          description: ''
    put:
      operationId: admin_update_library_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageLibrary'
          description: ''
    patch:
      operationId: admin_partial_update_library_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManageLibraryRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManageLibraryRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManageLibraryRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedManageLibraryRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageLibrary'
          description: ''
    delete:
      operationId: admin_delete_library_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/manage/library/libraries/{uuid}/stats/:
    get:
      operationId: admin_get_library_stats_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageLibrary'
          description: ''
  /api/v2/manage/library/libraries/action/:
    post:
      operationId: admin_create_library_action_2
      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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageLibraryRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageLibrary'
          description: ''
  /api/v2/manage/library/tracks/:
    get:
      operationId: admin_get_tracks_2
      parameters:
      - in: query
        name: album
        schema:
          type: integer
      - in: query
        name: artist_credit
        schema:
          type: array
          items:
            type: integer
        explode: true
        style: form
      - in: query
        name: fid
        schema:
          type: string
      - in: query
        name: license
        schema:
          type: string
      - in: query
        name: mbid
        schema:
          type: string
          format: uuid
      - 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: q
        schema:
          type: string
      - in: query
        name: title
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageTrackList'
          description: ''
  /api/v2/manage/library/tracks/{id}/:
    get:
      operationId: admin_get_track_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this track.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageTrack'
          description: ''
    delete:
      operationId: admin_delete_track_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this track.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/manage/library/tracks/{id}/stats/:
    get:
      operationId: admin_get_track_stats_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this track.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageTrack'
          description: ''
  /api/v2/manage/library/tracks/action/:
    post:
      operationId: admin_create_track_action_2
      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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageTrackRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageTrackRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageTrackRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageTrackRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageTrack'
          description: ''
  /api/v2/manage/library/uploads/:
    get:
      operationId: admin_get_uploads_2
      parameters:
      - in: query
        name: domain
        schema:
          type: string
      - in: query
        name: fid
        schema:
          type: string
      - in: query
        name: import_reference
        schema:
          type: string
      - in: query
        name: import_status
        schema:
          type: string
          enum:
          - draft
          - errored
          - finished
          - pending
          - skipped
        description: |-
          * `draft` - Draft
          * `pending` - Pending
          * `finished` - Finished
          * `errored` - Errored
          * `skipped` - Skipped
      - in: query
        name: mimetype
        schema:
          type: string
      - in: query
        name: ordering
        schema:
          type: array
          items:
            type: string
            enum:
            - -accessed_date
            - -bitrate
            - -creation_date
            - -duration
            - -modification_date
            - -size
            - accessed_date
            - bitrate
            - creation_date
            - duration
            - modification_date
            - size
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `modification_date` - Modification date
          * `-modification_date` - Modification date (descending)
          * `accessed_date` - Accessed date
          * `-accessed_date` - Accessed date (descending)
          * `size` - Size
          * `-size` - Size (descending)
          * `bitrate` - Bitrate
          * `-bitrate` - Bitrate (descending)
          * `duration` - Duration
          * `-duration` - Duration (descending)
        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: privacy_level
        schema:
          type: string
      - in: query
        name: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageUploadList'
          description: ''
  /api/v2/manage/library/uploads/{uuid}/:
    get:
      operationId: admin_get_upload_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUpload'
          description: ''
    delete:
      operationId: admin_delete_upload_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/manage/library/uploads/action/:
    post:
      operationId: admin_create_upload_action_2
      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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageUploadRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageUploadRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageUploadRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageUploadRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUpload'
          description: ''
  /api/v2/manage/moderation/instance-policies/:
    get:
      operationId: moderation_get_instance_policies_2
      parameters:
      - in: query
        name: block_all
        schema:
          type: boolean
      - 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: q
        schema:
          type: string
      - in: query
        name: reject_media
        schema:
          type: boolean
      - in: query
        name: silence_activity
        schema:
          type: boolean
      - in: query
        name: silence_notifications
        schema:
          type: boolean
      - in: query
        name: target_account_domain
        schema:
          type: string
      - in: query
        name: target_account_username
        schema:
          type: string
      - in: query
        name: target_domain
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageInstancePolicyList'
          description: ''
    post:
      operationId: moderation_create_instance_policy_2
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInstancePolicy'
          description: ''
  /api/v2/manage/moderation/instance-policies/{id}/:
    get:
      operationId: moderation_get_instance_policy_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this instance policy.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInstancePolicy'
          description: ''
    put:
      operationId: moderation_update_instance_policy_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this instance policy.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageInstancePolicyRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInstancePolicy'
          description: ''
    patch:
      operationId: moderation_partial_update_instance_policy_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this instance policy.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManageInstancePolicyRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManageInstancePolicyRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManageInstancePolicyRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedManageInstancePolicyRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInstancePolicy'
          description: ''
    delete:
      operationId: moderation_delete_instance_policy_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this instance policy.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/manage/moderation/notes/:
    get:
      operationId: moderation_get_notes_2
      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
      - in: query
        name: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageNoteList'
          description: ''
    post:
      operationId: moderation_create_note_2
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageNoteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageNoteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageNoteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageNoteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageNote'
          description: ''
  /api/v2/manage/moderation/notes/{uuid}/:
    get:
      operationId: moderation_get_note_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageNote'
          description: ''
    delete:
      operationId: moderation_delete_note_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/manage/moderation/reports/:
    get:
      operationId: moderation_get_reports_2
      parameters:
      - in: query
        name: is_handled
        schema:
          type: boolean
      - 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: q
        schema:
          type: string
      - in: query
        name: submitter_email
        schema:
          type: string
      - in: query
        name: type
        schema:
          type: string
          enum:
          - illegal_content
          - invalid_metadata
          - offensive_content
          - other
          - takedown_request
        description: |-
          * `takedown_request` - Takedown request
          * `invalid_metadata` - Invalid metadata
          * `illegal_content` - Illegal content
          * `offensive_content` - Offensive content
          * `other` - Other
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageReportList'
          description: ''
  /api/v2/manage/moderation/reports/{uuid}/:
    get:
      operationId: moderation_get_report_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageReport'
          description: ''
    put:
      operationId: moderation_update_report_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageReportRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageReportRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageReportRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageReportRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageReport'
          description: ''
    patch:
      operationId: moderation_partial_update_report_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManageReportRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManageReportRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManageReportRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedManageReportRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageReport'
          description: ''
  /api/v2/manage/moderation/requests/:
    get:
      operationId: moderation_get_requests_2
      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
      - in: query
        name: q
        schema:
          type: string
      - in: query
        name: status
        schema:
          type: string
          enum:
          - approved
          - pending
          - refused
        description: |-
          * `pending` - Pending
          * `refused` - Refused
          * `approved` - Approved
      - in: query
        name: type
        schema:
          type: string
          enum:
          - signup
        description: '* `signup` - Sign-up'
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageUserRequestList'
          description: ''
  /api/v2/manage/moderation/requests/{uuid}/:
    get:
      operationId: moderation_get_request_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUserRequest'
          description: ''
    put:
      operationId: moderation_update_request_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageUserRequestRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageUserRequestRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageUserRequestRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageUserRequestRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUserRequest'
          description: ''
    patch:
      operationId: moderation_partial_update_request_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequestRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequestRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequestRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequestRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUserRequest'
          description: ''
  /api/v2/manage/tags/:
    get:
      operationId: admin_get_tags_2
      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
      - in: query
        name: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageTagList'
          description: ''
    post:
      operationId: admin_create_tag_2
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageTag'
          description: ''
  /api/v2/manage/tags/{name}/:
    get:
      operationId: admin_get_tag_2
      parameters:
      - in: path
        name: name
        schema:
          type: string
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageTag'
          description: ''
    delete:
      operationId: admin_delete_tag_2
      parameters:
      - in: path
        name: name
        schema:
          type: string
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/manage/tags/action/:
    post:
      operationId: admin_create_tag_action_2
      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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageTagRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageTag'
          description: ''
  /api/v2/manage/users/invitations/:
    get:
      operationId: admin_get_invitations_2
      parameters:
      - in: query
        name: is_open
        schema:
          type: boolean
      - 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: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageInvitationList'
          description: ''
    post:
      operationId: admin_create_invitation_2
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInvitation'
          description: ''
  /api/v2/manage/users/invitations/{id}/:
    get:
      operationId: admin_get_invitation_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this invitation.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInvitation'
          description: ''
    put:
      operationId: admin_update_invitation_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this invitation.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInvitation'
          description: ''
    patch:
      operationId: admin_partial_update_invitation_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this invitation.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManageInvitationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManageInvitationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManageInvitationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedManageInvitationRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInvitation'
          description: ''
  /api/v2/manage/users/invitations/action/:
    post:
      operationId: admin_create_invitation_action_2
      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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageInvitationRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageInvitation'
          description: ''
  /api/v2/manage/users/users/:
    get:
      operationId: admin_get_users_2
      parameters:
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: is_staff
        schema:
          type: boolean
      - in: query
        name: is_superuser
        schema:
          type: boolean
      - 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: permission_library
        schema:
          type: boolean
      - in: query
        name: permission_moderation
        schema:
          type: boolean
      - in: query
        name: permission_settings
        schema:
          type: boolean
      - in: query
        name: privacy_level
        schema:
          type: string
          enum:
          - everyone
          - followers
          - instance
          - me
        description: |-
          * `me` - Only me
          * `followers` - Me and my followers
          * `instance` - Everyone on my instance, and my followers
          * `everyone` - Everyone, including people on other instances
      - in: query
        name: q
        schema:
          type: string
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedManageUserList'
          description: ''
  /api/v2/manage/users/users/{id}/:
    get:
      operationId: admin_get_user_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - manage
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUser'
          description: ''
    put:
      operationId: admin_update_user_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageUserRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ManageUserRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ManageUserRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ManageUserRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUser'
          description: ''
    patch:
      operationId: admin_partial_update_user_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - manage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedManageUserRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManageUser'
          description: ''
  /api/v2/moderation/content-filters/:
    get:
      operationId: get_moderation_content_filters_2
      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:
      - moderation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedUserFilterList'
          description: ''
    post:
      operationId: create_moderation_content_filter_2
      tags:
      - moderation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserFilterRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserFilterRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserFilterRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserFilterRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserFilter'
          description: ''
  /api/v2/moderation/content-filters/{uuid}/:
    get:
      operationId: get_moderation_content_filter_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - moderation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserFilter'
          description: ''
    delete:
      operationId: delete_moderation_content_filter_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - moderation
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/moderation/reports/:
    post:
      operationId: create_moderation_report_2
      tags:
      - moderation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReportRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReportRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ReportRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Report'
          description: ''
  /api/v2/mutations/:
    get:
      operationId: get_mutations_2
      parameters:
      - in: query
        name: is_applied
        schema:
          type: boolean
      - in: query
        name: is_approved
        schema:
          type: boolean
      - 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: q
        schema:
          type: string
      - in: query
        name: type
        schema:
          type: string
      tags:
      - mutations
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAPIMutationList'
          description: ''
  /api/v2/mutations/{uuid}/:
    get:
      operationId: get_mutation_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - mutations
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMutation'
          description: ''
    delete:
      operationId: delete_mutation_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - mutations
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/mutations/{uuid}/approve/:
    post:
      operationId: approve_mutation_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - mutations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMutation'
          description: ''
  /api/v2/mutations/{uuid}/reject/:
    post:
      operationId: reject_mutation_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - mutations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/APIMutationRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMutation'
          description: ''
  /api/v2/oauth/apps/:
    get:
      operationId: get_oauth_apps_2
      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:
      - oauth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedApplicationList'
          description: ''
    post:
      operationId: create_oauth_app_2
      tags:
      - oauth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateApplication'
          description: ''
  /api/v2/oauth/apps/{client_id}/:
    get:
      operationId: get_oauth_app_2
      parameters:
      - in: path
        name: client_id
        schema:
          type: string
        required: true
      tags:
      - oauth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
          description: ''
    put:
      operationId: update_oauth_app_2
      parameters:
      - in: path
        name: client_id
        schema:
          type: string
        required: true
      tags:
      - oauth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ApplicationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ApplicationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/ApplicationRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
          description: ''
    patch:
      operationId: partial_update_oauth_app_2
      parameters:
      - in: path
        name: client_id
        schema:
          type: string
        required: true
      tags:
      - oauth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedApplicationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedApplicationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedApplicationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedApplicationRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
          description: ''
    delete:
      operationId: delete_oauth_app_2
      parameters:
      - in: path
        name: client_id
        schema:
          type: string
        required: true
      tags:
      - oauth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/oauth/apps/{client_id}/refresh-token/:
    post:
      operationId: refresh_oauth_token_2
      parameters:
      - in: path
        name: client_id
        schema:
          type: string
        required: true
      tags:
      - oauth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateApplication'
          description: ''
  /api/v2/oauth/authorize/:
    get:
      operationId: get_oauth_authorize
      description: 'Handle GET requests: instantiate a blank version of the form.'
      tags:
      - oauth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
    post:
      operationId: create_oauth_authorize
      description: |-
        Handle POST requests: instantiate a form instance with the passed
        POST variables and then check if it's valid.
      tags:
      - oauth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
    put:
      operationId: update_oauth_authorize
      tags:
      - oauth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v2/oauth/grants/:
    get:
      operationId: get_oauth_grants_2
      description: |-
        This is a viewset that list applications that have access to the request user
        account, to allow revoking tokens easily.
      parameters:
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      tags:
      - oauth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Application'
          description: ''
  /api/v2/oauth/grants/{client_id}/:
    get:
      operationId: get_oauth_grant_2
      description: |-
        This is a viewset that list applications that have access to the request user
        account, to allow revoking tokens easily.
      parameters:
      - in: path
        name: client_id
        schema:
          type: string
        required: true
      tags:
      - oauth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
          description: ''
    delete:
      operationId: delete_oauth_grant_2
      description: |-
        This is a viewset that list applications that have access to the request user
        account, to allow revoking tokens easily.
      parameters:
      - in: path
        name: client_id
        schema:
          type: string
        required: true
      tags:
      - oauth
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/oembed/:
    get:
      operationId: get_oembed_2
      tags:
      - oembed
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Oembed'
          description: ''
  /api/v2/playlists/:
    get:
      operationId: get_playlists_2
      parameters:
      - in: query
        name: album
        schema:
          type: integer
      - in: query
        name: artist
        schema:
          type: integer
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - 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:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPlaylistList'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/PaginatedPlaylistList'
          description: ''
    post:
      operationId: create_playlist_2
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      tags:
      - playlists
      requestBody:
        content:
          application/octet-stream:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
  /api/v2/playlists/{uuid}/:
    get:
      operationId: get_playlist_2
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
    put:
      operationId: update_playlist_2
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      requestBody:
        content:
          application/octet-stream:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
    patch:
      operationId: partial_update_playlist_2
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      requestBody:
        content:
          application/octet-stream:
            schema:
              $ref: '#/components/schemas/PatchedPlaylistRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPlaylistRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPlaylistRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPlaylistRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
    delete:
      operationId: delete_playlist_2
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/playlists/{uuid}/add/:
    post:
      operationId: add_to_playlist_2
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      requestBody:
        content:
          application/octet-stream:
            schema:
              $ref: '#/components/schemas/PlaylistAddManyRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PlaylistAddManyRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PlaylistAddManyRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PlaylistAddManyRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
  /api/v2/playlists/{uuid}/albums/:
    get:
      operationId: get_playlist_albums_2
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
  /api/v2/playlists/{uuid}/artists/:
    get:
      operationId: get_playlist_artists_2
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
  /api/v2/playlists/{uuid}/clear/:
    delete:
      operationId: clear_playlist_2
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/playlists/{uuid}/move/:
    post:
      operationId: reorder_track_in_playlist_2
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      requestBody:
        content:
          application/octet-stream:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
  /api/v2/playlists/{uuid}/remove/:
    post:
      operationId: remove_from_playlist_4
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      requestBody:
        content:
          application/octet-stream:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PlaylistRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/Playlist'
          description: ''
    delete:
      operationId: remove_from_playlist_3
      parameters:
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/playlists/{uuid}/tracks/:
    get:
      operationId: get_playlist_tracks_2
      parameters:
      - in: query
        name: album
        schema:
          type: integer
      - in: query
        name: artist
        schema:
          type: integer
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - xspf
      - 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
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - playlists
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPlaylistTrackList'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/PaginatedPlaylistTrackList'
          description: ''
  /api/v2/plugins/:
    get:
      operationId: get_plugins_2
      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:
      - plugins
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
    post:
      operationId: create_plugin_2
      tags:
      - plugins
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          description: No response body
  /api/v2/plugins/{id}/:
    get:
      operationId: get_plugin_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this plugin configuration.
        required: true
      tags:
      - plugins
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v2/plugins/{id}/disable/:
    post:
      operationId: disable_plugin_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this plugin configuration.
        required: true
      tags:
      - plugins
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v2/plugins/{id}/enable/:
    post:
      operationId: enable_plugin_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this plugin configuration.
        required: true
      tags:
      - plugins
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v2/plugins/{id}/scan/:
    post:
      operationId: create_plugin_scan_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this plugin configuration.
        required: true
      tags:
      - plugins
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v2/providers/musicbrainz/artists/{uuid}/:
    get:
      operationId: get_provider_musicbrainz_artist
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[0-9a-z-]+$
        required: true
      tags:
      - providers
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v2/providers/musicbrainz/release-groups/browse/{artist_uuid}/:
    get:
      operationId: get_provider_musicbrainz_release_group_browse
      parameters:
      - in: path
        name: artist_uuid
        schema:
          type: string
          pattern: ^[0-9a-z-]+$
        required: true
      tags:
      - providers
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v2/providers/musicbrainz/releases/{uuid}/:
    get:
      operationId: get_provider_musicbrainz_release
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[0-9a-z-]+$
        required: true
      tags:
      - providers
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v2/providers/musicbrainz/releases/browse/{release_group_uuid}/:
    get:
      operationId: get_provider_musicbrainz_release_browse
      parameters:
      - in: path
        name: release_group_uuid
        schema:
          type: string
          pattern: ^[0-9a-z-]+$
        required: true
      tags:
      - providers
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v2/providers/musicbrainz/search/artists/:
    get:
      operationId: get_provider_musicbrainz_search_artist
      tags:
      - providers
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v2/providers/musicbrainz/search/recordings/:
    get:
      operationId: get_provider_musicbrainz_search_recording
      tags:
      - providers
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v2/providers/musicbrainz/search/releases/:
    get:
      operationId: get_provider_musicbrainz_search_release
      tags:
      - providers
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
  /api/v2/radios/radios/:
    get:
      operationId: get_radios_2
      parameters:
      - 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
      - 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: q
        schema:
          type: string
      - in: query
        name: scope
        schema:
          type: string
      tags:
      - radios
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedRadioList'
          description: ''
    post:
      operationId: create_radio_2
      tags:
      - radios
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/RadioRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Radio'
          description: ''
  /api/v2/radios/radios/{id}/:
    get:
      operationId: get_radio_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this radio.
        required: true
      tags:
      - radios
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Radio'
          description: ''
    put:
      operationId: update_radio_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this radio.
        required: true
      tags:
      - radios
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/RadioRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Radio'
          description: ''
    patch:
      operationId: partial_update_radio_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this radio.
        required: true
      tags:
      - radios
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRadioRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedRadioRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedRadioRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedRadioRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Radio'
          description: ''
    delete:
      operationId: delete_radio_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this radio.
        required: true
      tags:
      - radios
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/radios/radios/{id}/tracks/:
    get:
      operationId: get_radio_track_2
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this radio.
        required: true
      tags:
      - radios
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Track'
          description: ''
  /api/v2/radios/radios/filters/:
    get:
      operationId: get_radio_filter_2
      tags:
      - radios
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Filter'
          description: ''
  /api/v2/radios/radios/validate/:
    post:
      operationId: validate_radio_2
      tags:
      - radios
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RadioRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/RadioRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Radio'
          description: ''
  /api/v2/radios/sessions/:
    post:
      operationId: create_radio_session_2
      description: Returns a list of RadioSessions
      tags:
      - radios
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RadioSessionRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RadioSessionRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RadioSessionRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/RadioSessionRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RadioSession'
          description: ''
  /api/v2/radios/sessions/{id}/:
    get:
      operationId: get_radio_session_2
      description: Returns a list of RadioSessions
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this radio session.
        required: true
      tags:
      - radios
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RadioSession'
          description: ''
  /api/v2/radios/sessions/{id}/tracks/:
    get:
      operationId: get_radio_session_track
      description: Returns a list of RadioSessions
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this radio session.
        required: true
      tags:
      - radios
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RadioSessionTrackSerializerCreate'
          description: ''
  /api/v2/radios/tracks/:
    post:
      operationId: get_next_radio_track_2
      tags:
      - radios
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/RadioSessionTrackSerializerCreateRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RadioSessionTrackSerializerCreate'
          description: ''
  /api/v2/rate-limit/:
    get:
      operationId: get_rate_limit_2
      tags:
      - rate-limit
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimit'
          description: ''
  /api/v2/search:
    get:
      operationId: get_search_results_2
      tags:
      - search
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResult'
          description: ''
  /api/v2/stream/{uuid}/:
    get:
      operationId: get_track_stream_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - stream
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            audio/mpeg:
              schema:
                type: string
                format: binary
          description: ''
  /api/v2/subscriptions/:
    get:
      operationId: get_subscriptions_2
      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/v2/subscriptions/{uuid}/:
    get:
      operationId: get_subscription_2
      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/v2/subscriptions/all/:
    get:
      operationId: get_all_subscriptions_2
      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/AllSubscriptions'
          description: ''
  /api/v2/tags/:
    get:
      operationId: get_tags_2
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: ordering
        schema:
          type: array
          items:
            type: string
            enum:
            - -creation_date
            - -length
            - -name
            - creation_date
            - length
            - name
        description: |-
          Ordering

          * `name` - Name
          * `-name` - Name (descending)
          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `length` - Length
          * `-length` - Length (descending)
        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:
      - tags
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTagList'
          description: ''
  /api/v2/tags/{name}/:
    get:
      operationId: get_tag_2
      parameters:
      - in: path
        name: name
        schema:
          type: string
        required: true
      tags:
      - tags
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tag'
          description: ''
  /api/v2/text-preview/:
    post:
      operationId: preview_text_2
      tags:
      - text-preview
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TextPreviewRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TextPreviewRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TextPreviewRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/TextPreviewRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TextPreview'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetail'
          description: ''
  /api/v2/tracks/:
    get:
      operationId: get_tracks_2
      description: A simple ViewSet for viewing and editing accounts.
      parameters:
      - in: query
        name: album
        schema:
          type: integer
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: format
        schema:
          type: string
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - 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_credit__artist__modification_date
            - -artist_credit__artist__name
            - -creation_date
            - -disc_number
            - -position
            - -random
            - -related
            - -size
            - -title
            - album__release_date
            - album__title
            - artist_credit__artist__modification_date
            - artist_credit__artist__name
            - creation_date
            - disc_number
            - position
            - random
            - related
            - size
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `album__title` - Album  title
          * `-album__title` - Album  title (descending)
          * `album__release_date` - Album  release date
          * `-album__release_date` - Album  release date (descending)
          * `size` - Size
          * `-size` - Size (descending)
          * `position` - Position
          * `-position` - Position (descending)
          * `disc_number` - Disc number
          * `-disc_number` - Disc number (descending)
          * `artist_credit__artist__name` - Artist credit  artist  name
          * `-artist_credit__artist__name` - Artist credit  artist  name (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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: quality
        schema:
          type: integer
          enum:
          - 0
          - 1
          - 2
          - 3
        description: |-
          * `0` - low
          * `1` - medium
          * `2` - high
          * `3` - very_high
      - 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:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTrackList'
          description: ''
  /api/v2/tracks/{id}/:
    get:
      operationId: get_track_2
      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:
      - tracks
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Track'
          description: ''
    delete:
      operationId: delete_track_2
      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:
      - tracks
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/tracks/{id}/fetches/:
    get:
      operationId: get_track_fetches_2
      description: A simple ViewSet for viewing and editing accounts.
      parameters:
      - in: query
        name: album
        schema:
          type: integer
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: format
        schema:
          type: string
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - 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:
          type: array
          items:
            type: string
            enum:
            - -album__release_date
            - -album__title
            - -artist_credit__artist__modification_date
            - -artist_credit__artist__name
            - -creation_date
            - -disc_number
            - -position
            - -random
            - -related
            - -size
            - -title
            - album__release_date
            - album__title
            - artist_credit__artist__modification_date
            - artist_credit__artist__name
            - creation_date
            - disc_number
            - position
            - random
            - related
            - size
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `album__title` - Album  title
          * `-album__title` - Album  title (descending)
          * `album__release_date` - Album  release date
          * `-album__release_date` - Album  release date (descending)
          * `size` - Size
          * `-size` - Size (descending)
          * `position` - Position
          * `-position` - Position (descending)
          * `disc_number` - Disc number
          * `-disc_number` - Disc number (descending)
          * `artist_credit__artist__name` - Artist credit  artist  name
          * `-artist_credit__artist__name` - Artist credit  artist  name (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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: quality
        schema:
          type: integer
          enum:
          - 0
          - 1
          - 2
          - 3
        description: |-
          * `0` - low
          * `1` - medium
          * `2` - high
          * `3` - very_high
      - 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:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedFetchList'
          description: ''
    post:
      operationId: create_track_fetch_2
      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:
      - tracks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrackRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TrackRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TrackRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/TrackRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fetch'
          description: ''
  /api/v2/tracks/{id}/libraries/:
    get:
      operationId: get_track_libraries_2
      description: A simple ViewSet for viewing and editing accounts.
      parameters:
      - in: query
        name: album
        schema:
          type: integer
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: format
        schema:
          type: string
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - 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:
          type: array
          items:
            type: string
            enum:
            - -album__release_date
            - -album__title
            - -artist_credit__artist__modification_date
            - -artist_credit__artist__name
            - -creation_date
            - -disc_number
            - -position
            - -random
            - -related
            - -size
            - -title
            - album__release_date
            - album__title
            - artist_credit__artist__modification_date
            - artist_credit__artist__name
            - creation_date
            - disc_number
            - position
            - random
            - related
            - size
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `album__title` - Album  title
          * `-album__title` - Album  title (descending)
          * `album__release_date` - Album  release date
          * `-album__release_date` - Album  release date (descending)
          * `size` - Size
          * `-size` - Size (descending)
          * `position` - Position
          * `-position` - Position (descending)
          * `disc_number` - Disc number
          * `-disc_number` - Disc number (descending)
          * `artist_credit__artist__name` - Artist credit  artist  name
          * `-artist_credit__artist__name` - Artist credit  artist  name (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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: quality
        schema:
          type: integer
          enum:
          - 0
          - 1
          - 2
          - 3
        description: |-
          * `0` - low
          * `1` - medium
          * `2` - high
          * `3` - very_high
      - 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:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLibraryList'
          description: ''
  /api/v2/tracks/{id}/mutations/:
    get:
      operationId: get_track_mutations_2
      description: A simple ViewSet for viewing and editing accounts.
      parameters:
      - in: query
        name: album
        schema:
          type: integer
      - in: query
        name: artist
        schema:
          type: string
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: format
        schema:
          type: string
      - in: query
        name: has_mbid
        schema:
          type: boolean
      - 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:
          type: array
          items:
            type: string
            enum:
            - -album__release_date
            - -album__title
            - -artist_credit__artist__modification_date
            - -artist_credit__artist__name
            - -creation_date
            - -disc_number
            - -position
            - -random
            - -related
            - -size
            - -title
            - album__release_date
            - album__title
            - artist_credit__artist__modification_date
            - artist_credit__artist__name
            - creation_date
            - disc_number
            - position
            - random
            - related
            - size
            - title
        description: |-
          Ordering

          * `creation_date` - Creation date
          * `-creation_date` - Creation date (descending)
          * `title` - Title
          * `-title` - Title (descending)
          * `album__title` - Album  title
          * `-album__title` - Album  title (descending)
          * `album__release_date` - Album  release date
          * `-album__release_date` - Album  release date (descending)
          * `size` - Size
          * `-size` - Size (descending)
          * `position` - Position
          * `-position` - Position (descending)
          * `disc_number` - Disc number
          * `-disc_number` - Disc number (descending)
          * `artist_credit__artist__name` - Artist credit  artist  name
          * `-artist_credit__artist__name` - Artist credit  artist  name (descending)
          * `artist_credit__artist__modification_date` - Artist credit  artist  modification date
          * `-artist_credit__artist__modification_date` - Artist credit  artist  modification date (descending)
          * `random` - Random
          * `-random` - Random (descending)
          * `related` - Related
          * `-related` - Related (descending)
        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: quality
        schema:
          type: integer
          enum:
          - 0
          - 1
          - 2
          - 3
        description: |-
          * `0` - low
          * `1` - medium
          * `2` - high
          * `3` - very_high
      - 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:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAPIMutationList'
          description: ''
    post:
      operationId: create_track_mutation_2
      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:
      - tracks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrackRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TrackRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TrackRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/TrackRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMutation'
          description: ''
  /api/v2/uploads/:
    get:
      operationId: get_uploads_2
      parameters:
      - in: query
        name: album_artist
        schema:
          type: string
          format: uuid
      - in: query
        name: channel
        schema:
          type: string
      - in: query
        name: import_reference
        schema:
          type: string
      - in: query
        name: import_status
        schema:
          type: array
          items:
            type: string
            enum:
            - draft
            - errored
            - finished
            - pending
            - skipped
        description: |-
          * `draft` - Draft
          * `pending` - Pending
          * `finished` - Finished
          * `errored` - Errored
          * `skipped` - Skipped
        explode: true
        style: form
      - in: query
        name: include_channels
        schema:
          type: boolean
      - in: query
        name: library
        schema:
          type: string
          format: uuid
      - in: query
        name: mimetype
        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: string
          format: uuid
      - in: query
        name: track_artist
        schema:
          type: string
          format: uuid
      tags:
      - uploads
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedUploadForOwnerList'
          description: ''
    post:
      operationId: create_upload_2
      tags:
      - uploads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadForOwner'
          description: ''
  /api/v2/uploads/{uuid}/:
    get:
      operationId: get_upload_2
      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: update_upload_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - uploads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadForOwner'
          description: ''
    patch:
      operationId: partial_update_upload_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - uploads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUploadForOwnerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUploadForOwnerRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUploadForOwnerRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedUploadForOwnerRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadForOwner'
          description: ''
    delete:
      operationId: delete_upload_2
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - uploads
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/uploads/{uuid}/audio-file-metadata/:
    get:
      operationId: get_upload_metadata_2
      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/TrackMetadata'
          description: ''
  /api/v2/uploads/action/:
    post:
      operationId: create_upload_action_2
      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 'utf-8'.
        errors defaults to 'strict'.
      tags:
      - uploads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UploadForOwnerRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadForOwner'
          description: ''
  /api/v2/uploads/bulk_update/:
    patch:
      operationId: partial_update_upload_bulk_update_2
      description: Used to move an upload from one library to another. Receive a upload
        uuid and a privacy_level
      tags:
      - uploads
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UploadBulkUpdateRequest'
          application/x-www-form-urlencoded:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UploadBulkUpdateRequest'
          multipart/form-data:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UploadBulkUpdateRequest'
          application/activity+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UploadBulkUpdateRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadForOwner'
          description: ''
  /api/v2/users/{username}/:
    put:
      operationId: update_user_3
      parameters:
      - in: path
        name: username
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_.]+$
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
    patch:
      operationId: partial_update_user_3
      parameters:
      - in: path
        name: username
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_.]+$
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUserWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUserWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedUserWriteRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
  /api/v2/users/{username}/subsonic-token/:
    get:
      operationId: get_user_subsonic_token_3
      parameters:
      - in: path
        name: username
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_.]+$
        required: true
      tags:
      - users
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
    post:
      operationId: create_user_subsonic_token_3
      parameters:
      - in: path
        name: username
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_.]+$
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
    delete:
      operationId: delete_user_subsonic_token_3
      parameters:
      - in: path
        name: username
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_.]+$
        required: true
      tags:
      - users
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/users/change-email/:
    post:
      operationId: change_email_2
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
        '403':
          description: No response body
  /api/v2/users/me/:
    get:
      operationId: get_authenticated_user_2
      description: Return information about the current user or delete it
      tags:
      - users
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
    delete:
      operationId: delete_authenticated_user_2
      description: Return information about the current user or delete it
      tags:
      - users
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/users/settings/:
    post:
      operationId: update_settings_2
      description: Return information about the current user or delete it
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
  /api/v2/users/users/{username}/:
    put:
      operationId: update_user_2
      parameters:
      - in: path
        name: username
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_.]+$
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
    patch:
      operationId: partial_update_user_2
      parameters:
      - in: path
        name: username
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_.]+$
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUserWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUserWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/PatchedUserWriteRequest'
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
  /api/v2/users/users/{username}/subsonic-token/:
    get:
      operationId: get_user_subsonic_token_2
      parameters:
      - in: path
        name: username
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_.]+$
        required: true
      tags:
      - users
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
    post:
      operationId: create_user_subsonic_token_2
      parameters:
      - in: path
        name: username
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_.]+$
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
    delete:
      operationId: delete_user_subsonic_token_2
      parameters:
      - in: path
        name: username
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_.]+$
        required: true
      tags:
      - users
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/users/users/change-email/:
    post:
      operationId: change_email_3
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          description: No response body
        '403':
          description: No response body
  /api/v2/users/users/me/:
    get:
      operationId: get_authenticated_user_3
      description: Return information about the current user or delete it
      tags:
      - users
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
    delete:
      operationId: delete_authenticated_user_3
      description: Return information about the current user or delete it
      tags:
      - users
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '204':
          description: No response body
  /api/v2/users/users/settings/:
    post:
      operationId: update_settings_3
      description: Return information about the current user or delete it
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
          application/activity+json:
            schema:
              $ref: '#/components/schemas/UserWriteRequest'
        required: true
      security:
      - oauth2: []
      - ApplicationToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserWrite'
          description: ''
components:
  schemas:
    APIActor:
      type: object
      properties:
        fid:
          type: string
          format: uri
          maxLength: 500
        url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        creation_date:
          type: string
          format: date-time
        summary:
          type: string
          nullable: true
          maxLength: 500
        preferred_username:
          type: string
          nullable: true
          maxLength: 200
        name:
          type: string
          nullable: true
          maxLength: 200
        last_fetch_date:
          type: string
          format: date-time
        domain:
          type: string
        type:
          $ref: '#/components/schemas/FederationChoiceEnum'
        manually_approves_followers:
          type: boolean
          nullable: true
        full_username:
          type: string
          readOnly: true
        is_local:
          type: boolean
          readOnly: true
      required:
      - domain
      - fid
      - full_username
      - is_local
      - preferred_username
    APIActorRequest:
      type: object
      properties:
        fid:
          type: string
          format: uri
          minLength: 1
          maxLength: 500
        url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        creation_date:
          type: string
          format: date-time
        summary:
          type: string
          nullable: true
          maxLength: 500
        preferred_username:
          type: string
          nullable: true
          maxLength: 200
        name:
          type: string
          nullable: true
          maxLength: 200
        last_fetch_date:
          type: string
          format: date-time
        domain:
          type: string
          minLength: 1
        type:
          $ref: '#/components/schemas/FederationChoiceEnum'
        manually_approves_followers:
          type: boolean
          nullable: true
      required:
      - domain
      - fid
      - preferred_username
    APIMutation:
      type: object
      properties:
        fid:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        type:
          type: string
          maxLength: 100
        creation_date:
          type: string
          format: date-time
          readOnly: true
        applied_date:
          type: string
          format: date-time
          nullable: true
        is_approved:
          type: boolean
          nullable: true
        is_applied:
          type: boolean
          readOnly: true
          nullable: true
        created_by:
          allOf:
          - $ref: '#/components/schemas/APIActor'
          readOnly: true
        approved_by:
          type: integer
          readOnly: true
          nullable: true
        summary:
          type: string
          nullable: true
          maxLength: 2000
        payload: {}
        previous_state:
          readOnly: true
          nullable: true
        target:
          type: object
          additionalProperties: {}
          readOnly: true
      required:
      - approved_by
      - created_by
      - creation_date
      - fid
      - is_applied
      - payload
      - previous_state
      - target
      - type
      - uuid
    APIMutationRequest:
      type: object
      properties:
        type:
          type: string
          minLength: 1
          maxLength: 100
        applied_date:
          type: string
          format: date-time
          nullable: true
        is_approved:
          type: boolean
          nullable: true
        summary:
          type: string
          nullable: true
          maxLength: 2000
        payload: {}
      required:
      - payload
      - type
    Activity:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        fid:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        actor:
          $ref: '#/components/schemas/APIActor'
        payload: {}
        object:
          type: object
          additionalProperties: {}
          readOnly: true
          nullable: true
        target:
          type: object
          additionalProperties: {}
          readOnly: true
          nullable: true
        related_object:
          type: object
          additionalProperties: {}
          readOnly: true
        creation_date:
          type: string
          format: date-time
        type:
          type: string
          nullable: true
          maxLength: 100
      required:
      - actor
      - object
      - related_object
      - target
    ActivityRequest:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        fid:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        actor:
          $ref: '#/components/schemas/APIActorRequest'
        payload: {}
        creation_date:
          type: string
          format: date-time
        type:
          type: string
          nullable: true
          minLength: 1
          maxLength: 100
      required:
      - actor
    Album:
      type: object
      properties:
        artist_credit:
          type: array
          items:
            $ref: '#/components/schemas/ArtistCredit'
        cover:
          allOf:
          - $ref: '#/components/schemas/CoverField'
          nullable: true
        is_playable:
          type: boolean
          readOnly: true
        tags:
          type: array
          items:
            type: string
          readOnly: true
        tracks_count:
          type: integer
          readOnly: true
        attributed_to:
          $ref: '#/components/schemas/APIActor'
        id:
          type: integer
        fid:
          type: string
          format: uri
        mbid:
          type: string
          format: uuid
        title:
          type: string
        release_date:
          type: string
          format: date
        creation_date:
          type: string
          format: date-time
        is_local:
          type: boolean
        duration:
          type: integer
          readOnly: true
        tracks:
          type: array
          items:
            $ref: '#/components/schemas/Track'
          nullable: true
        description:
          allOf:
          - $ref: '#/components/schemas/Content'
          nullable: true
      required:
      - artist_credit
      - attributed_to
      - cover
      - creation_date
      - duration
      - fid
      - id
      - is_local
      - is_playable
      - mbid
      - release_date
      - tags
      - title
      - tracks
      - tracks_count
    AlbumCreate:
      type: object
      properties:
        title:
          type: string
          maxLength: 255
        release_date:
          type: string
          format: date
          nullable: true
        tags:
          type: array
          items:
            type: string
          minItems: 0
        description:
          allOf:
          - $ref: '#/components/schemas/Content'
          nullable: true
        artist_credit:
          type: array
          items:
            type: string
      required:
      - artist_credit
      - title
    AlbumCreateRequest:
      type: object
      properties:
        cover:
          type: string
          writeOnly: true
          nullable: true
        title:
          type: string
          minLength: 1
          maxLength: 255
        release_date:
          type: string
          format: date
          nullable: true
        tags:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 0
        description:
          allOf:
          - $ref: '#/components/schemas/ContentRequest'
          nullable: true
        artist_credit:
          type: array
          items:
            type: string
      required:
      - artist_credit
      - title
    AlbumRequest:
      type: object
      properties:
        artist_credit:
          type: array
          items:
            $ref: '#/components/schemas/ArtistCreditRequest'
        cover:
          allOf:
          - $ref: '#/components/schemas/CoverFieldRequest'
          nullable: true
        attributed_to:
          $ref: '#/components/schemas/APIActorRequest'
        id:
          type: integer
        fid:
          type: string
          format: uri
          minLength: 1
        mbid:
          type: string
          format: uuid
        title:
          type: string
          minLength: 1
        release_date:
          type: string
          format: date
        creation_date:
          type: string
          format: date-time
        is_local:
          type: boolean
        tracks:
          type: array
          items:
            $ref: '#/components/schemas/TrackRequest'
          nullable: true
        description:
          allOf:
          - $ref: '#/components/schemas/ContentRequest'
          nullable: true
      required:
      - artist_credit
      - attributed_to
      - cover
      - creation_date
      - fid
      - id
      - is_local
      - mbid
      - release_date
      - title
      - tracks
    AllFavorite:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/SimpleFavorite'
        count:
          type: integer
          readOnly: true
      required:
      - count
      - results
    AllSubscriptions:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/InlineSubscription'
        count:
          type: integer
          readOnly: true
      required:
      - count
      - results
    AllowListStat:
      type: object
      properties:
        enabled:
          type: boolean
        domains:
          type: array
          items:
            type: string
      required:
      - domains
      - enabled
    Application:
      type: object
      properties:
        client_id:
          type: string
          maxLength: 100
        name:
          type: string
          maxLength: 255
        scopes:
          type: string
        created:
          type: string
          format: date-time
          readOnly: true
        updated:
          type: string
          format: date-time
          readOnly: true
      required:
      - created
      - scopes
      - updated
    ApplicationRequest:
      type: object
      properties:
        client_id:
          type: string
          minLength: 1
          maxLength: 100
        name:
          type: string
          maxLength: 255
        scopes:
          type: string
          minLength: 1
      required:
      - scopes
    Artist:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        fid:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        name:
          type: string
        creation_date:
          type: string
          format: date-time
        modification_date:
          type: string
          format: date-time
        is_local:
          type: boolean
          readOnly: true
        content_category:
          $ref: '#/components/schemas/ContentCategoryEnum'
        description:
          allOf:
          - $ref: '#/components/schemas/Content'
          nullable: true
        cover:
          allOf:
          - $ref: '#/components/schemas/CoverField'
          nullable: true
        channel:
          type: string
          format: uuid
          nullable: true
        attributed_to:
          type: integer
          nullable: true
        tags:
          type: array
          items:
            type: string
          readOnly: true
      required:
      - id
      - is_local
      - name
      - tags
    ArtistCredit:
      type: object
      properties:
        artist:
          $ref: '#/components/schemas/Artist'
        credit:
          type: string
          nullable: true
          maxLength: 500
        joinphrase:
          type: string
          nullable: true
          maxLength: 250
        index:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
      required:
      - artist
    ArtistCreditRequest:
      type: object
      properties:
        artist:
          $ref: '#/components/schemas/ArtistRequest'
        credit:
          type: string
          nullable: true
          maxLength: 500
        joinphrase:
          type: string
          nullable: true
          maxLength: 250
        index:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
      required:
      - artist
    ArtistRequest:
      type: object
      properties:
        fid:
          type: string
          format: uri
          nullable: true
          minLength: 1
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        name:
          type: string
          minLength: 1
        creation_date:
          type: string
          format: date-time
        modification_date:
          type: string
          format: date-time
        content_category:
          $ref: '#/components/schemas/ContentCategoryEnum'
        description:
          allOf:
          - $ref: '#/components/schemas/ContentRequest'
          nullable: true
        cover:
          allOf:
          - $ref: '#/components/schemas/CoverFieldRequest'
          nullable: true
        channel:
          type: string
          format: uuid
          nullable: true
        attributed_to:
          type: integer
          nullable: true
      required:
      - name
    ArtistWithAlbums:
      type: object
      properties:
        albums:
          type: string
          readOnly: true
        tags:
          type: array
          items:
            type: string
          readOnly: true
        attributed_to:
          allOf:
          - $ref: '#/components/schemas/APIActor'
          nullable: true
        channel:
          allOf:
          - $ref: '#/components/schemas/ArtistWithAlbumsInlineChannel'
          nullable: true
        tracks_count:
          type: integer
          readOnly: true
        id:
          type: integer
        fid:
          type: string
          format: uri
        mbid:
          type: string
          format: uuid
        name:
          type: string
        content_category:
          type: string
        creation_date:
          type: string
          format: date-time
        is_local:
          type: boolean
        cover:
          allOf:
          - $ref: '#/components/schemas/CoverField'
          nullable: true
      required:
      - albums
      - attributed_to
      - channel
      - content_category
      - cover
      - creation_date
      - fid
      - id
      - is_local
      - mbid
      - name
      - tags
      - tracks_count
    ArtistWithAlbumsInlineChannel:
      type: object
      properties:
        uuid:
          type: string
        actor:
          $ref: '#/components/schemas/InlineActor'
      required:
      - actor
      - uuid
    ArtistWithAlbumsInlineChannelRequest:
      type: object
      properties:
        uuid:
          type: string
          minLength: 1
        actor:
          $ref: '#/components/schemas/InlineActorRequest'
      required:
      - actor
      - uuid
    ArtistWithAlbumsRequest:
      type: object
      properties:
        attributed_to:
          allOf:
          - $ref: '#/components/schemas/APIActorRequest'
          nullable: true
        channel:
          allOf:
          - $ref: '#/components/schemas/ArtistWithAlbumsInlineChannelRequest'
          nullable: true
        id:
          type: integer
        fid:
          type: string
          format: uri
          minLength: 1
        mbid:
          type: string
          format: uuid
        name:
          type: string
          minLength: 1
        content_category:
          type: string
          minLength: 1
        creation_date:
          type: string
          format: date-time
        is_local:
          type: boolean
        cover:
          allOf:
          - $ref: '#/components/schemas/CoverFieldRequest'
          nullable: true
      required:
      - attributed_to
      - channel
      - content_category
      - cover
      - creation_date
      - fid
      - id
      - is_local
      - mbid
      - name
    Attachment:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        size:
          type: integer
          readOnly: true
        mimetype:
          type: string
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        urls:
          type: object
          properties:
            original:
              type: string
            small_square_crop:
              type: string
            medium_square_crop:
              type: string
            large_square_crop:
              type: string
          readOnly: true
      required:
      - creation_date
      - mimetype
      - size
      - urls
      - uuid
    AttachmentRequest:
      type: object
      properties:
        file:
          type: string
          format: binary
          writeOnly: true
      required:
      - file
    Channel:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        artist:
          $ref: '#/components/schemas/SimpleChannelArtist'
        attributed_to:
          $ref: '#/components/schemas/APIActor'
        actor:
          allOf:
          - $ref: '#/components/schemas/APIActor'
          readOnly: true
        creation_date:
          type: string
          format: date-time
        metadata: {}
        rss_url:
          type: string
        url:
          type: string
          format: uri
          readOnly: true
        downloads_count:
          type: integer
          readOnly: true
        subscriptions_count:
          type: integer
          readOnly: true
      required:
      - actor
      - artist
      - attributed_to
      - downloads_count
      - rss_url
      - subscriptions_count
      - url
    ChannelCreate:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        username:
          type: string
          pattern: ^[\w]+$
          maxLength: 200
        description:
          allOf:
          - $ref: '#/components/schemas/Content'
          nullable: true
        tags:
          type: array
          items:
            type: string
          minItems: 0
        content_category:
          $ref: '#/components/schemas/ContentCategoryEnum'
        metadata:
          type: object
          additionalProperties: {}
      required:
      - content_category
      - description
      - name
      - tags
      - username
    ChannelCreateRequest:
      type: object
      properties:
        cover:
          type: string
          writeOnly: true
          nullable: true
        name:
          type: string
          minLength: 1
          maxLength: 200
        username:
          type: string
          minLength: 1
          pattern: ^[\w]+$
          maxLength: 200
        description:
          allOf:
          - $ref: '#/components/schemas/ContentRequest'
          nullable: true
        tags:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 0
        content_category:
          $ref: '#/components/schemas/ContentCategoryEnum'
        metadata:
          type: object
          additionalProperties: {}
      required:
      - content_category
      - description
      - name
      - tags
      - username
    ChannelRequest:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        artist:
          $ref: '#/components/schemas/SimpleChannelArtistRequest'
        attributed_to:
          $ref: '#/components/schemas/APIActorRequest'
        creation_date:
          type: string
          format: date-time
        metadata: {}
        rss_url:
          type: string
          minLength: 1
      required:
      - artist
      - attributed_to
      - rss_url
    ChannelUpdate:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
        description:
          allOf:
          - $ref: '#/components/schemas/Content'
          nullable: true
        tags:
          type: array
          items:
            type: string
          minItems: 0
        content_category:
          $ref: '#/components/schemas/ContentCategoryEnum'
        metadata:
          type: object
          additionalProperties: {}
      required:
      - content_category
      - description
      - name
      - tags
    ChannelUpdateRequest:
      type: object
      properties:
        cover:
          type: string
          writeOnly: true
          nullable: true
        name:
          type: string
          minLength: 1
          maxLength: 200
        description:
          allOf:
          - $ref: '#/components/schemas/ContentRequest'
          nullable: true
        tags:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 0
        content_category:
          $ref: '#/components/schemas/ContentCategoryEnum'
        metadata:
          type: object
          additionalProperties: {}
      required:
      - content_category
      - description
      - name
      - tags
    Content:
      type: object
      properties:
        text:
          type: string
          nullable: true
          maxLength: 5000
        content_type:
          $ref: '#/components/schemas/ContentTypeEnum'
        html:
          type: string
          readOnly: true
      required:
      - content_type
      - html
      - text
    ContentCategoryEnum:
      enum:
      - music
      - podcast
      - other
      type: string
      description: |-
        * `music` - music
        * `podcast` - podcast
        * `other` - other
    ContentRequest:
      type: object
      properties:
        text:
          type: string
          nullable: true
          minLength: 1
          maxLength: 5000
        content_type:
          $ref: '#/components/schemas/ContentTypeEnum'
      required:
      - content_type
      - text
    ContentTypeEnum:
      enum:
      - text/html
      - text/markdown
      - text/plain
      type: string
      description: |-
        * `text/html` - text/html
        * `text/markdown` - text/markdown
        * `text/plain` - text/plain
    CoverField:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        size:
          type: integer
          readOnly: true
        mimetype:
          type: string
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        urls:
          type: object
          properties:
            original:
              type: string
            small_square_crop:
              type: string
            medium_square_crop:
              type: string
            large_square_crop:
              type: string
          readOnly: true
      required:
      - creation_date
      - mimetype
      - size
      - urls
      - uuid
    CoverFieldRequest:
      type: object
      properties:
        file:
          type: string
          format: binary
          writeOnly: true
      required:
      - file
    CreateApplication:
      type: object
      properties:
        client_id:
          type: string
          readOnly: true
        name:
          type: string
          maxLength: 255
        scopes:
          type: string
          default: read
        client_secret:
          type: string
          description: Hashed on Save. Copy it now if this is a new secret.
          maxLength: 255
        created:
          type: string
          format: date-time
          readOnly: true
        updated:
          type: string
          format: date-time
          readOnly: true
        redirect_uris:
          type: string
          description: Allowed URIs list, space separated
      required:
      - client_id
      - created
      - name
      - updated
    CreateApplicationRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        scopes:
          type: string
          minLength: 1
          default: read
        client_secret:
          type: string
          description: Hashed on Save. Copy it now if this is a new secret.
          maxLength: 255
        redirect_uris:
          type: string
          description: Allowed URIs list, space separated
      required:
      - name
    Domain:
      type: object
      properties:
        name:
          type: string
      required:
      - name
    Endpoints:
      type: object
      properties:
        knownNodes:
          type: string
          format: uri
        channels:
          type: string
          format: uri
        libraries:
          type: string
          format: uri
    ErrorDetail:
      type: object
      properties:
        detail:
          type: string
      required:
      - detail
    FederationChoiceEnum:
      enum:
      - Person
      - Tombstone
      - Application
      - Group
      - Organization
      - Service
      type: string
      description: |-
        * `Person` - Person
        * `Tombstone` - Tombstone
        * `Application` - Application
        * `Group` - Group
        * `Organization` - Organization
        * `Service` - Service
    Fetch:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        actor:
          allOf:
          - $ref: '#/components/schemas/APIActor'
          readOnly: true
        status:
          allOf:
          - $ref: '#/components/schemas/FetchStatusEnum'
          readOnly: true
        detail:
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        fetch_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        type:
          type: string
          readOnly: true
        object:
          oneOf:
          - $ref: '#/components/schemas/Artist'
          - $ref: '#/components/schemas/Album'
          - $ref: '#/components/schemas/Track'
          - $ref: '#/components/schemas/APIActor'
          - $ref: '#/components/schemas/Channel'
          - $ref: '#/components/schemas/Playlist'
          readOnly: true
      required:
      - actor
      - creation_date
      - detail
      - fetch_date
      - id
      - object
      - status
      - type
      - url
    FetchRequest:
      type: object
      properties:
        object_uri:
          type: string
          writeOnly: true
          minLength: 1
        force:
          type: boolean
          writeOnly: true
          default: false
      required:
      - object_uri
    FetchStatusEnum:
      enum:
      - pending
      - errored
      - finished
      - skipped
      type: string
      description: |-
        * `pending` - Pending
        * `errored` - Errored
        * `finished` - Finished
        * `skipped` - Skipped
    Filter:
      type: object
      properties:
        type:
          type: string
        label:
          type: string
        help_text:
          type: string
        fields:
          type: string
          readOnly: true
      required:
      - fields
      - help_text
      - label
      - type
    Follow:
      type: object
      properties:
        creation_date:
          type: string
          format: date-time
          readOnly: true
        actor:
          allOf:
          - $ref: '#/components/schemas/APIActor'
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        target:
          type: string
        approved:
          type: boolean
          readOnly: true
          nullable: true
      required:
      - actor
      - approved
      - creation_date
      - target
      - uuid
    FollowRequest:
      type: object
      properties:
        target:
          type: string
      required:
      - target
    FormatEnum:
      enum:
      - json
      type: string
      description: '* `json` - json'
    FullActor:
      type: object
      properties:
        fid:
          type: string
          format: uri
        url:
          type: string
          format: uri
        domain:
          type: string
        creation_date:
          type: string
          format: date-time
        last_fetch_date:
          type: string
          format: date-time
        name:
          type: string
        preferred_username:
          type: string
        full_username:
          type: string
        type:
          type: string
        is_local:
          type: boolean
        is_channel:
          type: boolean
          readOnly: true
        manually_approves_followers:
          type: boolean
        user:
          $ref: '#/components/schemas/UserBasic'
        summary:
          $ref: '#/components/schemas/Content'
        icon:
          $ref: '#/components/schemas/Attachment'
      required:
      - creation_date
      - domain
      - fid
      - full_username
      - icon
      - is_channel
      - is_local
      - last_fetch_date
      - manually_approves_followers
      - name
      - preferred_username
      - summary
      - type
      - url
      - user
    GlobalPreference:
      type: object
      properties:
        section:
          type: string
          readOnly: true
        name:
          type: string
          readOnly: true
        identifier:
          type: string
          readOnly: true
        default:
          type: string
          readOnly: true
        value:
          type: string
        verbose_name:
          type: string
          readOnly: true
        help_text:
          type: string
          readOnly: true
        additional_data:
          type: string
          readOnly: true
        field:
          type: string
          readOnly: true
      required:
      - additional_data
      - default
      - field
      - help_text
      - identifier
      - name
      - section
      - value
      - verbose_name
    GlobalPreferenceRequest:
      type: object
      properties:
        value:
          type: string
      required:
      - value
    Ident:
      type: object
      properties:
        type:
          type: string
        id:
          type: string
      required:
      - id
      - type
    ImportMetadata:
      type: object
      properties:
        title:
          type: string
          maxLength: 500
        description:
          type: string
          nullable: true
          maxLength: 5000
        mbid:
          type: string
          format: uuid
          nullable: true
        copyright:
          type: string
          nullable: true
          maxLength: 500
        position:
          type: integer
          minimum: 1
          nullable: true
        tags:
          type: array
          items:
            type: string
          minItems: 0
        license:
          type: string
          nullable: true
      required:
      - title
    ImportMetadataRequest:
      type: object
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 500
        description:
          type: string
          nullable: true
          minLength: 1
          maxLength: 5000
        mbid:
          type: string
          format: uuid
          nullable: true
        copyright:
          type: string
          nullable: true
          minLength: 1
          maxLength: 500
        position:
          type: integer
          minimum: 1
          nullable: true
        tags:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 0
        license:
          type: string
          nullable: true
        cover:
          type: string
          writeOnly: true
          nullable: true
        album:
          type: string
          writeOnly: true
          nullable: true
      required:
      - title
    ImportStatusEnum:
      enum:
      - draft
      - pending
      - finished
      - errored
      - skipped
      type: string
      description: |-
        * `draft` - Draft
        * `pending` - Pending
        * `finished` - Finished
        * `errored` - Errored
        * `skipped` - Skipped
    InboxItem:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        type:
          allOf:
          - $ref: '#/components/schemas/InboxItemTypeEnum'
          readOnly: true
        activity:
          $ref: '#/components/schemas/Activity'
        is_read:
          type: boolean
      required:
      - activity
      - id
      - type
    InboxItemRequest:
      type: object
      properties:
        activity:
          $ref: '#/components/schemas/ActivityRequest'
        is_read:
          type: boolean
      required:
      - activity
    InboxItemTypeEnum:
      enum:
      - to
      - cc
      type: string
      description: |-
        * `to` - to
        * `cc` - cc
    InlineActor:
      type: object
      properties:
        full_username:
          type: string
        preferred_username:
          type: string
        domain:
          type: string
      required:
      - domain
      - full_username
      - preferred_username
    InlineActorRequest:
      type: object
      properties:
        full_username:
          type: string
          minLength: 1
        preferred_username:
          type: string
          minLength: 1
        domain:
          type: string
          minLength: 1
      required:
      - domain
      - full_username
      - preferred_username
    InlineSubscription:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        channel:
          type: string
          format: uuid
      required:
      - channel
      - uuid
    LanguageItem:
      type: object
      properties:
        value:
          type: string
        label:
          type: string
      required:
      - label
      - value
    Library:
      type: object
      properties:
        fid:
          type: string
          format: uri
          maxLength: 500
        uuid:
          type: string
          format: uuid
        actor:
          $ref: '#/components/schemas/APIActor'
        name:
          type: string
          maxLength: 100
        creation_date:
          type: string
          format: date-time
        uploads_count:
          type: integer
          readOnly: true
        privacy_level:
          $ref: '#/components/schemas/LibraryPrivacyLevelEnum'
        follow:
          allOf:
          - $ref: '#/components/schemas/NestedLibraryFollow'
          nullable: true
        latest_scan:
          allOf:
          - $ref: '#/components/schemas/LibraryScan'
          nullable: true
      required:
      - actor
      - fid
      - name
      - uploads_count
    LibraryFollow:
      type: object
      properties:
        creation_date:
          type: string
          format: date-time
          readOnly: true
        actor:
          allOf:
          - $ref: '#/components/schemas/APIActor'
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        target:
          type: string
        approved:
          type: boolean
          readOnly: true
          nullable: true
      required:
      - actor
      - approved
      - creation_date
      - target
      - uuid
    LibraryFollowRequest:
      type: object
      properties:
        target:
          type: string
      required:
      - target
    LibraryForOwner:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        fid:
          type: string
          format: uri
          readOnly: true
        name:
          type: string
          maxLength: 100
        privacy_level:
          $ref: '#/components/schemas/LibraryPrivacyLevelEnum'
        uploads_count:
          type: integer
          readOnly: true
        size:
          type: integer
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        actor:
          allOf:
          - $ref: '#/components/schemas/APIActor'
          readOnly: true
      required:
      - actor
      - creation_date
      - fid
      - name
      - size
      - uploads_count
      - uuid
    LibraryForOwnerRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 100
        privacy_level:
          $ref: '#/components/schemas/LibraryPrivacyLevelEnum'
      required:
      - name
    LibraryPrivacyLevelEnum:
      enum:
      - me
      - instance
      - everyone
      type: string
      description: |-
        * `me` - Only me
        * `instance` - Everyone on my instance, and my followers
        * `everyone` - Everyone, including people on other instances
    LibraryRequest:
      type: object
      properties:
        fid:
          type: string
          format: uri
          minLength: 1
          maxLength: 500
        uuid:
          type: string
          format: uuid
        actor:
          $ref: '#/components/schemas/APIActorRequest'
        name:
          type: string
          minLength: 1
          maxLength: 100
        creation_date:
          type: string
          format: date-time
        privacy_level:
          $ref: '#/components/schemas/LibraryPrivacyLevelEnum'
        follow:
          allOf:
          - $ref: '#/components/schemas/NestedLibraryFollowRequest'
          nullable: true
        latest_scan:
          allOf:
          - $ref: '#/components/schemas/LibraryScanRequest'
          nullable: true
      required:
      - actor
      - fid
      - name
    LibraryScan:
      type: object
      properties:
        total_files:
          type: integer
          maximum: 2147483647
          minimum: 0
        processed_files:
          type: integer
          maximum: 2147483647
          minimum: 0
        errored_files:
          type: integer
          maximum: 2147483647
          minimum: 0
        status:
          type: string
          maxLength: 25
        creation_date:
          type: string
          format: date-time
        modification_date:
          type: string
          format: date-time
          nullable: true
    LibraryScanRequest:
      type: object
      properties:
        total_files:
          type: integer
          maximum: 2147483647
          minimum: 0
        processed_files:
          type: integer
          maximum: 2147483647
          minimum: 0
        errored_files:
          type: integer
          maximum: 2147483647
          minimum: 0
        status:
          type: string
          minLength: 1
          maxLength: 25
        creation_date:
          type: string
          format: date-time
        modification_date:
          type: string
          format: date-time
          nullable: true
    License:
      type: object
      properties:
        id:
          type: string
          readOnly: true
        url:
          type: string
          format: uri
        code:
          type: string
        name:
          type: string
        redistribute:
          type: boolean
        derivative:
          type: boolean
        commercial:
          type: boolean
        attribution:
          type: boolean
        copyleft:
          type: boolean
      required:
      - attribution
      - code
      - commercial
      - copyleft
      - derivative
      - id
      - name
      - redistribute
      - url
    Listening:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        actor:
          allOf:
          - $ref: '#/components/schemas/APIActor'
          readOnly: true
        track:
          allOf:
          - $ref: '#/components/schemas/Track'
          readOnly: true
        creation_date:
          type: string
          format: date-time
          nullable: true
      required:
      - actor
      - id
      - track
    ListeningWrite:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        actor:
          allOf:
          - $ref: '#/components/schemas/APIActor'
          readOnly: true
        track:
          type: integer
        creation_date:
          type: string
          format: date-time
          nullable: true
      required:
      - actor
      - id
      - track
    ListeningWriteRequest:
      type: object
      properties:
        track:
          type: integer
        creation_date:
          type: string
          format: date-time
          nullable: true
      required:
      - track
    ManageActor:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        fid:
          type: string
          format: uri
          maxLength: 500
        preferred_username:
          type: string
          nullable: true
          maxLength: 200
        full_username:
          type: string
          readOnly: true
        domain:
          type: string
        name:
          type: string
          nullable: true
          maxLength: 200
        summary:
          type: string
          nullable: true
          maxLength: 500
        type:
          $ref: '#/components/schemas/FederationChoiceEnum'
        creation_date:
          type: string
          format: date-time
          readOnly: true
        last_fetch_date:
          type: string
          format: date-time
        inbox_url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        outbox_url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        shared_inbox_url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        manually_approves_followers:
          type: boolean
          nullable: true
        is_local:
          type: boolean
          readOnly: true
        uploads_count:
          type: integer
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/ManageUser'
          nullable: true
        instance_policy:
          type: integer
          readOnly: true
      required:
      - creation_date
      - domain
      - fid
      - full_username
      - id
      - instance_policy
      - is_local
      - preferred_username
      - uploads_count
      - user
    ManageActorRequest:
      type: object
      properties:
        url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        fid:
          type: string
          format: uri
          minLength: 1
          maxLength: 500
        preferred_username:
          type: string
          nullable: true
          maxLength: 200
        domain:
          type: string
          minLength: 1
        name:
          type: string
          nullable: true
          maxLength: 200
        summary:
          type: string
          nullable: true
          maxLength: 500
        type:
          $ref: '#/components/schemas/FederationChoiceEnum'
        last_fetch_date:
          type: string
          format: date-time
        inbox_url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        outbox_url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        shared_inbox_url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        manually_approves_followers:
          type: boolean
          nullable: true
        user:
          allOf:
          - $ref: '#/components/schemas/ManageUserRequest'
          nullable: true
      required:
      - domain
      - fid
      - preferred_username
      - user
    ManageAlbum:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        fid:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        title:
          type: string
        creation_date:
          type: string
          format: date-time
        release_date:
          type: string
          format: date
          nullable: true
        cover:
          $ref: '#/components/schemas/CoverField'
        domain:
          type: string
        is_local:
          type: boolean
          readOnly: true
        tracks_count:
          type: integer
          readOnly: true
        artist_credit:
          type: array
          items:
            $ref: '#/components/schemas/ManageNestedArtistCredit'
        attributed_to:
          $ref: '#/components/schemas/ManageBaseActor'
        tags:
          type: array
          items:
            type: string
          readOnly: true
      required:
      - artist_credit
      - attributed_to
      - cover
      - domain
      - id
      - is_local
      - tags
      - title
      - tracks_count
    ManageAlbumRequest:
      type: object
      properties:
        fid:
          type: string
          format: uri
          nullable: true
          minLength: 1
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        title:
          type: string
          minLength: 1
        creation_date:
          type: string
          format: date-time
        release_date:
          type: string
          format: date
          nullable: true
        cover:
          $ref: '#/components/schemas/CoverFieldRequest'
        domain:
          type: string
          minLength: 1
        artist_credit:
          type: array
          items:
            $ref: '#/components/schemas/ManageNestedArtistCreditRequest'
        attributed_to:
          $ref: '#/components/schemas/ManageBaseActorRequest'
      required:
      - artist_credit
      - attributed_to
      - cover
      - domain
      - title
    ManageArtist:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        fid:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        name:
          type: string
        creation_date:
          type: string
          format: date-time
        domain:
          type: string
        is_local:
          type: boolean
          readOnly: true
        tracks_count:
          type: integer
          readOnly: true
        albums_count:
          type: integer
          readOnly: true
        attributed_to:
          $ref: '#/components/schemas/ManageBaseActor'
        tags:
          type: array
          items:
            type: string
          readOnly: true
        cover:
          allOf:
          - $ref: '#/components/schemas/CoverField'
          nullable: true
        channel:
          type: string
          readOnly: true
        content_category:
          $ref: '#/components/schemas/ContentCategoryEnum'
      required:
      - albums_count
      - attributed_to
      - channel
      - cover
      - domain
      - id
      - is_local
      - name
      - tags
      - tracks_count
    ManageArtistRequest:
      type: object
      properties:
        fid:
          type: string
          format: uri
          nullable: true
          minLength: 1
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        name:
          type: string
          minLength: 1
        creation_date:
          type: string
          format: date-time
        domain:
          type: string
          minLength: 1
        attributed_to:
          $ref: '#/components/schemas/ManageBaseActorRequest'
        cover:
          allOf:
          - $ref: '#/components/schemas/CoverFieldRequest'
          nullable: true
        content_category:
          $ref: '#/components/schemas/ContentCategoryEnum'
      required:
      - attributed_to
      - cover
      - domain
      - name
    ManageBaseActor:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        fid:
          type: string
          format: uri
          maxLength: 500
        preferred_username:
          type: string
          nullable: true
          maxLength: 200
        full_username:
          type: string
          readOnly: true
        domain:
          type: string
        name:
          type: string
          nullable: true
          maxLength: 200
        summary:
          type: string
          nullable: true
          maxLength: 500
        type:
          $ref: '#/components/schemas/FederationChoiceEnum'
        creation_date:
          type: string
          format: date-time
          readOnly: true
        last_fetch_date:
          type: string
          format: date-time
        inbox_url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        outbox_url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        shared_inbox_url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        manually_approves_followers:
          type: boolean
          nullable: true
        is_local:
          type: boolean
          readOnly: true
      required:
      - creation_date
      - domain
      - fid
      - full_username
      - id
      - is_local
      - preferred_username
    ManageBaseActorRequest:
      type: object
      properties:
        url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        fid:
          type: string
          format: uri
          minLength: 1
          maxLength: 500
        preferred_username:
          type: string
          nullable: true
          maxLength: 200
        domain:
          type: string
          minLength: 1
        name:
          type: string
          nullable: true
          maxLength: 200
        summary:
          type: string
          nullable: true
          maxLength: 500
        type:
          $ref: '#/components/schemas/FederationChoiceEnum'
        last_fetch_date:
          type: string
          format: date-time
        inbox_url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        outbox_url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        shared_inbox_url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        manually_approves_followers:
          type: boolean
          nullable: true
      required:
      - domain
      - fid
      - preferred_username
    ManageBaseNote:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        summary:
          type: string
          maxLength: 50000
        author:
          allOf:
          - $ref: '#/components/schemas/ManageBaseActor'
          readOnly: true
      required:
      - author
      - creation_date
      - id
      - summary
      - uuid
    ManageBaseNoteRequest:
      type: object
      properties:
        summary:
          type: string
          minLength: 1
          maxLength: 50000
      required:
      - summary
    ManageChannel:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        artist:
          $ref: '#/components/schemas/ManageArtist'
        attributed_to:
          $ref: '#/components/schemas/ManageBaseActor'
        actor:
          $ref: '#/components/schemas/ManageBaseActor'
        rss_url:
          type: string
          format: uri
          readOnly: true
          nullable: true
        metadata:
          readOnly: true
      required:
      - actor
      - artist
      - attributed_to
      - creation_date
      - id
      - metadata
      - rss_url
      - uuid
    ManageDomain:
      type: object
      properties:
        name:
          type: string
          format: uri
          maxLength: 255
        creation_date:
          type: string
          format: date-time
          readOnly: true
        actors_count:
          type: integer
          readOnly: true
        outbox_activities_count:
          type: integer
          readOnly: true
        nodeinfo:
          readOnly: true
        nodeinfo_fetch_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        instance_policy:
          type: integer
          readOnly: true
        allowed:
          type: boolean
          nullable: true
      required:
      - actors_count
      - creation_date
      - instance_policy
      - name
      - nodeinfo
      - nodeinfo_fetch_date
      - outbox_activities_count
    ManageDomainRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          format: uri
          maxLength: 255
        allowed:
          type: boolean
          nullable: true
      required:
      - name
    ManageDomainUpdate:
      type: object
      properties:
        name:
          type: string
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        actors_count:
          type: integer
          readOnly: true
        outbox_activities_count:
          type: integer
          readOnly: true
        nodeinfo:
          readOnly: true
        nodeinfo_fetch_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        instance_policy:
          type: integer
          readOnly: true
        allowed:
          type: boolean
          nullable: true
      required:
      - actors_count
      - creation_date
      - instance_policy
      - name
      - nodeinfo
      - nodeinfo_fetch_date
      - outbox_activities_count
    ManageDomainUpdateRequest:
      type: object
      properties:
        allowed:
          type: boolean
          nullable: true
    ManageInstancePolicy:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        target:
          $ref: '#/components/schemas/ManageTarget'
        creation_date:
          type: string
          format: date-time
          readOnly: true
        actor:
          type: string
          format: email
          readOnly: true
        summary:
          type: string
          nullable: true
          maxLength: 10000
        is_active:
          type: boolean
        block_all:
          type: boolean
        silence_activity:
          type: boolean
        silence_notifications:
          type: boolean
        reject_media:
          type: boolean
      required:
      - actor
      - creation_date
      - id
      - target
      - uuid
    ManageInstancePolicyRequest:
      type: object
      properties:
        target:
          $ref: '#/components/schemas/ManageTargetRequest'
        summary:
          type: string
          nullable: true
          maxLength: 10000
        is_active:
          type: boolean
        block_all:
          type: boolean
        silence_activity:
          type: boolean
        silence_notifications:
          type: boolean
        reject_media:
          type: boolean
      required:
      - target
    ManageInvitation:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        owner:
          $ref: '#/components/schemas/ManageUserSimple'
        invited_user:
          $ref: '#/components/schemas/ManageUserSimple'
        code:
          type: string
          nullable: true
        expiration_date:
          type: string
          format: date-time
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        users:
          type: array
          items:
            $ref: '#/components/schemas/ManageUserSimple'
      required:
      - creation_date
      - expiration_date
      - id
    ManageInvitationRequest:
      type: object
      properties:
        owner:
          $ref: '#/components/schemas/ManageUserSimpleRequest'
        invited_user:
          $ref: '#/components/schemas/ManageUserSimpleRequest'
        code:
          type: string
          nullable: true
          minLength: 1
        users:
          type: array
          items:
            $ref: '#/components/schemas/ManageUserSimpleRequest'
    ManageLibrary:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        fid:
          type: string
          format: uri
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
          nullable: true
        name:
          type: string
          maxLength: 100
        domain:
          type: string
        is_local:
          type: boolean
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        privacy_level:
          $ref: '#/components/schemas/LibraryPrivacyLevelEnum'
        uploads_count:
          type: integer
          readOnly: true
        actor:
          $ref: '#/components/schemas/ManageBaseActor'
      required:
      - actor
      - creation_date
      - domain
      - fid
      - id
      - is_local
      - name
      - uploads_count
      - url
      - uuid
    ManageLibraryRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 100
        domain:
          type: string
          minLength: 1
        privacy_level:
          $ref: '#/components/schemas/LibraryPrivacyLevelEnum'
        actor:
          $ref: '#/components/schemas/ManageBaseActorRequest'
      required:
      - actor
      - domain
      - name
    ManageNestedArtist:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        fid:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        name:
          type: string
        creation_date:
          type: string
          format: date-time
        domain:
          type: string
        is_local:
          type: boolean
          readOnly: true
      required:
      - domain
      - id
      - is_local
      - name
    ManageNestedArtistCredit:
      type: object
      properties:
        artist:
          $ref: '#/components/schemas/ManageNestedArtist'
      required:
      - artist
    ManageNestedArtistCreditRequest:
      type: object
      properties:
        artist:
          $ref: '#/components/schemas/ManageNestedArtistRequest'
      required:
      - artist
    ManageNestedArtistRequest:
      type: object
      properties:
        fid:
          type: string
          format: uri
          nullable: true
          minLength: 1
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        name:
          type: string
          minLength: 1
        creation_date:
          type: string
          format: date-time
        domain:
          type: string
          minLength: 1
      required:
      - domain
      - name
    ManageNestedLibrary:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        uuid:
          type: string
          format: uuid
        fid:
          type: string
          format: uri
          maxLength: 500
        url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        name:
          type: string
          maxLength: 100
        domain:
          type: string
        is_local:
          type: boolean
          readOnly: true
        creation_date:
          type: string
          format: date-time
        privacy_level:
          $ref: '#/components/schemas/LibraryPrivacyLevelEnum'
        actor:
          $ref: '#/components/schemas/ManageBaseActor'
      required:
      - actor
      - domain
      - fid
      - id
      - is_local
      - name
    ManageNestedLibraryRequest:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        fid:
          type: string
          format: uri
          minLength: 1
          maxLength: 500
        url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        name:
          type: string
          minLength: 1
          maxLength: 100
        domain:
          type: string
          minLength: 1
        creation_date:
          type: string
          format: date-time
        privacy_level:
          $ref: '#/components/schemas/LibraryPrivacyLevelEnum'
        actor:
          $ref: '#/components/schemas/ManageBaseActorRequest'
      required:
      - actor
      - domain
      - fid
      - name
    ManageNestedTrack:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        fid:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        title:
          type: string
        creation_date:
          type: string
          format: date-time
        position:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        disc_number:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        domain:
          type: string
        is_local:
          type: boolean
          readOnly: true
        copyright:
          type: string
          nullable: true
        license:
          type: string
          nullable: true
      required:
      - domain
      - id
      - is_local
      - title
    ManageNestedTrackRequest:
      type: object
      properties:
        fid:
          type: string
          format: uri
          nullable: true
          minLength: 1
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        title:
          type: string
          minLength: 1
        creation_date:
          type: string
          format: date-time
        position:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        disc_number:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        domain:
          type: string
          minLength: 1
        copyright:
          type: string
          nullable: true
        license:
          type: string
          minLength: 1
          nullable: true
      required:
      - domain
      - title
    ManageNote:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        summary:
          type: string
          maxLength: 50000
        author:
          allOf:
          - $ref: '#/components/schemas/ManageBaseActor'
          readOnly: true
        target: {}
      required:
      - author
      - creation_date
      - id
      - summary
      - target
      - uuid
    ManageNoteRequest:
      type: object
      properties:
        summary:
          type: string
          minLength: 1
          maxLength: 50000
        target: {}
      required:
      - summary
      - target
    ManageReport:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        fid:
          type: string
          format: uri
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        handled_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        summary:
          type: string
          readOnly: true
          nullable: true
        type:
          $ref: '#/components/schemas/ReportTypeEnum'
        target: {}
        target_state:
          readOnly: true
          nullable: true
        is_handled:
          type: boolean
        assigned_to:
          allOf:
          - $ref: '#/components/schemas/ManageBaseActor'
          nullable: true
        target_owner:
          $ref: '#/components/schemas/ManageBaseActor'
        submitter:
          $ref: '#/components/schemas/ManageBaseActor'
        submitter_email:
          type: string
          format: email
          readOnly: true
          nullable: true
        notes:
          type: array
          items:
            $ref: '#/components/schemas/ManageBaseNote'
          nullable: true
          default: []
      required:
      - creation_date
      - fid
      - handled_date
      - id
      - submitter_email
      - summary
      - target
      - target_state
      - type
      - uuid
    ManageReportRequest:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ReportTypeEnum'
        target: {}
        is_handled:
          type: boolean
        assigned_to:
          allOf:
          - $ref: '#/components/schemas/ManageBaseActorRequest'
          nullable: true
        target_owner:
          $ref: '#/components/schemas/ManageBaseActorRequest'
        submitter:
          $ref: '#/components/schemas/ManageBaseActorRequest'
        notes:
          type: array
          items:
            $ref: '#/components/schemas/ManageBaseNoteRequest'
          nullable: true
          default: []
      required:
      - target
      - type
    ManageTag:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 100
        creation_date:
          type: string
          format: date-time
        tracks_count:
          type: integer
          readOnly: true
        albums_count:
          type: integer
          readOnly: true
        artists_count:
          type: integer
          readOnly: true
      required:
      - albums_count
      - artists_count
      - id
      - name
      - tracks_count
    ManageTagRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 100
        creation_date:
          type: string
          format: date-time
      required:
      - name
    ManageTarget:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ManageTargetTypeEnum'
        id:
          type: string
      required:
      - id
      - type
    ManageTargetRequest:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ManageTargetTypeEnum'
        id:
          type: string
          minLength: 1
      required:
      - id
      - type
    ManageTargetTypeEnum:
      enum:
      - domain
      - actor
      type: string
      description: |-
        * `domain` - domain
        * `actor` - actor
    ManageTrack:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        fid:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        title:
          type: string
        creation_date:
          type: string
          format: date-time
        position:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        disc_number:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        domain:
          type: string
        is_local:
          type: boolean
          readOnly: true
        copyright:
          type: string
          nullable: true
        license:
          type: string
          nullable: true
        artist_credit:
          type: array
          items:
            $ref: '#/components/schemas/ManageNestedArtistCredit'
        album:
          allOf:
          - $ref: '#/components/schemas/ManageTrackAlbum'
          nullable: true
        attributed_to:
          allOf:
          - $ref: '#/components/schemas/ManageBaseActor'
          nullable: true
        uploads_count:
          type: integer
          readOnly: true
        tags:
          type: array
          items:
            type: string
          readOnly: true
        cover:
          $ref: '#/components/schemas/CoverField'
      required:
      - album
      - artist_credit
      - attributed_to
      - cover
      - domain
      - id
      - is_local
      - tags
      - title
      - uploads_count
    ManageTrackAlbum:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        fid:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        title:
          type: string
        creation_date:
          type: string
          format: date-time
        release_date:
          type: string
          format: date
          nullable: true
        cover:
          $ref: '#/components/schemas/CoverField'
        domain:
          type: string
        is_local:
          type: boolean
          readOnly: true
        tracks_count:
          type: integer
          readOnly: true
        artist_credit:
          type: array
          items:
            $ref: '#/components/schemas/ManageNestedArtistCredit'
      required:
      - artist_credit
      - cover
      - domain
      - id
      - is_local
      - title
      - tracks_count
    ManageTrackAlbumRequest:
      type: object
      properties:
        fid:
          type: string
          format: uri
          nullable: true
          minLength: 1
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        title:
          type: string
          minLength: 1
        creation_date:
          type: string
          format: date-time
        release_date:
          type: string
          format: date
          nullable: true
        cover:
          $ref: '#/components/schemas/CoverFieldRequest'
        domain:
          type: string
          minLength: 1
        artist_credit:
          type: array
          items:
            $ref: '#/components/schemas/ManageNestedArtistCreditRequest'
      required:
      - artist_credit
      - cover
      - domain
      - title
    ManageTrackRequest:
      type: object
      properties:
        fid:
          type: string
          format: uri
          nullable: true
          minLength: 1
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        title:
          type: string
          minLength: 1
        creation_date:
          type: string
          format: date-time
        position:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        disc_number:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        domain:
          type: string
          minLength: 1
        copyright:
          type: string
          nullable: true
        license:
          type: string
          minLength: 1
          nullable: true
        artist_credit:
          type: array
          items:
            $ref: '#/components/schemas/ManageNestedArtistCreditRequest'
        album:
          allOf:
          - $ref: '#/components/schemas/ManageTrackAlbumRequest'
          nullable: true
        attributed_to:
          allOf:
          - $ref: '#/components/schemas/ManageBaseActorRequest'
          nullable: true
        cover:
          $ref: '#/components/schemas/CoverFieldRequest'
      required:
      - album
      - artist_credit
      - attributed_to
      - cover
      - domain
      - title
    ManageUpload:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        uuid:
          type: string
          format: uuid
        fid:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        domain:
          type: string
        is_local:
          type: boolean
          readOnly: true
        audio_file:
          type: string
          format: uri
        listen_url:
          type: string
          readOnly: true
        source:
          type: string
          nullable: true
          maxLength: 500
        filename:
          type: string
          readOnly: true
        mimetype:
          type: string
          nullable: true
          maxLength: 200
        duration:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        bitrate:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        size:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        creation_date:
          type: string
          format: date-time
        accessed_date:
          type: string
          format: date-time
          nullable: true
        modification_date:
          type: string
          format: date-time
          nullable: true
        metadata: {}
        import_date:
          type: string
          format: date-time
          nullable: true
        import_details: {}
        import_status:
          $ref: '#/components/schemas/ImportStatusEnum'
        import_metadata:
          $ref: '#/components/schemas/ImportMetadata'
        import_reference:
          type: string
          maxLength: 50
        track:
          $ref: '#/components/schemas/ManageNestedTrack'
        library:
          $ref: '#/components/schemas/ManageNestedLibrary'
      required:
      - audio_file
      - domain
      - filename
      - id
      - import_metadata
      - is_local
      - library
      - listen_url
      - track
    ManageUploadRequest:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        fid:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        domain:
          type: string
          minLength: 1
        audio_file:
          type: string
          format: binary
        source:
          type: string
          nullable: true
          maxLength: 500
        mimetype:
          type: string
          nullable: true
          maxLength: 200
        duration:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        bitrate:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        size:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        creation_date:
          type: string
          format: date-time
        accessed_date:
          type: string
          format: date-time
          nullable: true
        modification_date:
          type: string
          format: date-time
          nullable: true
        metadata: {}
        import_date:
          type: string
          format: date-time
          nullable: true
        import_details: {}
        import_status:
          $ref: '#/components/schemas/ImportStatusEnum'
        import_metadata:
          $ref: '#/components/schemas/ImportMetadataRequest'
        import_reference:
          type: string
          minLength: 1
          maxLength: 50
        track:
          $ref: '#/components/schemas/ManageNestedTrackRequest'
        library:
          $ref: '#/components/schemas/ManageNestedLibraryRequest'
      required:
      - audio_file
      - domain
      - import_metadata
      - library
      - track
    ManageUser:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        username:
          type: string
          readOnly: true
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
        actor:
          type: object
          additionalProperties: {}
          readOnly: true
        email:
          type: string
          format: email
          readOnly: true
          title: Email address
        name:
          type: string
          title: Name of User
          maxLength: 255
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        is_superuser:
          type: boolean
          title: Superuser status
          description: Designates that this user has all permissions without explicitly
            assigning them.
        date_joined:
          type: string
          format: date-time
          readOnly: true
        last_activity:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        upload_quota:
          type: integer
          nullable: true
        privacy_level:
          allOf:
          - $ref: '#/components/schemas/PrivacyLevelEnum'
          readOnly: true
        full_username:
          type: string
          readOnly: true
      required:
      - actor
      - date_joined
      - email
      - full_username
      - id
      - last_activity
      - privacy_level
      - username
    ManageUserRequest:
      type: object
      properties:
        name:
          type: string
          title: Name of User
          maxLength: 255
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        is_superuser:
          type: boolean
          title: Superuser status
          description: Designates that this user has all permissions without explicitly
            assigning them.
        upload_quota:
          type: integer
          nullable: true
    ManageUserRequestRequest:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ManageUserRequestTypeEnum'
        status:
          $ref: '#/components/schemas/ManageUserRequestStatusEnum'
        assigned_to:
          $ref: '#/components/schemas/ManageBaseActorRequest'
        submitter:
          $ref: '#/components/schemas/ManageBaseActorRequest'
      required:
      - assigned_to
      - submitter
      - type
    ManageUserRequestStatusEnum:
      enum:
      - pending
      - refused
      - approved
      type: string
      description: |-
        * `pending` - Pending
        * `refused` - Refused
        * `approved` - Approved
    ManageUserRequestTypeEnum:
      enum:
      - signup
      type: string
      description: '* `signup` - Sign-up'
    ManageUserSimple:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        username:
          type: string
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+$
          maxLength: 150
        email:
          type: string
          format: email
          title: Email address
          maxLength: 254
        name:
          type: string
          title: Name of User
          maxLength: 255
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        is_superuser:
          type: boolean
          title: Superuser status
          description: Designates that this user has all permissions without explicitly
            assigning them.
        date_joined:
          type: string
          format: date-time
        last_activity:
          type: string
          format: date-time
          nullable: true
        privacy_level:
          $ref: '#/components/schemas/PrivacyLevelEnum'
        upload_quota:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
      required:
      - id
      - username
    ManageUserSimpleRequest:
      type: object
      properties:
        username:
          type: string
          minLength: 1
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+$
          maxLength: 150
        email:
          type: string
          format: email
          title: Email address
          maxLength: 254
        name:
          type: string
          title: Name of User
          maxLength: 255
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        is_superuser:
          type: boolean
          title: Superuser status
          description: Designates that this user has all permissions without explicitly
            assigning them.
        date_joined:
          type: string
          format: date-time
        last_activity:
          type: string
          format: date-time
          nullable: true
        privacy_level:
          $ref: '#/components/schemas/PrivacyLevelEnum'
        upload_quota:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
      required:
      - username
    Metadata20:
      type: object
      properties:
        actorId:
          type: string
        private:
          type: boolean
          readOnly: true
        shortDescription:
          type: string
          readOnly: true
        longDescription:
          type: string
          readOnly: true
        contactEmail:
          type: string
          readOnly: true
        nodeName:
          type: string
          readOnly: true
        banner:
          type: string
          readOnly: true
        defaultUploadQuota:
          type: integer
          readOnly: true
        supportedUploadExtensions:
          type: array
          items:
            type: string
        allowList:
          allOf:
          - $ref: '#/components/schemas/AllowListStat'
          readOnly: true
        funkwhaleSupportMessageEnabled:
          type: boolean
          readOnly: true
        instanceSupportMessage:
          type: string
          readOnly: true
        usage:
          $ref: '#/components/schemas/MetadataUsage'
        library:
          allOf:
          - $ref: '#/components/schemas/NodeInfoLibrary'
          readOnly: true
        reportTypes:
          type: array
          items:
            $ref: '#/components/schemas/ReportType'
        endpoints:
          $ref: '#/components/schemas/Endpoints'
        rules:
          type: string
          readOnly: true
        terms:
          type: string
          readOnly: true
      required:
      - actorId
      - allowList
      - banner
      - contactEmail
      - defaultUploadQuota
      - endpoints
      - funkwhaleSupportMessageEnabled
      - instanceSupportMessage
      - library
      - longDescription
      - nodeName
      - private
      - reportTypes
      - rules
      - shortDescription
      - supportedUploadExtensions
      - terms
    Metadata21:
      type: object
      properties:
        actorId:
          type: string
        private:
          type: boolean
          readOnly: true
        shortDescription:
          type: string
          readOnly: true
        longDescription:
          type: string
          readOnly: true
        contactEmail:
          type: string
          readOnly: true
        nodeName:
          type: string
          readOnly: true
        banner:
          type: string
          readOnly: true
        defaultUploadQuota:
          type: integer
          readOnly: true
        supportedUploadExtensions:
          type: array
          items:
            type: string
        allowList:
          allOf:
          - $ref: '#/components/schemas/AllowListStat'
          readOnly: true
        funkwhaleSupportMessageEnabled:
          type: boolean
          readOnly: true
        instanceSupportMessage:
          type: string
          readOnly: true
        usage:
          $ref: '#/components/schemas/MetadataUsage'
        languages:
          type: array
          items:
            type: string
        location:
          type: string
        content:
          $ref: '#/components/schemas/MetadataContent'
        features:
          type: array
          items:
            type: string
        codeOfConduct:
          type: string
          readOnly: true
      required:
      - actorId
      - allowList
      - banner
      - codeOfConduct
      - contactEmail
      - content
      - defaultUploadQuota
      - features
      - funkwhaleSupportMessageEnabled
      - instanceSupportMessage
      - languages
      - location
      - longDescription
      - nodeName
      - private
      - shortDescription
      - supportedUploadExtensions
    MetadataContent:
      type: object
      properties:
        local:
          $ref: '#/components/schemas/MetadataContentLocal'
        topMusicCategories:
          type: array
          items:
            $ref: '#/components/schemas/MetadataContentCategory'
        topPodcastCategories:
          type: array
          items:
            $ref: '#/components/schemas/MetadataContentCategory'
      required:
      - local
      - topMusicCategories
      - topPodcastCategories
    MetadataContentCategory:
      type: object
      properties:
        name:
          type: string
        count:
          type: integer
      required:
      - count
      - name
    MetadataContentLocal:
      type: object
      properties:
        artists:
          type: integer
        releases:
          type: integer
        recordings:
          type: integer
        hoursOfContent:
          type: integer
      required:
      - artists
      - hoursOfContent
      - recordings
      - releases
    MetadataUsage:
      type: object
      properties:
        favorites:
          $ref: '#/components/schemas/MetadataUsageFavorite'
        listenings:
          $ref: '#/components/schemas/TotalCount'
        downloads:
          $ref: '#/components/schemas/TotalCount'
      required:
      - downloads
      - favorites
      - listenings
    MetadataUsageFavorite:
      type: object
      properties:
        tracks:
          allOf:
          - $ref: '#/components/schemas/TotalCount'
          readOnly: true
      required:
      - tracks
    MetedataChoices:
      type: object
      properties:
        language:
          type: array
          items:
            $ref: '#/components/schemas/LanguageItem'
        itunes_category:
          type: array
          items:
            $ref: '#/components/schemas/iTunesCategoryItem'
      required:
      - itunes_category
      - language
    ModerationTarget:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ModerationTargetTypeEnum'
        id:
          type: string
      required:
      - id
      - type
    ModerationTargetRequest:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ModerationTargetTypeEnum'
        id:
          type: string
          minLength: 1
      required:
      - id
      - type
    ModerationTargetTypeEnum:
      enum:
      - artist
      type: string
      description: '* `artist` - artist'
    NestedLibraryFollow:
      type: object
      properties:
        creation_date:
          type: string
          format: date-time
        uuid:
          type: string
          format: uuid
        fid:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        approved:
          type: boolean
          nullable: true
        modification_date:
          type: string
          format: date-time
          readOnly: true
      required:
      - modification_date
    NestedLibraryFollowRequest:
      type: object
      properties:
        creation_date:
          type: string
          format: date-time
        uuid:
          type: string
          format: uuid
        fid:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        approved:
          type: boolean
          nullable: true
    NodeInfo20:
      type: object
      properties:
        version:
          type: string
          readOnly: true
        software:
          $ref: '#/components/schemas/Software'
        protocols:
          type: array
          items: {}
          readOnly: true
        services:
          allOf:
          - $ref: '#/components/schemas/Services'
          default:
            inbound: []
            outbound: []
        openRegistrations:
          type: boolean
          readOnly: true
        usage:
          allOf:
          - $ref: '#/components/schemas/Usage'
          readOnly: true
        metadata:
          allOf:
          - $ref: '#/components/schemas/Metadata20'
          readOnly: true
      required:
      - metadata
      - openRegistrations
      - protocols
      - software
      - usage
      - version
    NodeInfo21:
      type: object
      properties:
        version:
          type: string
          readOnly: true
        software:
          $ref: '#/components/schemas/SoftwareSerializer_v2'
        protocols:
          type: array
          items: {}
          readOnly: true
        services:
          allOf:
          - $ref: '#/components/schemas/Services'
          default:
            inbound: []
            outbound: []
        openRegistrations:
          type: boolean
          readOnly: true
        usage:
          allOf:
          - $ref: '#/components/schemas/Usage'
          readOnly: true
        metadata:
          allOf:
          - $ref: '#/components/schemas/Metadata21'
          readOnly: true
      required:
      - metadata
      - openRegistrations
      - protocols
      - software
      - usage
      - version
    NodeInfoLibrary:
      type: object
      properties:
        federationEnabled:
          type: boolean
        anonymousCanListen:
          type: boolean
        tracks:
          allOf:
          - $ref: '#/components/schemas/TotalCount'
          default:
            total: 0
        artists:
          allOf:
          - $ref: '#/components/schemas/TotalCount'
          default:
            total: 0
        albums:
          allOf:
          - $ref: '#/components/schemas/TotalCount'
          default:
            total: 0
        music:
          allOf:
          - $ref: '#/components/schemas/TotalHours'
          default:
            hours: 0
      required:
      - anonymousCanListen
      - federationEnabled
    Oembed:
      type: object
      properties:
        format:
          $ref: '#/components/schemas/FormatEnum'
        url:
          type: string
          format: uri
        maxheight:
          type: integer
        maxwidth:
          type: integer
      required:
      - format
      - url
    PaginatedAPIMutationList:
      type: object
      required:
      - count
      - results
      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/APIMutation'
    PaginatedAlbumList:
      type: object
      required:
      - count
      - results
      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/Album'
    PaginatedApplicationList:
      type: object
      required:
      - count
      - results
      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/Application'
    PaginatedArtistWithAlbumsList:
      type: object
      required:
      - count
      - results
      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/ArtistWithAlbums'
    PaginatedChannelList:
      type: object
      required:
      - count
      - results
      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/Channel'
    PaginatedDomainList:
      type: object
      required:
      - count
      - results
      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/Domain'
    PaginatedFetchList:
      type: object
      required:
      - count
      - results
      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'
    PaginatedFollowList:
      type: object
      required:
      - count
      - results
      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/Follow'
    PaginatedInboxItemList:
      type: object
      required:
      - count
      - results
      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/InboxItem'
    PaginatedLibraryFollowList:
      type: object
      required:
      - count
      - results
      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/LibraryFollow'
    PaginatedLibraryForOwnerList:
      type: object
      required:
      - count
      - results
      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/LibraryForOwner'
    PaginatedLibraryList:
      type: object
      required:
      - count
      - results
      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
      required:
      - count
      - results
      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/License'
    PaginatedListeningList:
      type: object
      required:
      - count
      - results
      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/Listening'
    PaginatedManageActorList:
      type: object
      required:
      - count
      - results
      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/ManageActor'
    PaginatedManageAlbumList:
      type: object
      required:
      - count
      - results
      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/ManageAlbum'
    PaginatedManageArtistList:
      type: object
      required:
      - count
      - results
      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/ManageArtist'
    PaginatedManageChannelList:
      type: object
      required:
      - count
      - results
      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/ManageChannel'
    PaginatedManageDomainList:
      type: object
      required:
      - count
      - results
      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/ManageDomain'
    PaginatedManageInstancePolicyList:
      type: object
      required:
      - count
      - results
      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/ManageInstancePolicy'
    PaginatedManageInvitationList:
      type: object
      required:
      - count
      - results
      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/ManageInvitation'
    PaginatedManageLibraryList:
      type: object
      required:
      - count
      - results
      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/ManageLibrary'
    PaginatedManageNoteList:
      type: object
      required:
      - count
      - results
      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/ManageNote'
    PaginatedManageReportList:
      type: object
      required:
      - count
      - results
      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/ManageReport'
    PaginatedManageTagList:
      type: object
      required:
      - count
      - results
      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/ManageTag'
    PaginatedManageTrackList:
      type: object
      required:
      - count
      - results
      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/ManageTrack'
    PaginatedManageUploadList:
      type: object
      required:
      - count
      - results
      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/ManageUpload'
    PaginatedManageUserList:
      type: object
      required:
      - count
      - results
      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/ManageUser'
    PaginatedManageUserRequestList:
      type: object
      required:
      - count
      - results
      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/ManageUserRequest'
    PaginatedPlaylistList:
      type: object
      required:
      - count
      - results
      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/Playlist'
    PaginatedPlaylistTrackList:
      type: object
      required:
      - count
      - results
      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
      required:
      - count
      - results
      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/Radio'
    PaginatedSubscriptionList:
      type: object
      required:
      - count
      - results
      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/Subscription'
    PaginatedTagList:
      type: object
      required:
      - count
      - results
      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/Tag'
    PaginatedTrackList:
      type: object
      required:
      - count
      - results
      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/Track'
    PaginatedUploadForOwnerList:
      type: object
      required:
      - count
      - results
      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/UploadForOwner'
    PaginatedUserFilterList:
      type: object
      required:
      - count
      - results
      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/UserFilter'
    PaginatedUserTrackFavoriteList:
      type: object
      required:
      - count
      - results
      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/UserTrackFavorite'
    PasswordChange:
      type: object
      properties:
        new_password1:
          type: string
          maxLength: 128
        new_password2:
          type: string
          maxLength: 128
      required:
      - new_password1
      - new_password2
    PasswordChangeRequest:
      type: object
      properties:
        new_password1:
          type: string
          minLength: 1
          maxLength: 128
        new_password2:
          type: string
          minLength: 1
          maxLength: 128
      required:
      - new_password1
      - new_password2
    PasswordReset:
      type: object
      description: Serializer for requesting a password reset e-mail.
      properties:
        email:
          type: string
          format: email
      required:
      - email
    PasswordResetConfirm:
      type: object
      description: Serializer for confirming a password reset attempt.
      properties:
        new_password1:
          type: string
          maxLength: 128
        new_password2:
          type: string
          maxLength: 128
        uid:
          type: string
        token:
          type: string
      required:
      - new_password1
      - new_password2
      - token
      - uid
    PasswordResetConfirmRequest:
      type: object
      description: Serializer for confirming a password reset attempt.
      properties:
        new_password1:
          type: string
          minLength: 1
          maxLength: 128
        new_password2:
          type: string
          minLength: 1
          maxLength: 128
        uid:
          type: string
          minLength: 1
        token:
          type: string
          minLength: 1
      required:
      - new_password1
      - new_password2
      - token
      - uid
    PasswordResetRequest:
      type: object
      description: Serializer for requesting a password reset e-mail.
      properties:
        email:
          type: string
          format: email
          minLength: 1
      required:
      - email
    PatchedApplicationRequest:
      type: object
      properties:
        client_id:
          type: string
          minLength: 1
          maxLength: 100
        name:
          type: string
          maxLength: 255
        scopes:
          type: string
          minLength: 1
    PatchedChannelUpdateRequest:
      type: object
      properties:
        cover:
          type: string
          writeOnly: true
          nullable: true
        name:
          type: string
          minLength: 1
          maxLength: 200
        description:
          allOf:
          - $ref: '#/components/schemas/ContentRequest'
          nullable: true
        tags:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 0
        content_category:
          $ref: '#/components/schemas/ContentCategoryEnum'
        metadata:
          type: object
          additionalProperties: {}
    PatchedGlobalPreferenceRequest:
      type: object
      properties:
        value:
          type: string
    PatchedInboxItemRequest:
      type: object
      properties:
        activity:
          $ref: '#/components/schemas/ActivityRequest'
        is_read:
          type: boolean
    PatchedManageDomainUpdateRequest:
      type: object
      properties:
        allowed:
          type: boolean
          nullable: true
    PatchedManageInstancePolicyRequest:
      type: object
      properties:
        target:
          $ref: '#/components/schemas/ManageTargetRequest'
        summary:
          type: string
          nullable: true
          maxLength: 10000
        is_active:
          type: boolean
        block_all:
          type: boolean
        silence_activity:
          type: boolean
        silence_notifications:
          type: boolean
        reject_media:
          type: boolean
    PatchedManageInvitationRequest:
      type: object
      properties:
        owner:
          $ref: '#/components/schemas/ManageUserSimpleRequest'
        invited_user:
          $ref: '#/components/schemas/ManageUserSimpleRequest'
        code:
          type: string
          nullable: true
          minLength: 1
        users:
          type: array
          items:
            $ref: '#/components/schemas/ManageUserSimpleRequest'
    PatchedManageLibraryRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 100
        domain:
          type: string
          minLength: 1
        privacy_level:
          $ref: '#/components/schemas/LibraryPrivacyLevelEnum'
        actor:
          $ref: '#/components/schemas/ManageBaseActorRequest'
    PatchedManageReportRequest:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ReportTypeEnum'
        target: {}
        is_handled:
          type: boolean
        assigned_to:
          allOf:
          - $ref: '#/components/schemas/ManageBaseActorRequest'
          nullable: true
        target_owner:
          $ref: '#/components/schemas/ManageBaseActorRequest'
        submitter:
          $ref: '#/components/schemas/ManageBaseActorRequest'
        notes:
          type: array
          items:
            $ref: '#/components/schemas/ManageBaseNoteRequest'
          nullable: true
          default: []
    PatchedManageUserRequest:
      type: object
      properties:
        name:
          type: string
          title: Name of User
          maxLength: 255
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        is_superuser:
          type: boolean
          title: Superuser status
          description: Designates that this user has all permissions without explicitly
            assigning them.
        upload_quota:
          type: integer
          nullable: true
    PatchedManageUserRequestRequest:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ManageUserRequestTypeEnum'
        status:
          $ref: '#/components/schemas/ManageUserRequestStatusEnum'
        assigned_to:
          $ref: '#/components/schemas/ManageBaseActorRequest'
        submitter:
          $ref: '#/components/schemas/ManageBaseActorRequest'
    PatchedPlaylistRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 100
        privacy_level:
          $ref: '#/components/schemas/PrivacyLevelEnum'
        description:
          type: string
          nullable: true
          maxLength: 5000
    PatchedRadioRequest:
      type: object
      properties:
        is_public:
          type: boolean
        name:
          type: string
          minLength: 1
          maxLength: 100
        config: {}
        description:
          type: string
    PatchedUploadForOwnerRequest:
      type: object
      properties:
        filename:
          type: string
          minLength: 1
        track:
          allOf:
          - $ref: '#/components/schemas/TrackRequest'
          nullable: true
        library:
          type: string
        channel:
          type: string
        import_status:
          allOf:
          - $ref: '#/components/schemas/ImportStatusEnum'
          default: pending
        privacy_level:
          $ref: '#/components/schemas/LibraryPrivacyLevelEnum'
        import_metadata:
          $ref: '#/components/schemas/ImportMetadataRequest'
        import_reference:
          type: string
          minLength: 1
          maxLength: 50
        source:
          type: string
          nullable: true
          maxLength: 500
        audio_file:
          type: string
          format: binary
          writeOnly: true
    PatchedUserDetailsRequest:
      type: object
      description: User model w/o password
      properties:
        username:
          type: string
          minLength: 1
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+$
          maxLength: 150
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
    PatchedUserWriteRequest:
      type: object
      properties:
        name:
          type: string
          title: Name of User
          maxLength: 255
        privacy_level:
          $ref: '#/components/schemas/PrivacyLevelEnum'
        avatar:
          type: string
          writeOnly: true
        instance_support_message_display_date:
          type: string
          format: date-time
          nullable: true
        funkwhale_support_message_display_date:
          type: string
          format: date-time
          nullable: true
        summary:
          allOf:
          - $ref: '#/components/schemas/ContentRequest'
          nullable: true
    Playlist:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        fid:
          type: string
          format: uri
          readOnly: true
        name:
          type: string
          maxLength: 100
        actor:
          allOf:
          - $ref: '#/components/schemas/APIActor'
          readOnly: true
        modification_date:
          type: string
          format: date-time
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
        privacy_level:
          $ref: '#/components/schemas/PrivacyLevelEnum'
        tracks_count:
          type: integer
          readOnly: true
        album_covers:
          type: array
          items:
            type: string
          readOnly: true
        duration:
          type: integer
          readOnly: true
        is_playable:
          type: boolean
          readOnly: true
        description:
          type: string
          nullable: true
          maxLength: 5000
        library:
          type: string
          format: uri
          readOnly: true
        library_followed:
          type: boolean
          readOnly: true
      required:
      - actor
      - album_covers
      - creation_date
      - duration
      - fid
      - is_playable
      - library
      - library_followed
      - modification_date
      - name
      - tracks_count
      - uuid
    PlaylistAddManyRequest:
      type: object
      properties:
        tracks:
          type: array
          items:
            type: integer
        allow_duplicates:
          type: boolean
      required:
      - tracks
    PlaylistRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 100
        privacy_level:
          $ref: '#/components/schemas/PrivacyLevelEnum'
        description:
          type: string
          nullable: true
          maxLength: 5000
      required:
      - name
    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
      - followers
      - instance
      - everyone
      type: string
      description: |-
        * `me` - Only me
        * `followers` - Me and my followers
        * `instance` - Everyone on my instance, and my followers
        * `everyone` - Everyone, including people on other instances
    Radio:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        is_public:
          type: boolean
        name:
          type: string
          maxLength: 100
        creation_date:
          type: string
          format: date-time
          readOnly: true
        user:
          allOf:
          - $ref: '#/components/schemas/UserBasic'
          readOnly: true
        config: {}
        description:
          type: string
      required:
      - config
      - creation_date
      - id
      - name
      - user
    RadioRequest:
      type: object
      properties:
        is_public:
          type: boolean
        name:
          type: string
          minLength: 1
          maxLength: 100
        config: {}
        description:
          type: string
      required:
      - config
      - name
    RadioSession:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        radio_type:
          type: string
          maxLength: 50
        related_object_id:
          type: string
          nullable: true
        user:
          type: integer
          nullable: true
        creation_date:
          type: string
          format: date-time
        custom_radio:
          type: integer
          nullable: true
        config:
          nullable: true
      required:
      - id
      - radio_type
    RadioSessionRequest:
      type: object
      properties:
        radio_type:
          type: string
          minLength: 1
          maxLength: 50
        related_object_id:
          type: string
          nullable: true
          minLength: 1
        user:
          type: integer
          nullable: true
        creation_date:
          type: string
          format: date-time
        custom_radio:
          type: integer
          nullable: true
        config:
          nullable: true
      required:
      - radio_type
    RadioSessionTrackSerializerCreate:
      type: object
      properties:
        session:
          type: integer
        count:
          type: integer
          nullable: true
      required:
      - session
    RadioSessionTrackSerializerCreateRequest:
      type: object
      properties:
        session:
          type: integer
        count:
          type: integer
          nullable: true
      required:
      - session
    RateLimit:
      type: object
      properties:
        enabled:
          type: boolean
        ident:
          $ref: '#/components/schemas/Ident'
        scopes:
          type: array
          items:
            $ref: '#/components/schemas/Scopes'
      required:
      - enabled
      - ident
      - scopes
    Register:
      type: object
      properties:
        username:
          type: string
          maxLength: 150
          minLength: 1
        email:
          type: string
          format: email
        invitation:
          type: string
          nullable: true
      required:
      - email
      - username
    RegisterRequest:
      type: object
      properties:
        username:
          type: string
          minLength: 1
          maxLength: 150
        email:
          type: string
          format: email
          minLength: 1
        password1:
          type: string
          writeOnly: true
          minLength: 1
        password2:
          type: string
          writeOnly: true
          minLength: 1
        invitation:
          type: string
          nullable: true
      required:
      - email
      - password1
      - password2
      - username
    Report:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        summary:
          type: string
          nullable: true
          maxLength: 50000
        creation_date:
          type: string
          format: date-time
          readOnly: true
        handled_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        is_handled:
          type: boolean
          readOnly: true
        submitter_email:
          type: string
          format: email
          nullable: true
          maxLength: 254
        target: {}
        type:
          $ref: '#/components/schemas/ReportTypeEnum'
      required:
      - creation_date
      - handled_date
      - is_handled
      - target
      - type
      - uuid
    ReportRequest:
      type: object
      properties:
        summary:
          type: string
          nullable: true
          maxLength: 50000
        submitter_email:
          type: string
          format: email
          nullable: true
          minLength: 1
          maxLength: 254
        target: {}
        type:
          $ref: '#/components/schemas/ReportTypeEnum'
      required:
      - target
      - type
    ReportType:
      type: object
      properties:
        type:
          type: string
        label:
          type: string
        anonymous:
          type: boolean
      required:
      - anonymous
      - label
      - type
    ReportTypeEnum:
      enum:
      - takedown_request
      - invalid_metadata
      - illegal_content
      - offensive_content
      - other
      type: string
      description: |-
        * `takedown_request` - Takedown request
        * `invalid_metadata` - Invalid metadata
        * `illegal_content` - Illegal content
        * `offensive_content` - Offensive content
        * `other` - Other
    Scopes:
      type: object
      properties:
        id:
          type: string
        rate:
          type: string
        description:
          type: string
        limit:
          type: integer
        duration:
          type: integer
        remaining:
          type: integer
        available:
          type: integer
        available_seconds:
          type: integer
        reset:
          type: integer
        reset_seconds:
          type: integer
      required:
      - available
      - available_seconds
      - description
      - duration
      - id
      - limit
      - rate
      - remaining
      - reset
      - reset_seconds
    SearchResult:
      type: object
      properties:
        artists:
          type: array
          items:
            $ref: '#/components/schemas/ArtistWithAlbums'
        tracks:
          type: array
          items:
            $ref: '#/components/schemas/Track'
        albums:
          type: array
          items:
            $ref: '#/components/schemas/Album'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
      required:
      - albums
      - artists
      - tags
      - tracks
    Services:
      type: object
      properties:
        inbound:
          type: array
          items:
            type: string
          default: []
        outbound:
          type: array
          items:
            type: string
          default: []
    SimpleChannelArtist:
      type: object
      properties:
        id:
          type: integer
        fid:
          type: string
          format: uri
        mbid:
          type: string
        name:
          type: string
        creation_date:
          type: string
          format: date-time
        modification_date:
          type: string
          format: date-time
        is_local:
          type: boolean
        content_category:
          type: string
        description:
          allOf:
          - $ref: '#/components/schemas/Content'
          nullable: true
        cover:
          allOf:
          - $ref: '#/components/schemas/CoverField'
          nullable: true
        channel:
          type: string
          format: uuid
          nullable: true
        tracks_count:
          type: integer
          readOnly: true
        tags:
          type: array
          items:
            type: string
      required:
      - content_category
      - creation_date
      - fid
      - id
      - is_local
      - mbid
      - modification_date
      - name
      - tracks_count
    SimpleChannelArtistRequest:
      type: object
      properties:
        id:
          type: integer
        fid:
          type: string
          format: uri
          minLength: 1
        mbid:
          type: string
          minLength: 1
        name:
          type: string
          minLength: 1
        creation_date:
          type: string
          format: date-time
        modification_date:
          type: string
          format: date-time
        is_local:
          type: boolean
        content_category:
          type: string
          minLength: 1
        description:
          allOf:
          - $ref: '#/components/schemas/ContentRequest'
          nullable: true
        cover:
          allOf:
          - $ref: '#/components/schemas/CoverFieldRequest'
          nullable: true
        channel:
          type: string
          format: uuid
          nullable: true
        tags:
          type: array
          items:
            type: string
            minLength: 1
      required:
      - content_category
      - creation_date
      - fid
      - id
      - is_local
      - mbid
      - modification_date
      - name
    SimpleFavorite:
      type: object
      properties:
        id:
          type: integer
        track:
          type: integer
      required:
      - id
      - track
    Software:
      type: object
      properties:
        name:
          type: string
          readOnly: true
        version:
          type: string
      required:
      - name
      - version
    SoftwareSerializer_v2:
      type: object
      properties:
        name:
          type: string
          readOnly: true
        version:
          type: string
        repository:
          type: string
          readOnly: true
        homepage:
          type: string
          readOnly: true
      required:
      - homepage
      - name
      - repository
      - version
    SpaManifest:
      type: object
      properties:
        name:
          type: string
          default: Funkwhale
        short_name:
          type: string
          default: Funkwhale
        display:
          type: string
        background_color:
          type: string
        lang:
          type: string
        categories:
          type: array
          items:
            type: string
        description:
          type: string
        icons:
          type: array
          items:
            $ref: '#/components/schemas/SpaManifestIcon'
        start_url:
          type: string
        prefer_related_applications:
          type: boolean
        related_applications:
          type: array
          items:
            $ref: '#/components/schemas/SpaManifestRelatedApplications'
        shortcuts:
          type: array
          items:
            $ref: '#/components/schemas/SpaManifestShortcut'
    SpaManifestIcon:
      type: object
      properties:
        src:
          type: string
        sizes:
          type: string
        type:
          type: string
      required:
      - sizes
      - src
      - type
    SpaManifestRelatedApplications:
      type: object
      properties:
        platform:
          type: string
        url:
          type: string
          format: uri
        id:
          type: string
      required:
      - id
      - platform
      - url
    SpaManifestShortcut:
      type: object
      properties:
        name:
          type: string
        url:
          type: string
        icons:
          type: array
          items:
            $ref: '#/components/schemas/SpaManifestIcon'
      required:
      - name
      - url
    Subscription:
      type: object
      properties:
        approved:
          type: boolean
          readOnly: true
        fid:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        creation_date:
          type: string
          format: date-time
          readOnly: true
      required:
      - approved
      - creation_date
      - fid
      - uuid
    Tag:
      type: object
      properties:
        name:
          type: string
          maxLength: 100
        creation_date:
          type: string
          format: date-time
      required:
      - name
    TextPreview:
      type: object
      properties:
        rendered:
          type: string
          readOnly: true
      required:
      - rendered
    TextPreviewRequest:
      type: object
      properties:
        text:
          type: string
          writeOnly: true
          minLength: 1
      required:
      - text
    TotalCount:
      type: object
      properties:
        total:
          type: integer
          readOnly: true
      required:
      - total
    TotalHours:
      type: object
      properties:
        hours:
          type: integer
          readOnly: true
      required:
      - hours
    Track:
      type: object
      properties:
        artist_credit:
          type: array
          items:
            $ref: '#/components/schemas/ArtistCredit'
        album:
          allOf:
          - $ref: '#/components/schemas/TrackAlbum'
          readOnly: true
        uploads:
          type: array
          items:
            $ref: '#/components/schemas/TrackUpload'
          readOnly: true
        listen_url:
          type: string
          format: uri
          readOnly: true
        tags:
          type: array
          items:
            type: string
          readOnly: true
        attributed_to:
          allOf:
          - $ref: '#/components/schemas/APIActor'
          nullable: true
        description:
          allOf:
          - $ref: '#/components/schemas/Content'
          nullable: true
        id:
          type: integer
        fid:
          type: string
          format: uri
        mbid:
          type: string
          format: uuid
        title:
          type: string
        creation_date:
          type: string
          format: date-time
        is_local:
          type: boolean
        position:
          type: integer
        disc_number:
          type: integer
        downloads_count:
          type: integer
        copyright:
          type: string
        license:
          type: string
          readOnly: true
        cover:
          allOf:
          - $ref: '#/components/schemas/CoverField'
          nullable: true
        is_playable:
          type: boolean
          readOnly: true
      required:
      - album
      - artist_credit
      - attributed_to
      - copyright
      - cover
      - creation_date
      - disc_number
      - downloads_count
      - fid
      - id
      - is_local
      - is_playable
      - license
      - listen_url
      - mbid
      - position
      - tags
      - title
      - uploads
    TrackAlbum:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        fid:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        title:
          type: string
        artist_credit:
          type: array
          items:
            $ref: '#/components/schemas/ArtistCredit'
        release_date:
          type: string
          format: date
          nullable: true
        cover:
          allOf:
          - $ref: '#/components/schemas/CoverField'
          nullable: true
        creation_date:
          type: string
          format: date-time
        is_local:
          type: boolean
          readOnly: true
        tracks_count:
          type: integer
          readOnly: true
      required:
      - artist_credit
      - cover
      - id
      - is_local
      - title
      - tracks_count
    TrackAlbumRequest:
      type: object
      properties:
        fid:
          type: string
          format: uri
          nullable: true
          minLength: 1
          maxLength: 500
        mbid:
          type: string
          format: uuid
          nullable: true
        title:
          type: string
          minLength: 1
        artist_credit:
          type: array
          items:
            $ref: '#/components/schemas/ArtistCreditRequest'
        release_date:
          type: string
          format: date
          nullable: true
        cover:
          allOf:
          - $ref: '#/components/schemas/CoverFieldRequest'
          nullable: true
        creation_date:
          type: string
          format: date-time
      required:
      - artist_credit
      - cover
      - title
    TrackMetadata:
      type: object
      properties:
        title:
          type: string
          nullable: true
        position:
          type: string
          nullable: true
        disc_number:
          type: string
          nullable: true
        copyright:
          type: string
          nullable: true
        license:
          type: string
          nullable: true
        mbid:
          type: string
          format: uuid
          nullable: true
        tags:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        album:
          type: string
        artist_credit:
          type: string
        cover_data:
          type: string
      required:
      - album
      - artist_credit
    TrackRequest:
      type: object
      properties:
        artist_credit:
          type: array
          items:
            $ref: '#/components/schemas/ArtistCreditRequest'
        attributed_to:
          allOf:
          - $ref: '#/components/schemas/APIActorRequest'
          nullable: true
        description:
          allOf:
          - $ref: '#/components/schemas/ContentRequest'
          nullable: true
        id:
          type: integer
        fid:
          type: string
          format: uri
          minLength: 1
        mbid:
          type: string
          format: uuid
        title:
          type: string
          minLength: 1
        creation_date:
          type: string
          format: date-time
        is_local:
          type: boolean
        position:
          type: integer
        disc_number:
          type: integer
        downloads_count:
          type: integer
        copyright:
          type: string
          minLength: 1
        cover:
          allOf:
          - $ref: '#/components/schemas/CoverFieldRequest'
          nullable: true
      required:
      - artist_credit
      - attributed_to
      - copyright
      - cover
      - creation_date
      - disc_number
      - downloads_count
      - fid
      - id
      - is_local
      - mbid
      - position
      - title
    TrackUpload:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        listen_url:
          type: string
          format: uri
        size:
          type: integer
        duration:
          type: integer
        bitrate:
          type: integer
        mimetype:
          type: string
        extension:
          type: string
        is_local:
          type: boolean
          readOnly: true
      required:
      - bitrate
      - duration
      - extension
      - is_local
      - listen_url
      - mimetype
      - size
      - uuid
    UploadBulkUpdateRequest:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        privacy_level:
          $ref: '#/components/schemas/LibraryPrivacyLevelEnum'
      required:
      - privacy_level
      - uuid
    UploadForOwner:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        filename:
          type: string
        creation_date:
          type: string
          format: date-time
          readOnly: true
        mimetype:
          type: string
          readOnly: true
          nullable: true
        track:
          allOf:
          - $ref: '#/components/schemas/Track'
          nullable: true
        library:
          type: string
        channel:
          type: string
        duration:
          type: integer
          readOnly: true
          nullable: true
        bitrate:
          type: integer
          readOnly: true
          nullable: true
        size:
          type: integer
          readOnly: true
          nullable: true
        import_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        import_status:
          allOf:
          - $ref: '#/components/schemas/ImportStatusEnum'
          default: pending
        privacy_level:
          $ref: '#/components/schemas/LibraryPrivacyLevelEnum'
        import_details:
          readOnly: true
        import_metadata:
          $ref: '#/components/schemas/ImportMetadata'
        import_reference:
          type: string
          maxLength: 50
        metadata:
          readOnly: true
        source:
          type: string
          nullable: true
          maxLength: 500
      required:
      - bitrate
      - creation_date
      - duration
      - import_date
      - import_details
      - metadata
      - mimetype
      - size
      - uuid
    UploadForOwnerRequest:
      type: object
      properties:
        filename:
          type: string
          minLength: 1
        track:
          allOf:
          - $ref: '#/components/schemas/TrackRequest'
          nullable: true
        library:
          type: string
        channel:
          type: string
        import_status:
          allOf:
          - $ref: '#/components/schemas/ImportStatusEnum'
          default: pending
        privacy_level:
          $ref: '#/components/schemas/LibraryPrivacyLevelEnum'
        import_metadata:
          $ref: '#/components/schemas/ImportMetadataRequest'
        import_reference:
          type: string
          minLength: 1
          maxLength: 50
        source:
          type: string
          nullable: true
          maxLength: 500
        audio_file:
          type: string
          format: binary
          writeOnly: true
      required:
      - audio_file
    Usage:
      type: object
      properties:
        users:
          $ref: '#/components/schemas/UsersUsage'
        localPosts:
          type: integer
        localComments:
          type: integer
      required:
      - users
    UserBasic:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        username:
          type: string
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+$
          maxLength: 150
        name:
          type: string
          title: Name of User
          maxLength: 255
        date_joined:
          type: string
          format: date-time
        avatar:
          allOf:
          - $ref: '#/components/schemas/Attachment'
          nullable: true
      required:
      - avatar
      - id
      - username
    UserBasicRequest:
      type: object
      properties:
        username:
          type: string
          minLength: 1
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+$
          maxLength: 150
        name:
          type: string
          title: Name of User
          maxLength: 255
        date_joined:
          type: string
          format: date-time
        avatar:
          allOf:
          - $ref: '#/components/schemas/AttachmentRequest'
          nullable: true
      required:
      - avatar
      - username
    UserDetails:
      type: object
      description: User model w/o password
      properties:
        pk:
          type: integer
          readOnly: true
          title: ID
        username:
          type: string
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+$
          maxLength: 150
        email:
          type: string
          format: email
          readOnly: true
          title: Email address
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
      required:
      - email
      - pk
      - username
    UserDetailsRequest:
      type: object
      description: User model w/o password
      properties:
        username:
          type: string
          minLength: 1
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+$
          maxLength: 150
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
      required:
      - username
    UserFilter:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        target:
          $ref: '#/components/schemas/ModerationTarget'
        creation_date:
          type: string
          format: date-time
          readOnly: true
      required:
      - creation_date
      - target
      - uuid
    UserFilterRequest:
      type: object
      properties:
        target:
          $ref: '#/components/schemas/ModerationTargetRequest'
      required:
      - target
    UserTrackFavorite:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        actor:
          allOf:
          - $ref: '#/components/schemas/APIActor'
          readOnly: true
        track:
          allOf:
          - $ref: '#/components/schemas/Track'
          readOnly: true
        creation_date:
          type: string
          format: date-time
      required:
      - actor
      - id
      - track
    UserTrackFavoriteWrite:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        track:
          type: integer
        creation_date:
          type: string
          format: date-time
      required:
      - id
      - track
    UserTrackFavoriteWriteRequest:
      type: object
      properties:
        track:
          type: integer
        creation_date:
          type: string
          format: date-time
      required:
      - track
    UserWrite:
      type: object
      properties:
        name:
          type: string
          title: Name of User
          maxLength: 255
        privacy_level:
          $ref: '#/components/schemas/PrivacyLevelEnum'
        instance_support_message_display_date:
          type: string
          format: date-time
          nullable: true
        funkwhale_support_message_display_date:
          type: string
          format: date-time
          nullable: true
        summary:
          allOf:
          - $ref: '#/components/schemas/Content'
          nullable: true
    UserWriteRequest:
      type: object
      properties:
        name:
          type: string
          title: Name of User
          maxLength: 255
        privacy_level:
          $ref: '#/components/schemas/PrivacyLevelEnum'
        avatar:
          type: string
          writeOnly: true
        instance_support_message_display_date:
          type: string
          format: date-time
          nullable: true
        funkwhale_support_message_display_date:
          type: string
          format: date-time
          nullable: true
        summary:
          allOf:
          - $ref: '#/components/schemas/ContentRequest'
          nullable: true
      required:
      - avatar
    UsersUsage:
      type: object
      properties:
        total:
          type: integer
        activeHalfyear:
          type: integer
          readOnly: true
        activeMonth:
          type: integer
          readOnly: true
      required:
      - activeHalfyear
      - activeMonth
      - total
    VerifyEmailRequest:
      type: object
      properties:
        key:
          type: string
          writeOnly: true
          minLength: 1
      required:
      - key
    iTunesCategoryItem:
      type: object
      properties:
        value:
          type: string
        label:
          type: string
        children:
          type: string
      required:
      - children
      - label
      - value
  securitySchemes:
    ApplicationToken:
      type: http
      scheme: bearer
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: /authorize
          tokenUrl: /api/v1/oauth/token/
          scopes:
            read: ''
            read:profile: ''
            read:libraries: ''
            read:edits: ''
            read:follows: ''
            read:favorites: ''
            read:filters: ''
            read:listenings: ''
            read:radios: ''
            read:playlists: ''
            read:notifications: ''
            read:security: ''
            read:reports: ''
            read:plugins: ''
            read:instance:settings: ''
            read:instance:users: ''
            read:instance:invitations: ''
            read:instance:edits: ''
            read:instance:libraries: ''
            read:instance:accounts: ''
            read:instance:domains: ''
            read:instance:policies: ''
            read:instance:reports: ''
            read:instance:requests: ''
            read:instance:notes: ''
            write: ''
            write:profile: ''
            write:libraries: ''
            write:edits: ''
            write:follows: ''
            write:favorites: ''
            write:filters: ''
            write:listenings: ''
            write:radios: ''
            write:playlists: ''
            write:notifications: ''
            write:security: ''
            write:reports: ''
            write:plugins: ''
            write:instance:settings: ''
            write:instance:users: ''
            write:instance:invitations: ''
            write:instance:edits: ''
            write:instance:libraries: ''
            write:instance:accounts: ''
            write:instance:domains: ''
            write:instance:policies: ''
            write:instance:reports: ''
            write:instance:requests: ''
            write:instance:notes: ''
servers:
- url: https://demo.funkwhale.audio
  description: Demo Server
- url: https://funkwhale.audio
  description: Read server with real content
- url: '{protocol}://{domain}'
  description: Custom server
  variables:
    domain:
      default: yourdomain
      description: Your Funkwhale Domain
    protocol:
      enum:
      - http
      - https
      default: https
