openapi: 3.0.1
info:
  contact:
    x-twitter: vocadb
  title: VocaDbWeb
  version: "1.0"
  x-apisguru-categories:
    - media
  x-logo:
    url: https://twitter.com/vocadb/profile_image?size=original
  x-origin:
    - format: openapi
      url: https://vocadb.net/swagger/v1/swagger.json
      version: "3.0"
  x-providerName: vocadb.net
paths:
  /api/activityEntries:
    get:
      parameters:
        - in: query
          name: before
          schema:
            format: date-time
            type: string
        - in: query
          name: since
          schema:
            format: date-time
            type: string
        - in: query
          name: userId
          schema:
            format: int32
            type: integer
        - in: query
          name: editEvent
          schema:
            $ref: "#/components/schemas/EntryEditEvent"
        - in: query
          name: entryType
          schema:
            $ref: "#/components/schemas/EntryType"
        - in: query
          name: maxResults
          schema:
            default: 50
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/ActivityEntryOptionalFields"
        - in: query
          name: entryFields
          schema:
            $ref: "#/components/schemas/EntryOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
        - in: query
          name: sortRule
          schema:
            $ref: "#/components/schemas/ActivityEntrySortRule"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActivityEntryForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/ActivityEntryForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/ActivityEntryForApiContractPartialFindResult"
          description: Success
      tags:
        - ActivityEntryApi
  /api/albums:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: discTypes
          schema:
            $ref: "#/components/schemas/DiscType"
        - in: query
          name: tagName[]
          schema:
            items:
              type: string
            type: array
        - in: query
          name: tagId[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: childTags
          schema:
            default: false
            type: boolean
        - in: query
          name: artistId[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: artistParticipationStatus
          schema:
            $ref: "#/components/schemas/ArtistAlbumParticipationStatus"
        - in: query
          name: childVoicebanks
          schema:
            default: false
            type: boolean
        - in: query
          name: includeMembers
          schema:
            default: false
            type: boolean
        - in: query
          name: barcode
          schema:
            type: string
        - in: query
          name: status
          schema:
            $ref: "#/components/schemas/EntryStatus"
        - in: query
          name: releaseDateAfter
          schema:
            format: date-time
            type: string
        - in: query
          name: releaseDateBefore
          schema:
            format: date-time
            type: string
        - in: query
          name: advancedFilters
          schema:
            items:
              $ref: "#/components/schemas/AdvancedSearchFilterParams"
            type: array
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: sort
          schema:
            $ref: "#/components/schemas/AlbumSortRule"
        - in: query
          name: preferAccurateMatches
          schema:
            default: false
            type: boolean
        - in: query
          name: deleted
          schema:
            default: false
            type: boolean
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/AlbumOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AlbumForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/AlbumForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/AlbumForApiContractPartialFindResult"
          description: Success
      tags:
        - AlbumApi
  "/api/albums/comments/{commentId}":
    delete:
      parameters:
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          description: Success
      tags:
        - AlbumApi
    post:
      parameters:
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          description: Success
      tags:
        - AlbumApi
  /api/albums/names:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: maxResults
          schema:
            default: 15
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
            text/json:
              schema:
                items:
                  type: string
                type: array
            text/plain:
              schema:
                items:
                  type: string
                type: array
          description: Success
      tags:
        - AlbumApi
  /api/albums/new:
    get:
      parameters:
        - in: query
          name: languagePreference
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/AlbumOptionalFields"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AlbumForApiContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/AlbumForApiContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/AlbumForApiContract"
                type: array
          description: Success
      tags:
        - AlbumApi
  /api/albums/top:
    get:
      parameters:
        - in: query
          name: ignoreIds[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: languagePreference
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/AlbumOptionalFields"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AlbumForApiContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/AlbumForApiContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/AlbumForApiContract"
                type: array
          description: Success
      tags:
        - AlbumApi
  "/api/albums/{id}":
    delete:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: notes
          schema:
            default: ""
            type: string
      responses:
        "200":
          description: Success
      tags:
        - AlbumApi
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/AlbumOptionalFields"
        - in: query
          name: songFields
          schema:
            $ref: "#/components/schemas/SongOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AlbumForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/AlbumForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/AlbumForApiContract"
          description: Success
      tags:
        - AlbumApi
  "/api/albums/{id}/comments":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/CommentForApiContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/CommentForApiContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/CommentForApiContract"
                type: array
          description: Success
      tags:
        - AlbumApi
    post:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
          description: Success
      tags:
        - AlbumApi
  "/api/albums/{id}/reviews":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: languageCode
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AlbumReviewContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/AlbumReviewContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/AlbumReviewContract"
                type: array
          description: Success
      tags:
        - AlbumApi
    post:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/AlbumReviewContract"
          application/json:
            schema:
              $ref: "#/components/schemas/AlbumReviewContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/AlbumReviewContract"
          text/json:
            schema:
              $ref: "#/components/schemas/AlbumReviewContract"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AlbumReviewContract"
            text/json:
              schema:
                $ref: "#/components/schemas/AlbumReviewContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/AlbumReviewContract"
          description: Success
      tags:
        - AlbumApi
  "/api/albums/{id}/reviews/{reviewId}":
    delete:
      parameters:
        - in: path
          name: reviewId
          required: true
          schema:
            format: int32
            type: integer
        - in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Success
      tags:
        - AlbumApi
  "/api/albums/{id}/tracks":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/SongOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/SongInAlbumForApiContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/SongInAlbumForApiContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/SongInAlbumForApiContract"
                type: array
          description: Success
      tags:
        - AlbumApi
  "/api/albums/{id}/tracks/fields":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: field[]
          schema:
            items:
              type: string
            type: array
        - in: query
          name: discNumber
          schema:
            format: int32
            type: integer
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  additionalProperties:
                    type: string
                  type: object
                type: array
            text/json:
              schema:
                items:
                  additionalProperties:
                    type: string
                  type: object
                type: array
            text/plain:
              schema:
                items:
                  additionalProperties:
                    type: string
                  type: object
                type: array
          description: Success
      tags:
        - AlbumApi
  "/api/albums/{id}/user-collections":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: languagePreference
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AlbumForUserForApiContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/AlbumForUserForApiContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/AlbumForUserForApiContract"
                type: array
          description: Success
      tags:
        - AlbumApi
  /api/artists:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: artistTypes
          schema:
            type: string
        - in: query
          name: allowBaseVoicebanks
          schema:
            default: true
            type: boolean
        - in: query
          name: tagName[]
          schema:
            items:
              type: string
            type: array
        - in: query
          name: tagId[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: childTags
          schema:
            default: false
            type: boolean
        - in: query
          name: followedByUserId
          schema:
            format: int32
            type: integer
        - in: query
          name: status
          schema:
            $ref: "#/components/schemas/EntryStatus"
        - in: query
          name: advancedFilters
          schema:
            items:
              $ref: "#/components/schemas/AdvancedSearchFilterParams"
            type: array
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: sort
          schema:
            $ref: "#/components/schemas/ArtistSortRule"
        - in: query
          name: preferAccurateMatches
          schema:
            default: false
            type: boolean
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/ArtistOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArtistForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/ArtistForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/ArtistForApiContractPartialFindResult"
          description: Success
      tags:
        - ArtistApi
  "/api/artists/comments/{commentId}":
    delete:
      parameters:
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          description: Success
      tags:
        - ArtistApi
    post:
      parameters:
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          description: Success
      tags:
        - ArtistApi
  /api/artists/names:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: maxResults
          schema:
            default: 15
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
            text/json:
              schema:
                items:
                  type: string
                type: array
            text/plain:
              schema:
                items:
                  type: string
                type: array
          description: Success
      tags:
        - ArtistApi
  "/api/artists/{id}":
    delete:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: notes
          schema:
            default: ""
            type: string
      responses:
        "200":
          description: Success
      tags:
        - ArtistApi
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/ArtistOptionalFields"
        - in: query
          name: relations
          schema:
            $ref: "#/components/schemas/ArtistRelationsFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArtistForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/ArtistForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/ArtistForApiContract"
          description: Success
      tags:
        - ArtistApi
  "/api/artists/{id}/comments":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/CommentForApiContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/CommentForApiContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/CommentForApiContract"
                type: array
          description: Success
      tags:
        - ArtistApi
    post:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
          description: Success
      tags:
        - ArtistApi
  /api/comments:
    get:
      parameters:
        - in: query
          name: before
          schema:
            format: date-time
            type: string
        - in: query
          name: since
          schema:
            format: date-time
            type: string
        - in: query
          name: userId
          schema:
            format: int32
            type: integer
        - in: query
          name: entryType
          schema:
            $ref: "#/components/schemas/EntryType"
        - in: query
          name: maxResults
          schema:
            default: 50
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/CommentOptionalFields"
        - in: query
          name: entryFields
          schema:
            $ref: "#/components/schemas/EntryOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
        - in: query
          name: sortRule
          schema:
            $ref: "#/components/schemas/CommentSortRule"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/CommentForApiContractPartialFindResult"
          description: Success
      tags:
        - CommentApi
  "/api/comments/{entryType}-comments":
    get:
      parameters:
        - in: path
          name: entryType
          required: true
          schema:
            $ref: "#/components/schemas/EntryType"
        - in: query
          name: entryId
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/CommentForApiContractPartialFindResult"
          description: Success
      tags:
        - CommentApi
    post:
      parameters:
        - in: path
          name: entryType
          required: true
          schema:
            $ref: "#/components/schemas/EntryType"
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
          description: Success
      tags:
        - CommentApi
  "/api/comments/{entryType}-comments/{commentId}":
    delete:
      parameters:
        - in: path
          name: entryType
          required: true
          schema:
            $ref: "#/components/schemas/EntryType"
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          description: Success
      tags:
        - CommentApi
    post:
      parameters:
        - in: path
          name: entryType
          required: true
          schema:
            $ref: "#/components/schemas/EntryType"
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          description: Success
      tags:
        - CommentApi
  "/api/discussions/comments/{commentId}":
    delete:
      parameters:
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          description: Success
      tags:
        - DiscussionApi
    post:
      parameters:
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          description: Success
      tags:
        - DiscussionApi
  /api/discussions/folders:
    get:
      parameters:
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/DiscussionFolderOptionalFields"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/DiscussionFolderContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/DiscussionFolderContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/DiscussionFolderContract"
                type: array
          description: Success
      tags:
        - DiscussionApi
    post:
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/DiscussionFolderContract"
          application/json:
            schema:
              $ref: "#/components/schemas/DiscussionFolderContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/DiscussionFolderContract"
          text/json:
            schema:
              $ref: "#/components/schemas/DiscussionFolderContract"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DiscussionFolderContract"
            text/json:
              schema:
                $ref: "#/components/schemas/DiscussionFolderContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/DiscussionFolderContract"
          description: Success
      tags:
        - DiscussionApi
  "/api/discussions/folders/{folderId}/topics":
    get:
      deprecated: true
      parameters:
        - in: path
          name: folderId
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/DiscussionTopicOptionalFields"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/DiscussionTopicContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/DiscussionTopicContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/DiscussionTopicContract"
                type: array
          description: Success
      tags:
        - DiscussionApi
    post:
      parameters:
        - in: path
          name: folderId
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/DiscussionTopicContract"
          application/json:
            schema:
              $ref: "#/components/schemas/DiscussionTopicContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/DiscussionTopicContract"
          text/json:
            schema:
              $ref: "#/components/schemas/DiscussionTopicContract"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DiscussionTopicContract"
            text/json:
              schema:
                $ref: "#/components/schemas/DiscussionTopicContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/DiscussionTopicContract"
          description: Success
      tags:
        - DiscussionApi
  /api/discussions/topics:
    get:
      parameters:
        - in: query
          name: folderId
          schema:
            format: int32
            type: integer
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: sort
          schema:
            $ref: "#/components/schemas/DiscussionTopicSortRule"
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/DiscussionTopicOptionalFields"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DiscussionTopicContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/DiscussionTopicContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/DiscussionTopicContractPartialFindResult"
          description: Success
      tags:
        - DiscussionApi
  "/api/discussions/topics/{topicId}":
    delete:
      parameters:
        - in: path
          name: topicId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          description: Success
      tags:
        - DiscussionApi
    get:
      parameters:
        - in: path
          name: topicId
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/DiscussionTopicOptionalFields"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DiscussionTopicContract"
            text/json:
              schema:
                $ref: "#/components/schemas/DiscussionTopicContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/DiscussionTopicContract"
          description: Success
      tags:
        - DiscussionApi
    post:
      parameters:
        - in: path
          name: topicId
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/DiscussionTopicContract"
          application/json:
            schema:
              $ref: "#/components/schemas/DiscussionTopicContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/DiscussionTopicContract"
          text/json:
            schema:
              $ref: "#/components/schemas/DiscussionTopicContract"
      responses:
        "200":
          description: Success
      tags:
        - DiscussionApi
  "/api/discussions/topics/{topicId}/comments":
    post:
      parameters:
        - in: path
          name: topicId
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
          description: Success
      tags:
        - DiscussionApi
  /api/entries:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: tagName[]
          schema:
            items:
              type: string
            type: array
        - in: query
          name: tagId[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: childTags
          schema:
            default: false
            type: boolean
        - in: query
          name: entryTypes
          schema:
            $ref: "#/components/schemas/EntryTypes"
        - in: query
          name: status
          schema:
            $ref: "#/components/schemas/EntryStatus"
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: sort
          schema:
            $ref: "#/components/schemas/EntrySortRule"
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/EntryOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntryForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/EntryForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/EntryForApiContractPartialFindResult"
          description: Success
      tags:
        - EntryApi
  /api/entries/names:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
            text/json:
              schema:
                items:
                  type: string
                type: array
            text/plain:
              schema:
                items:
                  type: string
                type: array
          description: Success
      tags:
        - EntryApi
  "/api/entry-types/{entryType}/{subType}/tag":
    get:
      parameters:
        - in: path
          name: entryType
          required: true
          schema:
            $ref: "#/components/schemas/EntryType"
        - in: path
          name: subType
          required: true
          schema:
            type: string
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/TagOptionalFields"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/TagForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/TagForApiContract"
          description: Success
      tags:
        - EntryTypesApi
  /api/pvs/for-songs:
    get:
      parameters:
        - in: query
          name: name
          schema:
            type: string
        - in: query
          name: author
          schema:
            type: string
        - in: query
          name: service
          schema:
            $ref: "#/components/schemas/PVService"
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PVForSongContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/PVForSongContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/PVForSongContractPartialFindResult"
          description: Success
      tags:
        - PVApi
  /api/releaseEventSeries:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/ReleaseEventSeriesOptionalFields"
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ReleaseEventSeriesForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/ReleaseEventSeriesForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/ReleaseEventSeriesForApiContractPartialFindResult"
          description: Success
      tags:
        - ReleaseEventSeriesApi
  "/api/releaseEventSeries/{id}":
    delete:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: notes
          schema:
            default: ""
            type: string
        - in: query
          name: hardDelete
          schema:
            default: false
            type: boolean
      responses:
        "200":
          description: Success
      tags:
        - ReleaseEventSeriesApi
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/ReleaseEventSeriesOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ReleaseEventSeriesForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/ReleaseEventSeriesForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/ReleaseEventSeriesForApiContract"
          description: Success
      tags:
        - ReleaseEventSeriesApi
  "/api/releaseEventSeries/{id}/for-edit":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ReleaseEventSeriesForEditForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/ReleaseEventSeriesForEditForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/ReleaseEventSeriesForEditForApiContract"
          description: Success
      tags:
        - ReleaseEventSeriesApi
  /api/releaseEvents:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: seriesId
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: afterDate
          schema:
            format: date-time
            type: string
        - in: query
          name: beforeDate
          schema:
            format: date-time
            type: string
        - in: query
          name: category
          schema:
            $ref: "#/components/schemas/EventCategory"
        - in: query
          name: userCollectionId
          schema:
            format: int32
            type: integer
        - in: query
          name: tagId[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: childTags
          schema:
            default: false
            type: boolean
        - in: query
          name: artistId[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: childVoicebanks
          schema:
            default: false
            type: boolean
        - in: query
          name: includeMembers
          schema:
            default: false
            type: boolean
        - in: query
          name: status
          schema:
            $ref: "#/components/schemas/EntryStatus"
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: sort
          schema:
            $ref: "#/components/schemas/EventSortRule"
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/ReleaseEventOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
        - in: query
          name: sortDirection
          schema:
            $ref: "#/components/schemas/SortDirection"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ReleaseEventForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/ReleaseEventForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/ReleaseEventForApiContractPartialFindResult"
          description: Success
      tags:
        - ReleaseEventApi
  /api/releaseEvents/names:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
            text/json:
              schema:
                items:
                  type: string
                type: array
            text/plain:
              schema:
                items:
                  type: string
                type: array
          description: Success
      tags:
        - ReleaseEventApi
  "/api/releaseEvents/{eventId}/albums":
    get:
      parameters:
        - in: path
          name: eventId
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/AlbumOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AlbumForApiContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/AlbumForApiContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/AlbumForApiContract"
                type: array
          description: Success
      tags:
        - ReleaseEventApi
  "/api/releaseEvents/{eventId}/published-songs":
    get:
      parameters:
        - in: path
          name: eventId
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/SongOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/SongForApiContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/SongForApiContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/SongForApiContract"
                type: array
          description: Success
      tags:
        - ReleaseEventApi
  "/api/releaseEvents/{eventId}/reports":
    post:
      parameters:
        - in: path
          name: eventId
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: reportType
          schema:
            $ref: "#/components/schemas/EventReportType"
        - in: query
          name: notes
          schema:
            type: string
        - in: query
          name: versionNumber
          schema:
            format: int32
            type: integer
      responses:
        "200":
          description: Success
      tags:
        - ReleaseEventApi
  "/api/releaseEvents/{id}":
    delete:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: notes
          schema:
            default: ""
            type: string
        - in: query
          name: hardDelete
          schema:
            default: false
            type: boolean
      responses:
        "200":
          description: Success
      tags:
        - ReleaseEventApi
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/ReleaseEventOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ReleaseEventForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/ReleaseEventForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/ReleaseEventForApiContract"
          description: Success
      tags:
        - ReleaseEventApi
  "/api/resources/{cultureCode}":
    get:
      parameters:
        - in: path
          name: cultureCode
          required: true
          schema:
            type: string
        - in: query
          name: setNames[]
          schema:
            items:
              type: string
            type: array
      responses:
        "200":
          content:
            application/json:
              schema:
                additionalProperties:
                  additionalProperties:
                    type: string
                  type: object
                type: object
            text/json:
              schema:
                additionalProperties:
                  additionalProperties:
                    type: string
                  type: object
                type: object
            text/plain:
              schema:
                additionalProperties:
                  additionalProperties:
                    type: string
                  type: object
                type: object
          description: Success
      tags:
        - ResourcesApi
  /api/songLists:
    post:
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/SongListForEditForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/SongListForEditForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/SongListForEditForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/SongListForEditForApiContract"
      responses:
        "200":
          content:
            application/json:
              schema:
                format: int32
                type: integer
            text/json:
              schema:
                format: int32
                type: integer
            text/plain:
              schema:
                format: int32
                type: integer
          description: Success
      tags:
        - SongListApi
  "/api/songLists/comments/{commentId}":
    delete:
      parameters:
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          description: Success
      tags:
        - SongListApi
    post:
      parameters:
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          description: Success
      tags:
        - SongListApi
  /api/songLists/featured:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: tagId[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: childTags
          schema:
            default: false
            type: boolean
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: featuredCategory
          schema:
            $ref: "#/components/schemas/SongListFeaturedCategory"
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: sort
          schema:
            $ref: "#/components/schemas/SongListSortRule"
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/SongListOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SongListForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/SongListForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/SongListForApiContractPartialFindResult"
          description: Success
      tags:
        - SongListApi
  /api/songLists/featured/names:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: featuredCategory
          schema:
            $ref: "#/components/schemas/SongListFeaturedCategory"
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
            text/json:
              schema:
                items:
                  type: string
                type: array
            text/plain:
              schema:
                items:
                  type: string
                type: array
          description: Success
      tags:
        - SongListApi
  "/api/songLists/{id}":
    delete:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: notes
          schema:
            default: ""
            type: string
        - in: query
          name: hardDelete
          schema:
            default: false
            type: boolean
      responses:
        "200":
          description: Success
      tags:
        - SongListApi
  "/api/songLists/{listId}/comments":
    get:
      parameters:
        - in: path
          name: listId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/CommentForApiContractPartialFindResult"
          description: Success
      tags:
        - SongListApi
    post:
      parameters:
        - in: path
          name: listId
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
          description: Success
      tags:
        - SongListApi
  "/api/songLists/{listId}/songs":
    get:
      parameters:
        - in: path
          name: listId
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: songTypes
          schema:
            type: string
        - in: query
          name: pvServices
          schema:
            $ref: "#/components/schemas/PVServices"
        - in: query
          name: tagId[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: artistId[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: childVoicebanks
          schema:
            default: false
            type: boolean
        - in: query
          name: advancedFilters
          schema:
            items:
              $ref: "#/components/schemas/AdvancedSearchFilterParams"
            type: array
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: sort
          schema:
            $ref: "#/components/schemas/SongSortRule"
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/SongOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SongInListForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/SongInListForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/SongInListForApiContractPartialFindResult"
          description: Success
      tags:
        - SongListApi
  /api/songs:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: songTypes
          schema:
            type: string
        - in: query
          name: afterDate
          schema:
            format: date-time
            type: string
        - in: query
          name: beforeDate
          schema:
            format: date-time
            type: string
        - in: query
          name: tagName[]
          schema:
            items:
              type: string
            type: array
        - in: query
          name: tagId[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: childTags
          schema:
            default: false
            type: boolean
        - in: query
          name: unifyTypesAndTags
          schema:
            default: false
            type: boolean
        - in: query
          name: artistId[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: artistParticipationStatus
          schema:
            $ref: "#/components/schemas/ArtistAlbumParticipationStatus"
        - in: query
          name: childVoicebanks
          schema:
            default: false
            type: boolean
        - in: query
          name: includeMembers
          schema:
            default: false
            type: boolean
        - in: query
          name: onlyWithPvs
          schema:
            default: false
            type: boolean
        - in: query
          name: pvServices
          schema:
            $ref: "#/components/schemas/PVServices"
        - in: query
          name: since
          schema:
            format: int32
            type: integer
        - in: query
          name: minScore
          schema:
            format: int32
            type: integer
        - in: query
          name: userCollectionId
          schema:
            format: int32
            type: integer
        - in: query
          name: releaseEventId
          schema:
            format: int32
            type: integer
        - in: query
          name: parentSongId
          schema:
            format: int32
            type: integer
        - in: query
          name: status
          schema:
            $ref: "#/components/schemas/EntryStatus"
        - in: query
          name: advancedFilters
          schema:
            items:
              $ref: "#/components/schemas/AdvancedSearchFilterParams"
            type: array
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: sort
          schema:
            $ref: "#/components/schemas/SongSortRule"
        - in: query
          name: preferAccurateMatches
          schema:
            default: false
            type: boolean
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/SongOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
        - in: query
          name: minMilliBpm
          schema:
            format: int32
            type: integer
        - in: query
          name: maxMilliBpm
          schema:
            format: int32
            type: integer
        - in: query
          name: minLength
          schema:
            format: int32
            type: integer
        - in: query
          name: maxLength
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SongForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/SongForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/SongForApiContractPartialFindResult"
          description: Success
      tags:
        - SongApi
  /api/songs/byPv:
    get:
      parameters:
        - in: query
          name: pvService
          schema:
            $ref: "#/components/schemas/PVService"
        - in: query
          name: pvId
          schema:
            type: string
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/SongOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SongForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/SongForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/SongForApiContract"
          description: Success
      tags:
        - SongApi
  "/api/songs/comments/{commentId}":
    delete:
      parameters:
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          description: Success
      tags:
        - SongApi
    post:
      parameters:
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          description: Success
      tags:
        - SongApi
  /api/songs/highlighted:
    get:
      parameters:
        - in: query
          name: languagePreference
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/SongOptionalFields"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/SongForApiContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/SongForApiContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/SongForApiContract"
                type: array
          description: Success
      tags:
        - SongApi
  "/api/songs/lyrics/{lyricsId}":
    get:
      parameters:
        - in: path
          name: lyricsId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LyricsForSongContract"
            text/json:
              schema:
                $ref: "#/components/schemas/LyricsForSongContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/LyricsForSongContract"
          description: Success
      tags:
        - SongApi
  /api/songs/names:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: maxResults
          schema:
            default: 15
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
            text/json:
              schema:
                items:
                  type: string
                type: array
            text/plain:
              schema:
                items:
                  type: string
                type: array
          description: Success
      tags:
        - SongApi
  /api/songs/top-rated:
    get:
      parameters:
        - in: query
          name: durationHours
          schema:
            format: int32
            type: integer
        - in: query
          name: startDate
          schema:
            format: date-time
            type: string
        - in: query
          name: filterBy
          schema:
            $ref: "#/components/schemas/TopSongsDateFilterType"
        - in: query
          name: vocalist
          schema:
            $ref: "#/components/schemas/SongVocalistSelection"
        - in: query
          name: maxResults
          schema:
            default: 25
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/SongOptionalFields"
        - in: query
          name: languagePreference
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/SongForApiContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/SongForApiContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/SongForApiContract"
                type: array
          description: Success
      tags:
        - SongApi
  "/api/songs/{id}":
    delete:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: notes
          schema:
            default: ""
            type: string
      responses:
        "200":
          description: Success
      tags:
        - SongApi
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/SongOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SongForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/SongForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/SongForApiContract"
          description: Success
      tags:
        - SongApi
  "/api/songs/{id}/comments":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/CommentForApiContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/CommentForApiContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/CommentForApiContract"
                type: array
          description: Success
      tags:
        - SongApi
    post:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
          description: Success
      tags:
        - SongApi
  "/api/songs/{id}/derived":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/SongOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/SongForApiContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/SongForApiContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/SongForApiContract"
                type: array
          description: Success
      tags:
        - SongApi
  "/api/songs/{id}/ratings":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: userFields
          schema:
            $ref: "#/components/schemas/UserOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/RatedSongForUserForApiContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/RatedSongForUserForApiContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/RatedSongForUserForApiContract"
                type: array
          description: Success
      tags:
        - SongApi
    post:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/SongRatingContract"
          application/json:
            schema:
              $ref: "#/components/schemas/SongRatingContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/SongRatingContract"
          text/json:
            schema:
              $ref: "#/components/schemas/SongRatingContract"
      responses:
        "200":
          description: Success
      tags:
        - SongApi
  "/api/songs/{id}/related":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/SongOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RelatedSongsContract"
            text/json:
              schema:
                $ref: "#/components/schemas/RelatedSongsContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/RelatedSongsContract"
          description: Success
      tags:
        - SongApi
  /api/tags:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: allowChildren
          schema:
            default: true
            type: boolean
        - in: query
          name: categoryName
          schema:
            default: ""
            type: string
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: sort
          schema:
            $ref: "#/components/schemas/TagSortRule"
        - in: query
          name: preferAccurateMatches
          schema:
            default: false
            type: boolean
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/TagOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
        - in: query
          name: target
          schema:
            $ref: "#/components/schemas/TagTargetTypes"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/TagForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/TagForApiContractPartialFindResult"
          description: Success
      tags:
        - TagApi
    post:
      parameters:
        - in: query
          name: name
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagBaseContract"
            text/json:
              schema:
                $ref: "#/components/schemas/TagBaseContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/TagBaseContract"
          description: Success
      tags:
        - TagApi
  "/api/tags/byName/{name}":
    get:
      deprecated: true
      parameters:
        - in: path
          name: name
          required: true
          schema:
            type: string
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/TagOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/TagForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/TagForApiContract"
          description: Success
      tags:
        - TagApi
  /api/tags/categoryNames:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
            text/json:
              schema:
                items:
                  type: string
                type: array
            text/plain:
              schema:
                items:
                  type: string
                type: array
          description: Success
      tags:
        - TagApi
  "/api/tags/comments/{commentId}":
    delete:
      parameters:
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          description: Success
      tags:
        - TagApi
    post:
      parameters:
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          description: Success
      tags:
        - TagApi
  /api/tags/names:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: allowAliases
          schema:
            default: true
            type: boolean
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
            text/json:
              schema:
                items:
                  type: string
                type: array
            text/plain:
              schema:
                items:
                  type: string
                type: array
          description: Success
      tags:
        - TagApi
  /api/tags/top:
    get:
      parameters:
        - in: query
          name: categoryName
          schema:
            type: string
        - in: query
          name: entryType
          schema:
            $ref: "#/components/schemas/EntryType"
        - in: query
          name: maxResults
          schema:
            default: 15
            format: int32
            type: integer
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/TagBaseContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/TagBaseContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/TagBaseContract"
                type: array
          description: Success
      tags:
        - TagApi
  "/api/tags/{id}":
    delete:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: notes
          schema:
            default: ""
            type: string
        - in: query
          name: hardDelete
          schema:
            default: false
            type: boolean
      responses:
        "200":
          description: Success
      tags:
        - TagApi
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/TagOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/TagForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/TagForApiContract"
          description: Success
      tags:
        - TagApi
  "/api/tags/{tagId}/children":
    get:
      parameters:
        - in: path
          name: tagId
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/TagOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/TagForApiContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/TagForApiContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/TagForApiContract"
                type: array
          description: Success
      tags:
        - TagApi
  "/api/tags/{tagId}/comments":
    get:
      parameters:
        - in: path
          name: tagId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/CommentForApiContractPartialFindResult"
          description: Success
      tags:
        - TagApi
    post:
      parameters:
        - in: path
          name: tagId
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
          description: Success
      tags:
        - TagApi
  "/api/tags/{tagId}/reports":
    post:
      parameters:
        - in: path
          name: tagId
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: reportType
          schema:
            $ref: "#/components/schemas/TagReportType"
        - in: query
          name: notes
          schema:
            type: string
        - in: query
          name: versionNumber
          schema:
            format: int32
            type: integer
      responses:
        "200":
          description: Success
      tags:
        - TagApi
  /api/users:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: groups
          schema:
            $ref: "#/components/schemas/UserGroupId"
        - in: query
          name: joinDateAfter
          schema:
            format: date-time
            type: string
        - in: query
          name: joinDateBefore
          schema:
            format: date-time
            type: string
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: sort
          schema:
            $ref: "#/components/schemas/UserSortRule"
        - in: query
          name: includeDisabled
          schema:
            default: false
            type: boolean
        - in: query
          name: onlyVerified
          schema:
            default: false
            type: boolean
        - in: query
          name: knowsLanguage
          schema:
            type: string
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/UserOptionalFields"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/UserForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/UserForApiContractPartialFindResult"
          description: Success
      tags:
        - UserApi
  /api/users/current:
    get:
      parameters:
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/UserOptionalFields"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/UserForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/UserForApiContract"
          description: Success
      tags:
        - UserApi
  "/api/users/current/album-collection-statuses/{albumId}":
    get:
      parameters:
        - in: path
          name: albumId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AlbumForUserForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/AlbumForUserForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/AlbumForUserForApiContract"
          description: Success
      tags:
        - UserApi
  "/api/users/current/albums/{albumId}":
    post:
      parameters:
        - in: path
          name: albumId
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: collectionStatus
          schema:
            $ref: "#/components/schemas/PurchaseStatus"
        - in: query
          name: mediaType
          schema:
            $ref: "#/components/schemas/MediaType"
        - in: query
          name: rating
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
            text/json:
              schema:
                type: string
            text/plain:
              schema:
                type: string
          description: Success
      tags:
        - UserApi
  "/api/users/current/followedArtists/{artistId}":
    get:
      parameters:
        - in: path
          name: artistId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArtistForUserForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/ArtistForUserForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/ArtistForUserForApiContract"
          description: Success
      tags:
        - UserApi
  "/api/users/current/followedTags/{tagId}":
    delete:
      parameters:
        - in: path
          name: tagId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          description: Success
      tags:
        - UserApi
    post:
      parameters:
        - in: path
          name: tagId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          description: Success
      tags:
        - UserApi
  "/api/users/current/ratedSongs/{songId}":
    get:
      parameters:
        - in: path
          name: songId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SongVoteRating"
            text/json:
              schema:
                $ref: "#/components/schemas/SongVoteRating"
            text/plain:
              schema:
                $ref: "#/components/schemas/SongVoteRating"
          description: Success
      tags:
        - UserApi
  /api/users/current/refreshEntryEdit:
    post:
      parameters:
        - in: query
          name: entryType
          schema:
            $ref: "#/components/schemas/EntryType"
        - in: query
          name: entryId
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EntryEditDataContract"
            text/json:
              schema:
                $ref: "#/components/schemas/EntryEditDataContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/EntryEditDataContract"
          description: Success
      tags:
        - UserApi
  "/api/users/current/songTags/{songId}":
    post:
      parameters:
        - in: path
          name: songId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          description: Success
      tags:
        - UserApi
  "/api/users/messages/{messageId}":
    get:
      parameters:
        - in: path
          name: messageId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserMessageContract"
            text/json:
              schema:
                $ref: "#/components/schemas/UserMessageContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/UserMessageContract"
          description: Success
      tags:
        - UserApi
  /api/users/names:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: includeDisabled
          schema:
            default: false
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
            text/json:
              schema:
                items:
                  type: string
                type: array
            text/plain:
              schema:
                items:
                  type: string
                type: array
          description: Success
      tags:
        - UserApi
  "/api/users/profileComments/{commentId}":
    delete:
      parameters:
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          description: Success
      tags:
        - UserApi
    post:
      parameters:
        - in: path
          name: commentId
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          description: Success
      tags:
        - UserApi
  "/api/users/{id}":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/UserOptionalFields"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/UserForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/UserForApiContract"
          description: Success
      tags:
        - UserApi
  "/api/users/{id}/album-collection-statuses/{albumId}":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: path
          name: albumId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AlbumForUserForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/AlbumForUserForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/AlbumForUserForApiContract"
          description: Success
      tags:
        - UserApi
  "/api/users/{id}/albums":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: tagId
          schema:
            format: int32
            type: integer
        - in: query
          name: tag
          schema:
            type: string
        - in: query
          name: artistId
          schema:
            format: int32
            type: integer
        - in: query
          name: purchaseStatuses
          schema:
            $ref: "#/components/schemas/PurchaseStatuses"
        - in: query
          name: releaseEventId
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: albumTypes
          schema:
            $ref: "#/components/schemas/DiscType"
        - in: query
          name: advancedFilters
          schema:
            items:
              $ref: "#/components/schemas/AdvancedSearchFilterParams"
            type: array
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: sort
          schema:
            $ref: "#/components/schemas/AlbumSortRule"
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/AlbumOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
        - in: query
          name: mediaType
          schema:
            $ref: "#/components/schemas/MediaType"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AlbumForUserForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/AlbumForUserForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/AlbumForUserForApiContractPartialFindResult"
          description: Success
      tags:
        - UserApi
  "/api/users/{id}/events":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: relationshipType
          schema:
            $ref: "#/components/schemas/UserEventRelationshipType"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ReleaseEventForApiContract"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/ReleaseEventForApiContract"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/ReleaseEventForApiContract"
                type: array
          description: Success
      tags:
        - UserApi
  "/api/users/{id}/followedArtists":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: tagId[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: artistType
          schema:
            $ref: "#/components/schemas/ArtistType"
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: sort
          schema:
            $ref: "#/components/schemas/ArtistSortRule"
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/ArtistOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArtistForUserForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/ArtistForUserForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/ArtistForUserForApiContractPartialFindResult"
          description: Success
      tags:
        - UserApi
  "/api/users/{id}/followedArtists/{artistId}":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: path
          name: artistId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArtistForUserForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/ArtistForUserForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/ArtistForUserForApiContract"
          description: Success
      tags:
        - UserApi
  "/api/users/{id}/messages":
    delete:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: messageId
          schema:
            items:
              format: int32
              type: integer
            type: array
      responses:
        "200":
          description: Success
      tags:
        - UserApi
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: inbox
          schema:
            $ref: "#/components/schemas/UserInboxType"
        - in: query
          name: unread
          schema:
            default: false
            type: boolean
        - in: query
          name: anotherUserId
          schema:
            format: int32
            type: integer
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserMessageContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/UserMessageContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/UserMessageContractPartialFindResult"
          description: Success
      tags:
        - UserApi
    post:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/UserMessageContract"
          application/json:
            schema:
              $ref: "#/components/schemas/UserMessageContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/UserMessageContract"
          text/json:
            schema:
              $ref: "#/components/schemas/UserMessageContract"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserMessageContract"
            text/json:
              schema:
                $ref: "#/components/schemas/UserMessageContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/UserMessageContract"
          description: Success
      tags:
        - UserApi
  "/api/users/{id}/profileComments":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/CommentForApiContractPartialFindResult"
          description: Success
      tags:
        - UserApi
    post:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
          text/json:
            schema:
              $ref: "#/components/schemas/CommentForApiContract"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/json:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
            text/plain:
              schema:
                $ref: "#/components/schemas/CommentForApiContract"
          description: Success
      tags:
        - UserApi
  "/api/users/{id}/ratedSongs":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: tagName
          schema:
            type: string
        - in: query
          name: tagId[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: artistId[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: childVoicebanks
          schema:
            default: false
            type: boolean
        - in: query
          name: artistGrouping
          schema:
            $ref: "#/components/schemas/LogicalGrouping"
        - in: query
          name: rating
          schema:
            $ref: "#/components/schemas/SongVoteRating"
        - in: query
          name: songListId
          schema:
            format: int32
            type: integer
        - in: query
          name: groupByRating
          schema:
            default: true
            type: boolean
        - in: query
          name: pvServices
          schema:
            $ref: "#/components/schemas/PVServices"
        - in: query
          name: advancedFilters
          schema:
            items:
              $ref: "#/components/schemas/AdvancedSearchFilterParams"
            type: array
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: sort
          schema:
            $ref: "#/components/schemas/RatedSongForUserSortRule"
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/SongOptionalFields"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RatedSongForUserForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/RatedSongForUserForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/RatedSongForUserForApiContractPartialFindResult"
          description: Success
      tags:
        - UserApi
  "/api/users/{id}/ratedSongs/{songId}":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: path
          name: songId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SongVoteRating"
            text/json:
              schema:
                $ref: "#/components/schemas/SongVoteRating"
            text/plain:
              schema:
                $ref: "#/components/schemas/SongVoteRating"
          description: Success
      tags:
        - UserApi
  "/api/users/{id}/reports":
    post:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CreateReportModel"
          application/json:
            schema:
              $ref: "#/components/schemas/CreateReportModel"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CreateReportModel"
          text/json:
            schema:
              $ref: "#/components/schemas/CreateReportModel"
      responses:
        "200":
          content:
            application/json:
              schema:
                type: boolean
            text/json:
              schema:
                type: boolean
            text/plain:
              schema:
                type: boolean
          description: Success
      tags:
        - UserApi
  "/api/users/{id}/settings/{settingName}":
    post:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: path
          name: settingName
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/*+json:
            schema:
              type: string
          application/json:
            schema:
              type: string
          application/json-patch+json:
            schema:
              type: string
          text/json:
            schema:
              type: string
      responses:
        "200":
          description: Success
      tags:
        - UserApi
  "/api/users/{id}/songLists":
    get:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: tagId[]
          schema:
            items:
              format: int32
              type: integer
            type: array
        - in: query
          name: childTags
          schema:
            default: false
            type: boolean
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: sort
          schema:
            $ref: "#/components/schemas/SongListSortRule"
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/SongListOptionalFields"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SongListForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/SongListForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/SongListForApiContractPartialFindResult"
          description: Success
      tags:
        - UserApi
  /api/venues:
    get:
      parameters:
        - in: query
          name: query
          schema:
            default: ""
            type: string
        - in: query
          name: fields
          schema:
            $ref: "#/components/schemas/VenueOptionalFields"
        - in: query
          name: start
          schema:
            default: 0
            format: int32
            type: integer
        - in: query
          name: maxResults
          schema:
            default: 10
            format: int32
            type: integer
        - in: query
          name: getTotalCount
          schema:
            default: false
            type: boolean
        - in: query
          name: nameMatchMode
          schema:
            $ref: "#/components/schemas/NameMatchMode"
        - in: query
          name: lang
          schema:
            $ref: "#/components/schemas/ContentLanguagePreference"
        - in: query
          name: sortRule
          schema:
            $ref: "#/components/schemas/VenueSortRule"
        - in: query
          name: latitude
          schema:
            format: double
            type: number
        - in: query
          name: longitude
          schema:
            format: double
            type: number
        - in: query
          name: radius
          schema:
            format: double
            type: number
        - in: query
          name: distanceUnit
          schema:
            $ref: "#/components/schemas/DistanceUnit"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VenueForApiContractPartialFindResult"
            text/json:
              schema:
                $ref: "#/components/schemas/VenueForApiContractPartialFindResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/VenueForApiContractPartialFindResult"
          description: Success
      tags:
        - VenueApi
  "/api/venues/{id}":
    delete:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: notes
          schema:
            default: ""
            type: string
        - in: query
          name: hardDelete
          schema:
            default: false
            type: boolean
      responses:
        "200":
          description: Success
      tags:
        - VenueApi
  "/api/venues/{id}/reports":
    post:
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
        - in: query
          name: reportType
          schema:
            $ref: "#/components/schemas/VenueReportType"
        - in: query
          name: notes
          schema:
            type: string
        - in: query
          name: versionNumber
          schema:
            format: int32
            type: integer
      responses:
        "200":
          description: Success
      tags:
        - VenueApi
components:
  schemas:
    ActivityEntryForApiContract:
      additionalProperties: false
      properties:
        archivedVersion:
          $ref: "#/components/schemas/ArchivedObjectVersionForApiContract"
        author:
          $ref: "#/components/schemas/UserForApiContract"
        createDate:
          format: date-time
          type: string
        editEvent:
          $ref: "#/components/schemas/EntryEditEvent"
        entry:
          $ref: "#/components/schemas/EntryForApiContract"
      type: object
    ActivityEntryForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/ActivityEntryForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    ActivityEntryOptionalFields:
      enum:
        - None
        - ArchivedVersion
        - Entry
      type: string
    ActivityEntrySortRule:
      enum:
        - CreateDateDescending
        - CreateDate
      type: string
    AdvancedFilterType:
      enum:
        - Nothing
        - ArtistType
        - WebLink
        - HasUserAccount
        - RootVoicebank
        - VoiceProvider
        - HasStoreLink
        - HasTracks
        - NoCoverPicture
        - HasAlbum
        - HasOriginalMedia
        - HasMedia
        - HasMultipleVoicebanks
        - HasPublishDate
        - Lyrics
        - LyricsContent
      type: string
    AdvancedSearchFilterParams:
      additionalProperties: false
      properties:
        filterType:
          $ref: "#/components/schemas/AdvancedFilterType"
        negate:
          type: boolean
        param:
          nullable: true
          type: string
      type: object
    AlbumContract:
      additionalProperties: false
      properties:
        additionalNames:
          nullable: true
          type: string
        artistString:
          nullable: true
          type: string
        coverPictureMime:
          nullable: true
          type: string
        createDate:
          format: date-time
          type: string
        deleted:
          type: boolean
        discType:
          $ref: "#/components/schemas/DiscType"
        id:
          format: int32
          type: integer
        name:
          nullable: true
          type: string
        ratingAverage:
          format: double
          type: number
        ratingCount:
          format: int32
          type: integer
        releaseDate:
          $ref: "#/components/schemas/OptionalDateTimeContract"
        releaseEvent:
          $ref: "#/components/schemas/ReleaseEventForApiContract"
        status:
          $ref: "#/components/schemas/EntryStatus"
        version:
          format: int32
          type: integer
      type: object
    AlbumDiscPropertiesContract:
      additionalProperties: false
      properties:
        discNumber:
          format: int32
          type: integer
        id:
          format: int32
          type: integer
        mediaType:
          $ref: "#/components/schemas/DiscMediaType"
        name:
          nullable: true
          type: string
      type: object
    AlbumForApiContract:
      additionalProperties: false
      properties:
        additionalNames:
          nullable: true
          type: string
        artistString:
          nullable: true
          type: string
        artists:
          items:
            $ref: "#/components/schemas/ArtistForAlbumForApiContract"
          nullable: true
          type: array
        barcode:
          nullable: true
          type: string
        catalogNumber:
          nullable: true
          type: string
        createDate:
          format: date-time
          type: string
        defaultName:
          nullable: true
          type: string
        defaultNameLanguage:
          $ref: "#/components/schemas/ContentLanguageSelection"
        deleted:
          type: boolean
        description:
          nullable: true
          type: string
        discType:
          $ref: "#/components/schemas/DiscType"
        discs:
          items:
            $ref: "#/components/schemas/AlbumDiscPropertiesContract"
          nullable: true
          type: array
        id:
          format: int32
          type: integer
        identifiers:
          items:
            $ref: "#/components/schemas/AlbumIdentifierContract"
          nullable: true
          type: array
        mainPicture:
          $ref: "#/components/schemas/EntryThumbForApiContract"
        mergedTo:
          format: int32
          type: integer
        name:
          nullable: true
          type: string
        names:
          items:
            $ref: "#/components/schemas/LocalizedStringContract"
          nullable: true
          type: array
        pvs:
          items:
            $ref: "#/components/schemas/PVContract"
          nullable: true
          type: array
        ratingAverage:
          format: double
          type: number
        ratingCount:
          format: int32
          type: integer
        releaseDate:
          $ref: "#/components/schemas/OptionalDateTimeContract"
        releaseEvent:
          $ref: "#/components/schemas/ReleaseEventForApiContract"
        status:
          $ref: "#/components/schemas/EntryStatus"
        tags:
          items:
            $ref: "#/components/schemas/TagUsageForApiContract"
          nullable: true
          type: array
        tracks:
          items:
            $ref: "#/components/schemas/SongInAlbumForApiContract"
          nullable: true
          type: array
        version:
          format: int32
          type: integer
        webLinks:
          items:
            $ref: "#/components/schemas/WebLinkForApiContract"
          nullable: true
          type: array
      type: object
    AlbumForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/AlbumForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    AlbumForUserForApiContract:
      additionalProperties: false
      properties:
        album:
          $ref: "#/components/schemas/AlbumForApiContract"
        mediaType:
          $ref: "#/components/schemas/MediaType"
        purchaseStatus:
          $ref: "#/components/schemas/PurchaseStatus"
        rating:
          format: int32
          type: integer
        user:
          $ref: "#/components/schemas/UserForApiContract"
      type: object
    AlbumForUserForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/AlbumForUserForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    AlbumIdentifierContract:
      additionalProperties: false
      properties:
        value:
          nullable: true
          type: string
      type: object
    AlbumOptionalFields:
      enum:
        - None
        - AdditionalNames
        - Artists
        - Description
        - Discs
        - Identifiers
        - MainPicture
        - Names
        - PVs
        - ReleaseEvent
        - Tags
        - Tracks
        - WebLinks
      type: string
    AlbumReviewContract:
      additionalProperties: false
      properties:
        albumId:
          format: int32
          type: integer
        date:
          format: date-time
          type: string
        id:
          format: int32
          type: integer
        languageCode:
          nullable: true
          type: string
        text:
          nullable: true
          type: string
        title:
          nullable: true
          type: string
        user:
          $ref: "#/components/schemas/UserForApiContract"
      type: object
    AlbumSortRule:
      enum:
        - None
        - Name
        - ReleaseDate
        - ReleaseDateWithNulls
        - AdditionDate
        - RatingAverage
        - RatingTotal
        - NameThenReleaseDate
        - CollectionCount
      type: string
    ArchivedObjectVersionForApiContract:
      additionalProperties: false
      properties:
        agentName:
          nullable: true
          type: string
        anythingChanged:
          type: boolean
        author:
          $ref: "#/components/schemas/UserForApiContract"
        changedFields:
          items:
            type: string
          nullable: true
          type: array
        created:
          format: date-time
          type: string
        hidden:
          type: boolean
        id:
          format: int32
          type: integer
        isSnapshot:
          type: boolean
        notes:
          nullable: true
          type: string
        reason:
          nullable: true
          type: string
        status:
          $ref: "#/components/schemas/EntryStatus"
        version:
          format: int32
          type: integer
      type: object
    ArchivedWebLinkContract:
      additionalProperties: false
      properties:
        category:
          $ref: "#/components/schemas/WebLinkCategory"
        description:
          nullable: true
          type: string
        disabled:
          type: boolean
        url:
          nullable: true
          type: string
      type: object
    ArtistAlbumParticipationStatus:
      enum:
        - Everything
        - OnlyMainAlbums
        - OnlyCollaborations
      type: string
    ArtistCategories:
      enum:
        - Nothing
        - Vocalist
        - Producer
        - Animator
        - Label
        - Circle
        - Other
        - Band
        - Illustrator
        - Subject
      type: string
    ArtistContract:
      additionalProperties: false
      properties:
        additionalNames:
          nullable: true
          type: string
        artistType:
          $ref: "#/components/schemas/ArtistType"
        deleted:
          type: boolean
        id:
          format: int32
          type: integer
        name:
          nullable: true
          type: string
        pictureMime:
          nullable: true
          type: string
        releaseDate:
          format: date-time
          nullable: true
          type: string
        status:
          $ref: "#/components/schemas/EntryStatus"
        version:
          format: int32
          type: integer
      type: object
    ArtistEventRoles:
      enum:
        - Default
        - Dancer
        - DJ
        - Instrumentalist
        - Organizer
        - Promoter
        - VJ
        - Vocalist
        - VoiceManipulator
        - OtherPerformer
        - Other
      type: string
    ArtistForAlbumForApiContract:
      additionalProperties: false
      properties:
        artist:
          $ref: "#/components/schemas/ArtistContract"
        categories:
          $ref: "#/components/schemas/ArtistCategories"
        effectiveRoles:
          $ref: "#/components/schemas/ArtistRoles"
        isSupport:
          type: boolean
        name:
          nullable: true
          type: string
        roles:
          $ref: "#/components/schemas/ArtistRoles"
      type: object
    ArtistForApiContract:
      additionalProperties: false
      properties:
        additionalNames:
          nullable: true
          type: string
        artistLinks:
          items:
            $ref: "#/components/schemas/ArtistForArtistForApiContract"
          nullable: true
          type: array
        artistLinksReverse:
          items:
            $ref: "#/components/schemas/ArtistForArtistForApiContract"
          nullable: true
          type: array
        artistType:
          $ref: "#/components/schemas/ArtistType"
        baseVoicebank:
          $ref: "#/components/schemas/ArtistContract"
        createDate:
          format: date-time
          type: string
        defaultName:
          nullable: true
          type: string
        defaultNameLanguage:
          $ref: "#/components/schemas/ContentLanguageSelection"
        deleted:
          type: boolean
        description:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        mainPicture:
          $ref: "#/components/schemas/EntryThumbForApiContract"
        mergedTo:
          format: int32
          type: integer
        name:
          nullable: true
          type: string
        names:
          items:
            $ref: "#/components/schemas/LocalizedStringContract"
          nullable: true
          type: array
        pictureMime:
          nullable: true
          type: string
        relations:
          $ref: "#/components/schemas/ArtistRelationsForApi"
        releaseDate:
          format: date-time
          nullable: true
          type: string
        status:
          $ref: "#/components/schemas/EntryStatus"
        tags:
          items:
            $ref: "#/components/schemas/TagUsageForApiContract"
          nullable: true
          type: array
        version:
          format: int32
          type: integer
        webLinks:
          items:
            $ref: "#/components/schemas/WebLinkForApiContract"
          nullable: true
          type: array
      type: object
    ArtistForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/ArtistForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    ArtistForArtistForApiContract:
      additionalProperties: false
      properties:
        artist:
          $ref: "#/components/schemas/ArtistContract"
        linkType:
          $ref: "#/components/schemas/ArtistLinkType"
      type: object
    ArtistForEventContract:
      additionalProperties: false
      properties:
        artist:
          $ref: "#/components/schemas/ArtistContract"
        effectiveRoles:
          $ref: "#/components/schemas/ArtistEventRoles"
        id:
          format: int32
          type: integer
        name:
          nullable: true
          type: string
        roles:
          $ref: "#/components/schemas/ArtistEventRoles"
      type: object
    ArtistForSongContract:
      additionalProperties: false
      properties:
        artist:
          $ref: "#/components/schemas/ArtistContract"
        categories:
          $ref: "#/components/schemas/ArtistCategories"
        effectiveRoles:
          $ref: "#/components/schemas/ArtistRoles"
        id:
          format: int32
          type: integer
        isCustomName:
          type: boolean
        isSupport:
          type: boolean
        name:
          nullable: true
          type: string
        roles:
          $ref: "#/components/schemas/ArtistRoles"
      type: object
    ArtistForUserForApiContract:
      additionalProperties: false
      properties:
        artist:
          $ref: "#/components/schemas/ArtistForApiContract"
        id:
          format: int32
          type: integer
      type: object
    ArtistForUserForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/ArtistForUserForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    ArtistLinkType:
      enum:
        - CharacterDesigner
        - Group
        - Illustrator
        - Manager
        - VoiceProvider
      type: string
    ArtistOptionalFields:
      enum:
        - None
        - AdditionalNames
        - ArtistLinks
        - ArtistLinksReverse
        - BaseVoicebank
        - Description
        - MainPicture
        - Names
        - Tags
        - WebLinks
      type: string
    ArtistRelationsFields:
      enum:
        - None
        - LatestAlbums
        - LatestEvents
        - LatestSongs
        - PopularAlbums
        - PopularSongs
        - All
      type: string
    ArtistRelationsForApi:
      additionalProperties: false
      properties:
        latestAlbums:
          items:
            $ref: "#/components/schemas/AlbumForApiContract"
          nullable: true
          type: array
        latestEvents:
          items:
            $ref: "#/components/schemas/ReleaseEventForApiContract"
          nullable: true
          type: array
        latestSongs:
          items:
            $ref: "#/components/schemas/SongForApiContract"
          nullable: true
          type: array
        popularAlbums:
          items:
            $ref: "#/components/schemas/AlbumForApiContract"
          nullable: true
          type: array
        popularSongs:
          items:
            $ref: "#/components/schemas/SongForApiContract"
          nullable: true
          type: array
      type: object
    ArtistRoles:
      enum:
        - Default
        - Animator
        - Arranger
        - Composer
        - Distributor
        - Illustrator
        - Instrumentalist
        - Lyricist
        - Mastering
        - Publisher
        - Vocalist
        - VoiceManipulator
        - Other
        - Mixer
        - Chorus
        - Encoder
        - VocalDataProvider
      type: string
    ArtistSortRule:
      enum:
        - None
        - Name
        - AdditionDate
        - AdditionDateAsc
        - ReleaseDate
        - SongCount
        - SongRating
        - FollowerCount
        - ArtistType
      type: string
    ArtistType:
      enum:
        - Unknown
        - Circle
        - Label
        - Producer
        - Animator
        - Illustrator
        - Lyricist
        - Vocaloid
        - UTAU
        - CeVIO
        - OtherVoiceSynthesizer
        - OtherVocalist
        - OtherGroup
        - OtherIndividual
        - Utaite
        - Band
        - Vocalist
        - Character
        - SynthesizerV
        - CoverArtist
      type: string
    CommentForApiContract:
      additionalProperties: false
      properties:
        author:
          $ref: "#/components/schemas/UserForApiContract"
        authorName:
          nullable: true
          type: string
        created:
          format: date-time
          type: string
        entry:
          $ref: "#/components/schemas/EntryForApiContract"
        id:
          format: int32
          type: integer
        message:
          nullable: true
          type: string
      type: object
    CommentForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/CommentForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    CommentOptionalFields:
      enum:
        - None
        - Entry
      type: string
    CommentSortRule:
      enum:
        - CreateDateDescending
        - CreateDate
      type: string
    ContentLanguagePreference:
      enum:
        - Default
        - Japanese
        - Romaji
        - English
      type: string
    ContentLanguageSelection:
      enum:
        - Unspecified
        - Japanese
        - Romaji
        - English
      type: string
    CreateReportModel:
      additionalProperties: false
      properties:
        reason:
          nullable: true
          type: string
        reportType:
          $ref: "#/components/schemas/UserReportType"
      type: object
    DiscMediaType:
      enum:
        - Audio
        - Video
      type: string
    DiscType:
      enum:
        - Unknown
        - Album
        - Single
        - EP
        - SplitAlbum
        - Compilation
        - Video
        - Artbook
        - Game
        - Fanmade
        - Instrumental
        - Other
      type: string
    DiscussionFolderContract:
      additionalProperties: false
      properties:
        description:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        lastTopicAuthor:
          $ref: "#/components/schemas/UserForApiContract"
        lastTopicDate:
          format: date-time
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        topicCount:
          format: int32
          type: integer
      type: object
    DiscussionFolderOptionalFields:
      enum:
        - None
        - LastTopic
        - TopicCount
      type: string
    DiscussionTopicContract:
      additionalProperties: false
      properties:
        author:
          $ref: "#/components/schemas/UserForApiContract"
        commentCount:
          format: int32
          type: integer
        comments:
          items:
            $ref: "#/components/schemas/CommentForApiContract"
          nullable: true
          type: array
        content:
          nullable: true
          type: string
        created:
          format: date-time
          type: string
        folderId:
          format: int32
          type: integer
        id:
          format: int32
          type: integer
        lastComment:
          $ref: "#/components/schemas/CommentForApiContract"
        locked:
          type: boolean
        name:
          nullable: true
          type: string
      type: object
    DiscussionTopicContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/DiscussionTopicContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    DiscussionTopicOptionalFields:
      enum:
        - None
        - Comments
        - CommentCount
        - Content
        - LastComment
        - All
      type: string
    DiscussionTopicSortRule:
      enum:
        - None
        - Name
        - DateCreated
        - LastCommentDate
      type: string
    DistanceUnit:
      enum:
        - Kilometers
        - Miles
      type: string
    EnglishTranslatedStringContract:
      additionalProperties: false
      properties:
        english:
          nullable: true
          type: string
        original:
          nullable: true
          type: string
      type: object
    EntryEditDataContract:
      additionalProperties: false
      properties:
        time:
          format: date-time
          type: string
        userId:
          format: int32
          type: integer
        userName:
          nullable: true
          type: string
      type: object
    EntryEditEvent:
      enum:
        - Created
        - Updated
        - Deleted
        - Restored
      type: string
    EntryForApiContract:
      additionalProperties: false
      properties:
        activityDate:
          format: date-time
          nullable: true
          type: string
        additionalNames:
          nullable: true
          type: string
        artistString:
          nullable: true
          type: string
        artistType:
          $ref: "#/components/schemas/ArtistType"
        createDate:
          format: date-time
          type: string
        defaultName:
          nullable: true
          type: string
        defaultNameLanguage:
          $ref: "#/components/schemas/ContentLanguageSelection"
        description:
          nullable: true
          type: string
        discType:
          $ref: "#/components/schemas/DiscType"
        entryType:
          $ref: "#/components/schemas/EntryType"
        eventCategory:
          $ref: "#/components/schemas/EventCategory"
        id:
          format: int32
          type: integer
        mainPicture:
          $ref: "#/components/schemas/EntryThumbForApiContract"
        name:
          nullable: true
          type: string
        names:
          items:
            $ref: "#/components/schemas/LocalizedStringContract"
          nullable: true
          type: array
        pvs:
          items:
            $ref: "#/components/schemas/PVContract"
          nullable: true
          type: array
        releaseEventSeriesName:
          nullable: true
          type: string
        songListFeaturedCategory:
          $ref: "#/components/schemas/SongListFeaturedCategory"
        songType:
          $ref: "#/components/schemas/SongType"
        status:
          $ref: "#/components/schemas/EntryStatus"
        tagCategoryName:
          nullable: true
          type: string
        tags:
          items:
            $ref: "#/components/schemas/TagUsageForApiContract"
          nullable: true
          type: array
        urlSlug:
          nullable: true
          type: string
        version:
          format: int32
          type: integer
        webLinks:
          items:
            $ref: "#/components/schemas/ArchivedWebLinkContract"
          nullable: true
          type: array
      type: object
    EntryForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/EntryForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    EntryOptionalFields:
      enum:
        - None
        - AdditionalNames
        - Description
        - MainPicture
        - Names
        - PVs
        - Tags
        - WebLinks
      type: string
    EntrySortRule:
      enum:
        - None
        - Name
        - AdditionDate
        - ActivityDate
      type: string
    EntryStatus:
      enum:
        - Draft
        - Finished
        - Approved
        - Locked
      type: string
    EntryThumbForApiContract:
      additionalProperties: false
      properties:
        mime:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        urlOriginal:
          nullable: true
          type: string
        urlSmallThumb:
          nullable: true
          type: string
        urlThumb:
          nullable: true
          type: string
        urlTinyThumb:
          nullable: true
          type: string
      type: object
    EntryType:
      enum:
        - Undefined
        - Album
        - Artist
        - DiscussionTopic
        - PV
        - ReleaseEvent
        - ReleaseEventSeries
        - Song
        - SongList
        - Tag
        - User
        - Venue
      type: string
    EntryTypes:
      enum:
        - Nothing
        - Album
        - Artist
        - DiscussionTopic
        - PV
        - ReleaseEvent
        - ReleaseEventSeries
        - Song
        - SongList
        - Tag
        - User
        - Venue
      type: string
    EventCategory:
      enum:
        - Unspecified
        - AlbumRelease
        - Anniversary
        - Club
        - Concert
        - Contest
        - Convention
        - Other
        - Festival
      type: string
    EventReportType:
      enum:
        - InvalidInfo
        - Duplicate
        - Inappropriate
        - Other
      type: string
    EventSortRule:
      enum:
        - None
        - Name
        - Date
        - AdditionDate
        - SeriesName
        - VenueName
      type: string
    LocalizedStringContract:
      additionalProperties: false
      properties:
        language:
          $ref: "#/components/schemas/ContentLanguageSelection"
        value:
          nullable: true
          type: string
      type: object
    LocalizedStringWithIdContract:
      additionalProperties: false
      properties:
        id:
          format: int32
          type: integer
        language:
          $ref: "#/components/schemas/ContentLanguageSelection"
        value:
          nullable: true
          type: string
      type: object
    LogicalGrouping:
      enum:
        - And
        - Or
      type: string
    LyricsForSongContract:
      additionalProperties: false
      properties:
        cultureCode:
          default: ""
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        source:
          default: ""
          nullable: true
          type: string
        translationType:
          $ref: "#/components/schemas/TranslationType"
        url:
          default: ""
          nullable: true
          type: string
        value:
          nullable: true
          type: string
      type: object
    MediaType:
      enum:
        - PhysicalDisc
        - DigitalDownload
        - Other
      type: string
    NameMatchMode:
      enum:
        - Auto
        - Partial
        - StartsWith
        - Exact
        - Words
      type: string
    OldUsernameContract:
      additionalProperties: false
      properties:
        date:
          format: date-time
          type: string
        oldName:
          nullable: true
          type: string
      type: object
    OptionalDateTimeContract:
      additionalProperties: false
      properties:
        day:
          format: int32
          nullable: true
          type: integer
        formatted:
          nullable: true
          type: string
        isEmpty:
          type: boolean
        month:
          format: int32
          nullable: true
          type: integer
        year:
          format: int32
          nullable: true
          type: integer
      type: object
    OptionalGeoPointContract:
      additionalProperties: false
      properties:
        formatted:
          nullable: true
          type: string
        hasValue:
          type: boolean
        latitude:
          format: double
          nullable: true
          type: number
        longitude:
          format: double
          nullable: true
          type: number
      type: object
    PVContract:
      additionalProperties: false
      properties:
        author:
          nullable: true
          type: string
        createdBy:
          format: int32
          nullable: true
          type: integer
        disabled:
          type: boolean
        extendedMetadata:
          $ref: "#/components/schemas/PVExtendedMetadata"
        id:
          format: int32
          type: integer
        length:
          format: int32
          type: integer
        name:
          nullable: true
          type: string
        publishDate:
          format: date-time
          nullable: true
          type: string
        pvId:
          nullable: true
          type: string
        pvType:
          $ref: "#/components/schemas/PVType"
        service:
          $ref: "#/components/schemas/PVService"
        thumbUrl:
          nullable: true
          type: string
        url:
          nullable: true
          type: string
      type: object
    PVExtendedMetadata:
      additionalProperties: false
      properties:
        json:
          nullable: true
          type: string
      type: object
    PVForSongContract:
      additionalProperties: false
      properties:
        author:
          nullable: true
          type: string
        createdBy:
          format: int32
          nullable: true
          type: integer
        disabled:
          type: boolean
        extendedMetadata:
          $ref: "#/components/schemas/PVExtendedMetadata"
        id:
          format: int32
          type: integer
        length:
          format: int32
          type: integer
        name:
          nullable: true
          type: string
        publishDate:
          format: date-time
          nullable: true
          type: string
        pvId:
          nullable: true
          type: string
        pvType:
          $ref: "#/components/schemas/PVType"
        service:
          $ref: "#/components/schemas/PVService"
        song:
          $ref: "#/components/schemas/SongContract"
        thumbUrl:
          nullable: true
          type: string
        url:
          nullable: true
          type: string
      type: object
    PVForSongContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/PVForSongContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    PVService:
      enum:
        - NicoNicoDouga
        - Youtube
        - SoundCloud
        - Vimeo
        - Piapro
        - Bilibili
        - File
        - LocalFile
        - Creofuga
        - Bandcamp
      type: string
    PVServices:
      enum:
        - Nothing
        - NicoNicoDouga
        - Youtube
        - SoundCloud
        - Vimeo
        - Piapro
        - Bilibili
        - File
        - LocalFile
        - Creofuga
        - Bandcamp
      type: string
    PVType:
      enum:
        - Original
        - Reprint
        - Other
      type: string
    PurchaseStatus:
      enum:
        - Nothing
        - Wishlisted
        - Ordered
        - Owned
      type: string
    PurchaseStatuses:
      enum:
        - Nothing
        - Wishlisted
        - Ordered
        - Owned
        - All
      type: string
    RatedSongForUserForApiContract:
      additionalProperties: false
      properties:
        date:
          format: date-time
          type: string
        rating:
          $ref: "#/components/schemas/SongVoteRating"
        song:
          $ref: "#/components/schemas/SongForApiContract"
        user:
          $ref: "#/components/schemas/UserForApiContract"
      type: object
    RatedSongForUserForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/RatedSongForUserForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    RatedSongForUserSortRule:
      enum:
        - None
        - Name
        - AdditionDate
        - PublishDate
        - FavoritedTimes
        - RatingScore
        - RatingDate
      type: string
    RelatedSongsContract:
      additionalProperties: false
      properties:
        artistMatches:
          items:
            $ref: "#/components/schemas/SongForApiContract"
          nullable: true
          type: array
        likeMatches:
          items:
            $ref: "#/components/schemas/SongForApiContract"
          nullable: true
          type: array
        tagMatches:
          items:
            $ref: "#/components/schemas/SongForApiContract"
          nullable: true
          type: array
      type: object
    ReleaseEventContract:
      additionalProperties: false
      properties:
        additionalNames:
          nullable: true
          type: string
        category:
          $ref: "#/components/schemas/EventCategory"
        customName:
          type: boolean
        date:
          format: date-time
          nullable: true
          type: string
        deleted:
          type: boolean
        description:
          nullable: true
          type: string
        endDate:
          format: date-time
          nullable: true
          type: string
        hasVenueOrVenueName:
          readOnly: true
          type: boolean
        id:
          format: int32
          type: integer
        inheritedCategory:
          $ref: "#/components/schemas/EventCategory"
        name:
          nullable: true
          type: string
        pictureMime:
          nullable: true
          type: string
        series:
          $ref: "#/components/schemas/ReleaseEventSeriesContract"
        songList:
          $ref: "#/components/schemas/SongListBaseContract"
        status:
          $ref: "#/components/schemas/EntryStatus"
        urlSlug:
          nullable: true
          type: string
        venue:
          $ref: "#/components/schemas/VenueContract"
        venueName:
          nullable: true
          type: string
        version:
          format: int32
          type: integer
      type: object
    ReleaseEventForApiContract:
      additionalProperties: false
      properties:
        additionalNames:
          nullable: true
          type: string
        artists:
          items:
            $ref: "#/components/schemas/ArtistForEventContract"
          nullable: true
          type: array
        category:
          $ref: "#/components/schemas/EventCategory"
        date:
          format: date-time
          nullable: true
          type: string
        description:
          nullable: true
          type: string
        endDate:
          format: date-time
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        mainPicture:
          $ref: "#/components/schemas/EntryThumbForApiContract"
        name:
          nullable: true
          type: string
        names:
          items:
            $ref: "#/components/schemas/LocalizedStringContract"
          nullable: true
          type: array
        pvs:
          items:
            $ref: "#/components/schemas/PVContract"
          nullable: true
          type: array
        series:
          $ref: "#/components/schemas/ReleaseEventSeriesContract"
        seriesId:
          format: int32
          nullable: true
          type: integer
        seriesNumber:
          format: int32
          type: integer
        seriesSuffix:
          nullable: true
          type: string
        songList:
          $ref: "#/components/schemas/SongListBaseContract"
        status:
          $ref: "#/components/schemas/EntryStatus"
        tags:
          items:
            $ref: "#/components/schemas/TagUsageForApiContract"
          nullable: true
          type: array
        urlSlug:
          nullable: true
          type: string
        venue:
          $ref: "#/components/schemas/VenueForApiContract"
        venueName:
          nullable: true
          type: string
        version:
          format: int32
          type: integer
        webLinks:
          items:
            $ref: "#/components/schemas/WebLinkForApiContract"
          nullable: true
          type: array
      type: object
    ReleaseEventForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/ReleaseEventForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    ReleaseEventOptionalFields:
      enum:
        - None
        - AdditionalNames
        - Artists
        - Description
        - MainPicture
        - Names
        - Series
        - SongList
        - Tags
        - Venue
        - WebLinks
        - PVs
      type: string
    ReleaseEventSeriesContract:
      additionalProperties: false
      properties:
        additionalNames:
          nullable: true
          type: string
        category:
          $ref: "#/components/schemas/EventCategory"
        deleted:
          type: boolean
        description:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        name:
          nullable: true
          type: string
        pictureMime:
          nullable: true
          type: string
        status:
          $ref: "#/components/schemas/EntryStatus"
        urlSlug:
          nullable: true
          type: string
        version:
          format: int32
          type: integer
        webLinks:
          items:
            $ref: "#/components/schemas/WebLinkContract"
          nullable: true
          type: array
      type: object
    ReleaseEventSeriesForApiContract:
      additionalProperties: false
      properties:
        additionalNames:
          nullable: true
          type: string
        category:
          $ref: "#/components/schemas/EventCategory"
        description:
          nullable: true
          type: string
        events:
          items:
            $ref: "#/components/schemas/ReleaseEventForApiContract"
          nullable: true
          type: array
        id:
          format: int32
          type: integer
        mainPicture:
          $ref: "#/components/schemas/EntryThumbForApiContract"
        name:
          nullable: true
          type: string
        names:
          items:
            $ref: "#/components/schemas/LocalizedStringContract"
          nullable: true
          type: array
        status:
          $ref: "#/components/schemas/EntryStatus"
        urlSlug:
          nullable: true
          type: string
        version:
          format: int32
          type: integer
        webLinks:
          items:
            $ref: "#/components/schemas/WebLinkForApiContract"
          nullable: true
          type: array
      type: object
    ReleaseEventSeriesForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/ReleaseEventSeriesForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    ReleaseEventSeriesForEditForApiContract:
      additionalProperties: false
      properties:
        category:
          $ref: "#/components/schemas/EventCategory"
        defaultNameLanguage:
          $ref: "#/components/schemas/ContentLanguageSelection"
        deleted:
          type: boolean
        description:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        mainPicture:
          $ref: "#/components/schemas/EntryThumbForApiContract"
        name:
          nullable: true
          type: string
        names:
          items:
            $ref: "#/components/schemas/LocalizedStringWithIdContract"
          nullable: true
          type: array
        status:
          $ref: "#/components/schemas/EntryStatus"
        webLinks:
          items:
            $ref: "#/components/schemas/WebLinkForApiContract"
          nullable: true
          type: array
      type: object
    ReleaseEventSeriesOptionalFields:
      enum:
        - None
        - AdditionalNames
        - Description
        - Events
        - MainPicture
        - Names
        - WebLinks
      type: string
    SongContract:
      additionalProperties: false
      properties:
        additionalNames:
          nullable: true
          type: string
        artistString:
          nullable: true
          type: string
        createDate:
          format: date-time
          type: string
        deleted:
          type: boolean
        favoritedTimes:
          format: int32
          type: integer
        id:
          format: int32
          type: integer
        lengthSeconds:
          format: int32
          type: integer
        name:
          nullable: true
          type: string
        nicoId:
          nullable: true
          type: string
        publishDate:
          format: date-time
          nullable: true
          type: string
        pvServices:
          $ref: "#/components/schemas/PVServices"
        ratingScore:
          format: int32
          type: integer
        songType:
          $ref: "#/components/schemas/SongType"
        status:
          $ref: "#/components/schemas/EntryStatus"
        thumbUrl:
          nullable: true
          type: string
        version:
          format: int32
          type: integer
      type: object
    SongForApiContract:
      additionalProperties: false
      properties:
        additionalNames:
          nullable: true
          type: string
        albums:
          items:
            $ref: "#/components/schemas/AlbumContract"
          nullable: true
          type: array
        artistString:
          nullable: true
          type: string
        artists:
          items:
            $ref: "#/components/schemas/ArtistForSongContract"
          nullable: true
          type: array
        createDate:
          format: date-time
          type: string
        defaultName:
          nullable: true
          type: string
        defaultNameLanguage:
          $ref: "#/components/schemas/ContentLanguageSelection"
        deleted:
          type: boolean
        favoritedTimes:
          format: int32
          type: integer
        id:
          format: int32
          type: integer
        lengthSeconds:
          format: int32
          type: integer
        lyrics:
          items:
            $ref: "#/components/schemas/LyricsForSongContract"
          nullable: true
          type: array
        mainPicture:
          $ref: "#/components/schemas/EntryThumbForApiContract"
        maxMilliBpm:
          format: int32
          nullable: true
          type: integer
        mergedTo:
          format: int32
          type: integer
        minMilliBpm:
          format: int32
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        names:
          items:
            $ref: "#/components/schemas/LocalizedStringContract"
          nullable: true
          type: array
        originalVersionId:
          format: int32
          type: integer
        publishDate:
          format: date-time
          nullable: true
          type: string
        pvServices:
          $ref: "#/components/schemas/PVServices"
        pvs:
          items:
            $ref: "#/components/schemas/PVContract"
          nullable: true
          type: array
        ratingScore:
          format: int32
          type: integer
        releaseEvent:
          $ref: "#/components/schemas/ReleaseEventForApiContract"
        songType:
          $ref: "#/components/schemas/SongType"
        status:
          $ref: "#/components/schemas/EntryStatus"
        tags:
          items:
            $ref: "#/components/schemas/TagUsageForApiContract"
          nullable: true
          type: array
        thumbUrl:
          nullable: true
          type: string
        version:
          format: int32
          type: integer
        webLinks:
          items:
            $ref: "#/components/schemas/WebLinkForApiContract"
          nullable: true
          type: array
      type: object
    SongForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/SongForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    SongInAlbumForApiContract:
      additionalProperties: false
      properties:
        discNumber:
          format: int32
          type: integer
        id:
          format: int32
          type: integer
        name:
          nullable: true
          type: string
        rating:
          $ref: "#/components/schemas/SongVoteRating"
        song:
          $ref: "#/components/schemas/SongForApiContract"
        trackNumber:
          format: int32
          type: integer
      type: object
    SongInListEditContract:
      additionalProperties: false
      properties:
        notes:
          nullable: true
          type: string
        order:
          format: int32
          type: integer
        song:
          $ref: "#/components/schemas/SongForApiContract"
        songInListId:
          format: int32
          type: integer
      type: object
    SongInListForApiContract:
      additionalProperties: false
      properties:
        notes:
          nullable: true
          type: string
        order:
          format: int32
          type: integer
        song:
          $ref: "#/components/schemas/SongForApiContract"
      type: object
    SongInListForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/SongInListForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    SongListBaseContract:
      additionalProperties: false
      properties:
        featuredCategory:
          $ref: "#/components/schemas/SongListFeaturedCategory"
        id:
          format: int32
          type: integer
        name:
          nullable: true
          type: string
      type: object
    SongListFeaturedCategory:
      enum:
        - Nothing
        - Concerts
        - VocaloidRanking
        - Pools
        - Other
      type: string
    SongListForApiContract:
      additionalProperties: false
      properties:
        author:
          $ref: "#/components/schemas/UserForApiContract"
        deleted:
          type: boolean
        description:
          nullable: true
          type: string
        eventDate:
          format: date-time
          nullable: true
          type: string
        events:
          items:
            $ref: "#/components/schemas/ReleaseEventForApiContract"
          nullable: true
          type: array
        featuredCategory:
          $ref: "#/components/schemas/SongListFeaturedCategory"
        id:
          format: int32
          type: integer
        latestComments:
          items:
            $ref: "#/components/schemas/CommentForApiContract"
          nullable: true
          type: array
        mainPicture:
          $ref: "#/components/schemas/EntryThumbForApiContract"
        name:
          nullable: true
          type: string
        status:
          $ref: "#/components/schemas/EntryStatus"
        tags:
          items:
            $ref: "#/components/schemas/TagUsageForApiContract"
          nullable: true
          type: array
      type: object
    SongListForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/SongListForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    SongListForEditForApiContract:
      additionalProperties: false
      properties:
        deleted:
          type: boolean
        description:
          nullable: true
          type: string
        eventDate:
          format: date-time
          nullable: true
          type: string
        featuredCategory:
          $ref: "#/components/schemas/SongListFeaturedCategory"
        id:
          format: int32
          type: integer
        mainPicture:
          $ref: "#/components/schemas/EntryThumbForApiContract"
        name:
          nullable: true
          type: string
        songLinks:
          items:
            $ref: "#/components/schemas/SongInListEditContract"
          nullable: true
          type: array
        status:
          $ref: "#/components/schemas/EntryStatus"
        updateNotes:
          nullable: true
          type: string
      type: object
    SongListOptionalFields:
      enum:
        - None
        - Description
        - Events
        - MainPicture
        - Tags
      type: string
    SongListSortRule:
      enum:
        - None
        - Name
        - Date
        - CreateDate
      type: string
    SongOptionalFields:
      enum:
        - None
        - AdditionalNames
        - Albums
        - Artists
        - Lyrics
        - MainPicture
        - Names
        - PVs
        - ReleaseEvent
        - Tags
        - ThumbUrl
        - WebLinks
        - Bpm
      type: string
    SongRatingContract:
      additionalProperties: false
      properties:
        rating:
          $ref: "#/components/schemas/SongVoteRating"
      type: object
    SongSortRule:
      enum:
        - None
        - Name
        - AdditionDate
        - PublishDate
        - FavoritedTimes
        - RatingScore
        - TagUsageCount
        - SongType
      type: string
    SongType:
      enum:
        - Unspecified
        - Original
        - Remaster
        - Remix
        - Cover
        - Arrangement
        - Instrumental
        - Mashup
        - MusicPV
        - DramaPV
        - Live
        - Illustration
        - Other
      type: string
    SongVocalistSelection:
      enum:
        - Nothing
        - Vocaloid
        - UTAU
        - Other
      type: string
    SongVoteRating:
      enum:
        - Nothing
        - Dislike
        - Like
        - Favorite
      type: string
    SortDirection:
      enum:
        - Ascending
        - Descending
      type: string
    TagBaseContract:
      additionalProperties: false
      properties:
        additionalNames:
          nullable: true
          type: string
        categoryName:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        name:
          nullable: true
          type: string
        urlSlug:
          nullable: true
          type: string
      type: object
    TagForApiContract:
      additionalProperties: false
      properties:
        additionalNames:
          nullable: true
          type: string
        aliasedTo:
          $ref: "#/components/schemas/TagBaseContract"
        categoryName:
          nullable: true
          type: string
        createDate:
          format: date-time
          type: string
        defaultNameLanguage:
          $ref: "#/components/schemas/ContentLanguageSelection"
        description:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        mainPicture:
          $ref: "#/components/schemas/EntryThumbForApiContract"
        name:
          nullable: true
          type: string
        names:
          items:
            $ref: "#/components/schemas/LocalizedStringWithIdContract"
          nullable: true
          type: array
        parent:
          $ref: "#/components/schemas/TagBaseContract"
        relatedTags:
          items:
            $ref: "#/components/schemas/TagBaseContract"
          nullable: true
          type: array
        status:
          $ref: "#/components/schemas/EntryStatus"
        targets:
          format: int32
          type: integer
        translatedDescription:
          $ref: "#/components/schemas/EnglishTranslatedStringContract"
        urlSlug:
          nullable: true
          type: string
        usageCount:
          format: int32
          type: integer
        version:
          format: int32
          type: integer
        webLinks:
          items:
            $ref: "#/components/schemas/WebLinkForApiContract"
          nullable: true
          type: array
      type: object
    TagForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/TagForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    TagOptionalFields:
      enum:
        - None
        - AdditionalNames
        - AliasedTo
        - Description
        - MainPicture
        - Names
        - Parent
        - RelatedTags
        - TranslatedDescription
        - WebLinks
      type: string
    TagReportType:
      enum:
        - InvalidInfo
        - Duplicate
        - Inappropriate
        - Other
      type: string
    TagSortRule:
      enum:
        - Nothing
        - Name
        - AdditionDate
        - UsageCount
      type: string
    TagTargetTypes:
      enum:
        - Nothing
        - Album
        - Artist
        - AlbumArtist
        - Event
        - Song
        - AlbumSong
        - ArtistSong
        - SongList
        - All
      type: string
    TagUsageForApiContract:
      additionalProperties: false
      properties:
        count:
          format: int32
          type: integer
        tag:
          $ref: "#/components/schemas/TagBaseContract"
      type: object
    TopSongsDateFilterType:
      enum:
        - CreateDate
        - PublishDate
        - Popularity
      type: string
    TranslationType:
      enum:
        - Original
        - Romanized
        - Translation
      type: string
    UserEventRelationshipType:
      enum:
        - Interested
        - Attending
      type: string
    UserForApiContract:
      additionalProperties: false
      properties:
        active:
          type: boolean
        groupId:
          $ref: "#/components/schemas/UserGroupId"
        id:
          format: int32
          type: integer
        knownLanguages:
          items:
            $ref: "#/components/schemas/UserKnownLanguageContract"
          nullable: true
          type: array
        mainPicture:
          $ref: "#/components/schemas/EntryThumbForApiContract"
        memberSince:
          format: date-time
          type: string
        name:
          nullable: true
          type: string
        oldUsernames:
          items:
            $ref: "#/components/schemas/OldUsernameContract"
          nullable: true
          type: array
        verifiedArtist:
          type: boolean
      type: object
    UserForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/UserForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    UserGroupId:
      enum:
        - Nothing
        - Limited
        - Regular
        - Trusted
        - Moderator
        - Admin
      type: string
    UserInboxType:
      enum:
        - Nothing
        - Received
        - Sent
        - Notifications
      type: string
    UserKnownLanguageContract:
      additionalProperties: false
      properties:
        cultureCode:
          nullable: true
          type: string
        proficiency:
          $ref: "#/components/schemas/UserLanguageProficiency"
      type: object
    UserLanguageProficiency:
      enum:
        - Nothing
        - Basics
        - Intermediate
        - Advanced
        - Native
      type: string
    UserMessageContract:
      additionalProperties: false
      properties:
        body:
          nullable: true
          type: string
        createdFormatted:
          nullable: true
          type: string
        highPriority:
          type: boolean
        id:
          format: int32
          type: integer
        inbox:
          $ref: "#/components/schemas/UserInboxType"
        read:
          type: boolean
        receiver:
          $ref: "#/components/schemas/UserForApiContract"
        sender:
          $ref: "#/components/schemas/UserForApiContract"
        subject:
          nullable: true
          type: string
      type: object
    UserMessageContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/UserMessageContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    UserOptionalFields:
      enum:
        - None
        - KnownLanguages
        - MainPicture
        - OldUsernames
      type: string
    UserReportType:
      enum:
        - MaliciousIP
        - Spamming
        - RemovePermissions
        - Other
      type: string
    UserSortRule:
      enum:
        - RegisterDate
        - Name
        - Group
      type: string
    VenueContract:
      additionalProperties: false
      properties:
        additionalNames:
          nullable: true
          type: string
        address:
          nullable: true
          type: string
        addressCountryCode:
          nullable: true
          type: string
        coordinates:
          $ref: "#/components/schemas/OptionalGeoPointContract"
        deleted:
          type: boolean
        description:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        name:
          nullable: true
          type: string
        status:
          $ref: "#/components/schemas/EntryStatus"
        version:
          format: int32
          type: integer
        webLinks:
          items:
            $ref: "#/components/schemas/WebLinkContract"
          nullable: true
          type: array
      type: object
    VenueForApiContract:
      additionalProperties: false
      properties:
        additionalNames:
          nullable: true
          type: string
        address:
          nullable: true
          type: string
        addressCountryCode:
          nullable: true
          type: string
        coordinates:
          $ref: "#/components/schemas/OptionalGeoPointContract"
        deleted:
          type: boolean
        description:
          nullable: true
          type: string
        events:
          items:
            $ref: "#/components/schemas/ReleaseEventContract"
          nullable: true
          type: array
        id:
          format: int32
          type: integer
        name:
          nullable: true
          type: string
        names:
          items:
            $ref: "#/components/schemas/LocalizedStringContract"
          nullable: true
          type: array
        status:
          $ref: "#/components/schemas/EntryStatus"
        version:
          format: int32
          type: integer
        webLinks:
          items:
            $ref: "#/components/schemas/WebLinkForApiContract"
          nullable: true
          type: array
      type: object
    VenueForApiContractPartialFindResult:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: "#/components/schemas/VenueForApiContract"
          nullable: true
          type: array
        term:
          nullable: true
          type: string
        totalCount:
          format: int32
          type: integer
      type: object
    VenueOptionalFields:
      enum:
        - None
        - AdditionalNames
        - Description
        - Events
        - Names
        - WebLinks
      type: string
    VenueReportType:
      enum:
        - InvalidInfo
        - Duplicate
        - Inappropriate
        - Other
      type: string
    VenueSortRule:
      enum:
        - None
        - Name
        - Distance
      type: string
    WebLinkCategory:
      enum:
        - Official
        - Commercial
        - Reference
        - Other
      type: string
    WebLinkContract:
      additionalProperties: false
      properties:
        category:
          $ref: "#/components/schemas/WebLinkCategory"
        description:
          nullable: true
          type: string
        descriptionOrUrl:
          nullable: true
          type: string
        disabled:
          type: boolean
        id:
          format: int32
          type: integer
        url:
          nullable: true
          type: string
      type: object
    WebLinkForApiContract:
      additionalProperties: false
      properties:
        category:
          $ref: "#/components/schemas/WebLinkCategory"
        description:
          nullable: true
          type: string
        descriptionOrUrl:
          nullable: true
          type: string
        disabled:
          type: boolean
        id:
          format: int32
          type: integer
        url:
          nullable: true
          type: string
      type: object
