CESNET Cabinet Manager API

CabinetManager RPC API in Perun

Operations 27

GET /json/cabinetManager/getPublicationSystems Get all PublicationSystems in Perun. If none, return empty list #
POST /urlinjsonout/cabinetManager/deletePublicationSystem Deletes PublicationSystem by its ID #
POST /json/cabinetManager/createPublicationSystem Creates new PublicationSystem #
POST /json/cabinetManager/updatePublicationSystem Updates PublicationSystem by its ID #
GET /json/cabinetManager/getCategories Return list of all Categories in Perun or empty list of none present #
POST /json/cabinetManager/createCategory/cat Creates new Category for Publications with specified name and rank. #
POST /json/cabinetManager/createCategory/n-r Creates new Category for Publications with specified name and rank #
POST /json/cabinetManager/updateCategory Updates publications category in Perun. #
POST /urlinjsonout/cabinetManager/deleteCategory Delete category by its ID. #
POST /json/cabinetManager/createThanks Creates new Thanks for Publication #
POST /urlinjsonout/cabinetManager/deleteThanks Delete Thanks by its ID #
GET /json/cabinetManager/getRichThanksByPublicationId Get ThanksForGUI of Publication specified by its ID or empty list #
POST /json/cabinetManager/createAuthorship Creates Authorship. #
POST /urlinjsonout/cabinetManager/deleteAuthorship Delete Authorship by its userId and publicationId #
GET /json/cabinetManager/getRank Gets overall rank of given user as sum of all his publications Authorships #
GET /json/cabinetManager/findAuthorsByPublicationId Return all Authors of Publication specified by its ID. Empty list of none found #
GET /json/cabinetManager/findAllAuthors Return all Authors of Publications. Empty list of none found #
GET /json/cabinetManager/findNewAuthors Find new Authors for Publication. #
POST /json/cabinetManager/createPublication Create Publication. #
POST /json/cabinetManager/updatePublication Update existing publication by its ID #
POST /urlinjsonout/cabinetManager/deletePublication Delete publication by its ID. #
GET /json/cabinetManager/findPublicationById Return Publication by its ID #
GET /json/cabinetManager/findPublicationsByGUIFilter Finds rich publications in Cabinet by GUI filter: id = exact match (used when… #
GET /json/cabinetManager/findPublicationsByFilter Finds publications in Cabinet by filter #
POST /json/cabinetManager/lockPublications (Un)Lock passed Publications for changes #
GET /json/cabinetManager/findExternalPublications Finds publications of perun's user specified in param Search is done in… #
GET /json/cabinetManager/findSimilarPublications Finds similar publications #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cesnet:cesnet-cabinetmanager-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cesnet-cabinetmanager-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 0.0.0
  title: Perun RPC Cabinet Manager API
  description: Perun Remote Procedure Calls Application Programming Interface
  contact:
    url: https://perun-aai.org
    email: perun@cesnet.cz
servers:
- url: https://{server}/{authentication}/rpc
  description: Perun RPC server
  variables:
    server:
      default: api-dev.perun-aai.org
      description: DNS name of a Perun server
    authentication:
      default: ba
      description: 'way of authentication:

        ba - HTTP Basic Auth

        krb - Kerberos

        non - no authentication

        cert - X509 client certificate

        oauth - OAuth 2.0 bearer access token

        fed - SAML federation

        '
      enum:
      - ba
      - krb
      - non
      - cert
      - oauth
      - fed
security:
- BasicAuth: []
- BearerAuth: []
tags:
- name: CabinetManager
  description: CabinetManager RPC API in Perun
  externalDocs:
    url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-CabinetManager.html
paths:
  /json/cabinetManager/getPublicationSystems:
    get:
      tags:
      - CabinetManager
      operationId: getPublicationSystems
      summary: Get all PublicationSystems in Perun. If none, return empty list
      responses:
        '200':
          $ref: '#/components/responses/ListOfPublicationSystemsResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /urlinjsonout/cabinetManager/deletePublicationSystem:
    post:
      tags:
      - CabinetManager
      operationId: deletePublicationSystem
      summary: Deletes PublicationSystem by its ID
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          $ref: '#/components/responses/VoidResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /json/cabinetManager/createPublicationSystem:
    post:
      tags:
      - CabinetManager
      operationId: createPublicationSystem
      summary: Creates new PublicationSystem
      responses:
        '200':
          $ref: '#/components/responses/PublicationSystemResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: InputCreatePublicationSystem
              description: input to createPublicationSystem
              type: object
              required:
              - pubsys
              properties:
                pubsys:
                  $ref: '#/components/schemas/PublicationSystem'
  /json/cabinetManager/updatePublicationSystem:
    post:
      tags:
      - CabinetManager
      operationId: updatePublicationSystem
      summary: Updates PublicationSystem by its ID
      responses:
        '200':
          $ref: '#/components/responses/PublicationSystemResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: InputUpdatePublicationSystem
              description: input to updatePublicationSystem
              type: object
              required:
              - pubsys
              properties:
                pubsys:
                  $ref: '#/components/schemas/PublicationSystem'
  /json/cabinetManager/getCategories:
    get:
      tags:
      - CabinetManager
      operationId: getCategories
      summary: Return list of all Categories in Perun or empty list of none present
      responses:
        '200':
          $ref: '#/components/responses/ListOfCategoryResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /json/cabinetManager/createCategory/cat:
    post:
      tags:
      - CabinetManager
      operationId: createCategoryCat
      summary: Creates new Category for Publications with specified name and rank.
      responses:
        '200':
          $ref: '#/components/responses/CategoryResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: InputCreateCategory
              description: input to createCategory
              type: object
              required:
              - category
              properties:
                category:
                  $ref: '#/components/schemas/Category'
  /json/cabinetManager/createCategory/n-r:
    post:
      tags:
      - CabinetManager
      operationId: createCategoryNR
      summary: Creates new Category for Publications with specified name and rank
      responses:
        '200':
          $ref: '#/components/responses/CategoryResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: InputCreateCategoryNR
              description: input to createCategory
              type: object
              required:
              - name
              - rank
              properties:
                name:
                  type: string
                  description: name of the category
                rank:
                  type: number
                  format: double
                  description: the rank of the category
  /json/cabinetManager/updateCategory:
    post:
      tags:
      - CabinetManager
      operationId: updateCategory
      summary: Updates publications category in Perun.
      responses:
        '200':
          $ref: '#/components/responses/CategoryResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: InputUpdateCategory
              description: input to updateCategory
              type: object
              required:
              - category
              properties:
                category:
                  $ref: '#/components/schemas/Category'
  /urlinjsonout/cabinetManager/deleteCategory:
    post:
      tags:
      - CabinetManager
      operationId: deleteCategory
      summary: Delete category by its ID.
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          $ref: '#/components/responses/VoidResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /json/cabinetManager/createThanks:
    post:
      tags:
      - CabinetManager
      operationId: createThanks
      summary: Creates new Thanks for Publication
      responses:
        '200':
          $ref: '#/components/responses/ThanksResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: InputCreateThanks
              description: input to createThanks
              type: object
              required:
              - thanks
              properties:
                thanks:
                  $ref: '#/components/schemas/Thanks'
  /urlinjsonout/cabinetManager/deleteThanks:
    post:
      tags:
      - CabinetManager
      operationId: deleteThanks
      summary: Delete Thanks by its ID
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          $ref: '#/components/responses/VoidResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /json/cabinetManager/getRichThanksByPublicationId:
    get:
      tags:
      - CabinetManager
      operationId: getRichThanksByPublicationId
      summary: Get ThanksForGUI of Publication specified by its ID or empty list
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          $ref: '#/components/responses/ListOfThanksForGUIResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /json/cabinetManager/createAuthorship:
    post:
      tags:
      - CabinetManager
      operationId: createAutorship
      summary: Creates Authorship.
      responses:
        '200':
          $ref: '#/components/responses/AuthorshipResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: InputCreateAuthorship
              description: input to createAuthorship
              type: object
              required:
              - authorship
              properties:
                authorship:
                  $ref: '#/components/schemas/Authorship'
  /urlinjsonout/cabinetManager/deleteAuthorship:
    post:
      tags:
      - CabinetManager
      operationId: deleteAuthorship
      summary: Delete Authorship by its userId and publicationId
      parameters:
      - $ref: '#/components/parameters/publicationId'
      - name: userId
        schema:
          type: integer
        in: query
        required: true
        description: id of user
      responses:
        '200':
          $ref: '#/components/responses/VoidResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /json/cabinetManager/getRank:
    get:
      tags:
      - CabinetManager
      operationId: getRank
      summary: Gets overall rank of given user as sum of all his publications Authorships
      parameters:
      - $ref: '#/components/parameters/userId'
      responses:
        '200':
          $ref: '#/components/responses/DoubleResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /json/cabinetManager/findAuthorsByPublicationId:
    get:
      tags:
      - CabinetManager
      operationId: findAuthorsByPublicationId
      summary: Return all Authors of Publication specified by its ID. Empty list of none found
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          $ref: '#/components/responses/ListOfAuthorResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /json/cabinetManager/findAllAuthors:
    get:
      tags:
      - CabinetManager
      operationId: findAllAuthors
      summary: Return all Authors of Publications. Empty list of none found
      responses:
        '200':
          $ref: '#/components/responses/ListOfAuthorResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /json/cabinetManager/findNewAuthors:
    get:
      tags:
      - CabinetManager
      operationId: findNewAuthors
      summary: Find new Authors for Publication.
      parameters:
      - $ref: '#/components/parameters/searchString'
      responses:
        '200':
          $ref: '#/components/responses/ListOfAuthorResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /json/cabinetManager/createPublication:
    post:
      tags:
      - CabinetManager
      operationId: createPublication
      summary: Create Publication.
      responses:
        '200':
          $ref: '#/components/responses/PublicationResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: InputCreatePublication
              description: input to createPublication
              type: object
              required:
              - publication
              properties:
                publication:
                  $ref: '#/components/schemas/Publication'
  /json/cabinetManager/updatePublication:
    post:
      tags:
      - CabinetManager
      operationId: updatePublication
      summary: Update existing publication by its ID
      responses:
        '200':
          $ref: '#/components/responses/PublicationResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: InputUpdatePublication
              description: input to updatePublication
              type: object
              required:
              - publication
              properties:
                publication:
                  $ref: '#/components/schemas/Publication'
  /urlinjsonout/cabinetManager/deletePublication:
    post:
      tags:
      - CabinetManager
      operationId: deletePublication
      summary: Delete publication by its ID.
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          $ref: '#/components/responses/VoidResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /json/cabinetManager/findPublicationById:
    get:
      tags:
      - CabinetManager
      operationId: findPublicationById
      summary: Return Publication by its ID
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          $ref: '#/components/responses/PublicationForGUIResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /json/cabinetManager/findPublicationsByGUIFilter:
    get:
      tags:
      - CabinetManager
      operationId: findPublicationsByGUIFilter
      summary: 'Finds rich publications in Cabinet by GUI filter: id = exact match (used when…'
      parameters:
      - $ref: '#/components/parameters/title'
      - $ref: '#/components/parameters/isbn'
      - $ref: '#/components/parameters/doi'
      - name: id
        in: query
        schema:
          type: integer
        description: Publication id
        required: false
      - name: year
        in: query
        schema:
          type: integer
        description: Year
        required: false
      - name: category
        in: query
        schema:
          type: integer
        description: Category
        required: false
      - name: yearSince
        in: query
        schema:
          type: integer
        description: Year since
        required: false
      - name: yearTill
        in: query
        schema:
          type: integer
        description: Year till
        required: false
      - name: userId
        in: query
        schema:
          type: integer
        description: User id
        required: false
      responses:
        '200':
          $ref: '#/components/responses/ListOfPublicationForGUIResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /json/cabinetManager/findPublicationsByFilter:
    get:
      tags:
      - CabinetManager
      operationId: findPublicationsByFilter
      summary: Finds publications in Cabinet by filter
      parameters:
      - name: yearSince
        in: query
        schema:
          type: integer
        description: Year since
        required: false
      - name: yearTill
        in: query
        schema:
          type: integer
        description: Year till
        required: false
      - name: userId
        in: query
        schema:
          type: integer
        description: User id
        required: true
      responses:
        '200':
          $ref: '#/components/responses/ListOfPublicationResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /json/cabinetManager/lockPublications:
    post:
      tags:
      - CabinetManager
      operationId: lockPublications
      summary: (Un)Lock passed Publications for changes
      responses:
        '200':
          $ref: '#/components/responses/VoidResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: InputLockPublications
              description: input to lockPublications
              type: object
              required:
              - lock
              - publications
              properties:
                publications:
                  type: array
                  items:
                    $ref: '#/components/schemas/Publication'
                lock:
                  type: boolean
  /json/cabinetManager/findExternalPublications:
    get:
      tags:
      - CabinetManager
      operationId: findExternalPublications
      summary: Finds publications of perun's user specified in param Search is done in…
      parameters:
      - $ref: '#/components/parameters/userId'
      - name: yearSince
        in: query
        schema:
          type: integer
        description: Year since
        required: true
      - name: yearTill
        in: query
        schema:
          type: integer
        description: Year till
        required: true
      - name: pubSysNamespace
        in: query
        schema:
          type: string
        description: (MU or ZCU)
        required: true
      responses:
        '200':
          $ref: '#/components/responses/ListOfPublicationResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
  /json/cabinetManager/findSimilarPublications:
    get:
      tags:
      - CabinetManager
      operationId: findSimilarPublications
      summary: Finds similar publications
      parameters:
      - $ref: '#/components/parameters/title'
      - $ref: '#/components/parameters/doi'
      - $ref: '#/components/parameters/isbn'
      responses:
        '200':
          $ref: '#/components/responses/ListOfPublicationForGUIResponse'
        default:
          $ref: '#/components/responses/ExceptionResponse'
components:
  schemas:
    Authorship:
      allOf:
      - $ref: '#/components/schemas/PerunBean'
      properties:
        publicationId:
          type: integer
        userId:
          type: integer
        createdBy:
          type: string
        createdDate:
          type: string
          format: date
        createdByUid:
          type: integer
    PerunException:
      description: exception thrown from inside of Perun
      type: object
      properties:
        errorId:
          type: string
        name:
          type: string
        message:
          type: string
    AttributeDefinition:
      allOf:
      - $ref: '#/components/schemas/Auditable'
      properties:
        friendlyName:
          type: string
        namespace:
          type: string
        description:
          type:
          - string
          - 'null'
        type:
          type: string
        displayName:
          type: string
        writable:
          type: boolean
        unique:
          type: boolean
        friendlyNameParameter:
          type: string
          readOnly: true
        baseFriendlyName:
          type: string
          readOnly: true
        entity:
          type: string
          readOnly: true
    PerunBean:
      description: identifiable entity in Perun, common ancestor of all entity classes
      type: object
      properties:
        id:
          type: integer
        beanName:
          type: string
      required:
      - id
      - beanName
      discriminator:
        propertyName: beanName
    Publication:
      allOf:
      - $ref: '#/components/schemas/PerunBean'
      properties:
        authors:
          type: array
          items:
            $ref: '#/components/schemas/Author'
        externalId:
          type: integer
        publicationSystemId:
          type: integer
        title:
          type: string
        year:
          type: integer
        main:
          type: string
        isbn:
          type: string
        doi:
          type: string
        categoryId:
          type: integer
        rank:
          type: number
          format: double
        locked:
          type: boolean
        createdBy:
          type: string
        createdByUid:
          type: integer
        createdDate:
          type: string
          format: date
    Attribute:
      allOf:
      - $ref: '#/components/schemas/AttributeDefinition'
      properties:
        valueCreatedAt:
          type:
          - string
          - 'null'
        valueCreatedBy:
          type:
          - string
          - 'null'
        valueModifiedAt:
          type:
          - string
          - 'null'
        valueModifiedBy:
          type:
          - string
          - 'null'
        value: {}
    PublicationForGUI:
      allOf:
      - $ref: '#/components/schemas/Publication'
      properties:
        pubSystemName:
          type: string
        categoryName:
          type: string
        thanks:
          type: array
          items:
            $ref: '#/components/schemas/ThanksForGUI'
    PublicationSystem:
      allOf:
      - $ref: '#/components/schemas/PerunBean'
      properties:
        friendlyName:
          type: string
        url:
          type: string
        username:
          type: string
        password:
          type: string
        loginNamespace:
          type: string
        type:
          type: string
    Thanks:
      allOf:
      - $ref: '#/components/schemas/PerunBean'
      properties:
        publicationId:
          type: integer
        ownerId:
          type: integer
        createdBy:
          type: string
        createdByUid:
          type: integer
        createdDate:
          type: string
          format: date
    Category:
      allOf:
      - $ref: '#/components/schemas/PerunBean'
      properties:
        name:
          type: string
        rank:
          type: number
          format: double
    ThanksForGUI:
      allOf:
      - $ref: '#/components/schemas/Thanks'
      properties:
        ownerName:
          type: string
    Auditable:
      description: represents audit information
      allOf:
      - $ref: '#/components/schemas/PerunBean'
      properties:
        createdAt:
          type:
          - string
          - 'null'
        createdBy:
          type:
          - string
          - 'null'
        modifiedAt:
          type:
          - string
          - 'null'
        modifiedBy:
          type:
          - string
          - 'null'
        createdByUid:
          type:
          - integer
          - 'null'
        modifiedByUid:
          type:
          - integer
          - 'null'
    Author:
      allOf:
      - $ref: '#/components/schemas/PerunBean'
      properties:
        firstName:
          type: string
        lastName:
          type: string
        middleName:
          type: string
        titleBefore:
          type: string
        titleAfter:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/Attribute'
        authorships:
          type: array
          items:
            $ref: '#/components/schemas/Authorship'
  responses:
    ListOfPublicationForGUIResponse:
      description: return List<PublicationForGUI>
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/PublicationForGUI'
    ListOfCategoryResponse:
      description: returns List<Category>
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/Category'
    ListOfPublicationSystemsResponse:
      description: returns List<PublicationSystem>
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/PublicationSystem'
    ListOfAuthorResponse:
      description: returns List<Author>
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/Author'
    DoubleResponse:
      description: returns Double
      content:
        application/json:
          schema:
            type: number
            format: double
    PublicationResponse:
      description: return Publication
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Publication'
    ListOfPublicationResponse:
      description: return List<Publication>
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/Publication'
    ThanksResponse:
      description: returns Thanks
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Thanks'
    CategoryResponse:
      description: returns Category
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Category'
    ListOfThanksForGUIResponse:
      description: returns List<ThanksForGUI>
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ThanksForGUI'
    VoidResponse:
      description: returns nothing
    ExceptionResponse:
      description: exception occurred
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PerunException'
    AuthorshipResponse:
      description: returns Authorship
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Authorship'
    PublicationSystemResponse:
      description: returns PublicationSystem
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PublicationSystem'
    PublicationForGUIResponse:
      description: return PublicationForGUI
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PublicationForGUI'
  parameters:
    title:
      name: title
      description: Title
      schema:
        type: string
      in: query
      required: false
    id:
      name: id
      description: numeric id
      schema:
        type: integer
      in: query
      required: true
    searchString:
      name: searchString
      description: Text to search by
      schema:
        type: string
      in: query
      required: true
    publicationId:
      name: publicationId
      description: id of publication
      schema:
        type: integer
      in: query
      required: true
    doi:
      name: doi
      description: DOI
      schema:
        type: string
      in: query
      required: false
    isbn:
      name: isbn
      description: ISBN
      schema:
        type: string
      in: query
      required: false
    userId:
      name: user
      description: id of User
      schema:
        type: integer
      in: query
      required: true
  securitySchemes:
    BasicAuth:
      description: HTTP Basic authentication with username and password
      type: http
      scheme: basic
    BearerAuth:
      description: 'OAuth2 Resource Server authentication using access token in ''Authorization: Bearer'' HTTP header'
      type: http
      scheme: bearer