packages feed

vikunja-api-0.24.6.0: openapi.yaml

openapi: 3.0.1
info:
  contact:
    email: hello@vikunja.io
    name: General Vikunja contact
    url: https://vikunja.io/contact/
  description: |-
    # Pagination
    Every endpoint capable of pagination will return two headers:
    * `x-pagination-total-pages`: The total number of available pages for this request
    * `x-pagination-result-count`: The number of items returned for this request.
    # Rights
    All endpoints which return a single item (project, task, etc.) - no array - will also return a `x-max-right` header with the max right the user has on this item as an int where `0` is `Read Only`, `1` is `Read & Write` and `2` is `Admin`.
    This can be used to show or hide ui elements based on the rights the user has.
    # Errors
    All errors have an error code and a human-readable error message in addition to the http status code. You should always check for the status code in the response, not only the http status code.
    Due to limitations in the swagger library we're using for this document, only one error per http status code is documented here. Make sure to check the [error docs](https://vikunja.io/docs/errors/) in Vikunja's documentation for a full list of available error codes.
    # Authorization
    **JWT-Auth:** Main authorization method, used for most of the requests. Needs `Authorization: Bearer <jwt-token>`-header to authenticate successfully.

    **API Token:** You can create scoped API tokens for your user and use the token to make authenticated requests in the context of that user. The token must be provided via an `Authorization: Bearer <token>` header, similar to jwt auth. See the documentation for the `api` group to manage token creation and revocation.

    **BasicAuth:** Only used when requesting tasks via CalDAV.
    <!-- ReDoc-Inject: <security-definitions> -->
  license:
    name: AGPL-3.0-or-later
    url: https://code.vikunja.io/api/src/branch/main/LICENSE
  title: Vikunja API
  version: 0.24.6
servers:
- url: /api/v1
paths:
  /auth/openid/{provider}/callback:
    post:
      description: "After a redirect from the OpenID Connect provider to the frontend\
        \ has been made with the authentication `code`, this endpoint can be used\
        \ to obtain a jwt token for that user and thus log them in."
      operationId: get-token-openid
      parameters:
      - description: The OpenID Connect provider key as returned by the /info endpoint
        in: path
        name: provider
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/openid.Callback'
        description: The openid callback
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/auth.Token'
          description: OK
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Authenticate a user with OpenID Connect
      tags:
      - auth
      x-codegen-request-body-name: callback
  /backgrounds/unsplash/image/{image}:
    get:
      description: Get an unsplash image. **Returns json on error.**
      parameters:
      - description: Unsplash Image ID
        in: path
        name: image
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/octet-stream:
              schema:
                format: binary
                type: string
          description: The image
        "404":
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The image does not exist.
        "500":
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get an unsplash image
      tags:
      - project
  /backgrounds/unsplash/image/{image}/thumb:
    get:
      description: Get an unsplash thumbnail image. The thumbnail is cropped to a
        max width of 200px. **Returns json on error.**
      parameters:
      - description: Unsplash Image ID
        in: path
        name: image
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/octet-stream:
              schema:
                format: binary
                type: string
          description: The thumbnail
        "404":
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The image does not exist.
        "500":
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get an unsplash thumbnail image
      tags:
      - project
  /backgrounds/unsplash/search:
    get:
      description: Search for a project background from unsplash
      parameters:
      - description: Search backgrounds from unsplash with this search term.
        in: query
        name: s
        schema:
          type: string
      - description: "The page number. Used for pagination. If not provided, the first\
          \ page of results is returned."
        in: query
        name: p
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/background.Image'
                type: array
          description: An array with photos
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Search for a background from unsplash
      tags:
      - project
  /filters:
    put:
      description: Creates a new saved filter
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.SavedFilter'
          description: The Saved Filter
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to that saved filter.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Creates a new saved filter
      tags:
      - filter
  /filters/{id}:
    delete:
      description: Removes a saved filter by its ID.
      parameters:
      - description: Filter ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.SavedFilter'
          description: The Saved Filter
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to that saved filter.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The saved filter does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Removes a saved filter
      tags:
      - filter
    get:
      description: Returns a saved filter by its ID.
      parameters:
      - description: Filter ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.SavedFilter'
          description: The Saved Filter
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to that saved filter.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Gets one saved filter
      tags:
      - filter
    post:
      description: Updates a saved filter by its ID.
      parameters:
      - description: Filter ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.SavedFilter'
          description: The Saved Filter
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to that saved filter.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The saved filter does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Updates a saved filter
      tags:
      - filter
  /info:
    get:
      description: "Returns the version, frontendurl, motd and various settings of\
        \ Vikunja"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.vikunjaInfos'
          description: OK
      summary: Info
      tags:
      - service
  /labels:
    get:
      description: Returns all labels which are either created by the user or associated
        with a task the user has at least read-access to.
      parameters:
      - description: "The page number. Used for pagination. If not provided, the first\
          \ page of results is returned."
        in: query
        name: page
        schema:
          type: integer
      - description: The maximum number of items per page. Note this parameter is
          limited by the configured maximum of items per page.
        in: query
        name: per_page
        schema:
          type: integer
      - description: Search labels by label text.
        in: query
        name: s
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.Label'
                type: array
          description: The labels
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get all labels a user has access to
      tags:
      - labels
    put:
      description: Creates a new label.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.Label'
        description: The label object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Label'
          description: The created label object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid label object provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Create a label
      tags:
      - labels
      x-codegen-request-body-name: label
  /labels/{id}:
    delete:
      description: Delete an existing label. The user needs to be the creator of the
        label to be able to do this.
      parameters:
      - description: Label ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Label'
          description: The label was successfully deleted.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Not allowed to delete the label.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Label not found.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Delete a label
      tags:
      - labels
    get:
      description: Returns one label by its ID.
      parameters:
      - description: Label ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Label'
          description: The label
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the label
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Label not found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Gets one label
      tags:
      - labels
    put:
      description: Update an existing label. The user needs to be the creator of the
        label to be able to do this.
      parameters:
      - description: Label ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.Label'
        description: The label object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Label'
          description: The created label object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid label object provided.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Not allowed to update the label.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Label not found.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Update a label
      tags:
      - labels
      x-codegen-request-body-name: label
  /login:
    post:
      description: Logs a user in. Returns a JWT-Token to authenticate further requests.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/user.Login'
        description: The login credentials
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/auth.Token'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Invalid user password model.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Invalid username or password.
        "412":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Invalid totp passcode.
      summary: Login
      tags:
      - auth
      x-codegen-request-body-name: credentials
  /migration/microsoft-todo/auth:
    get:
      description: Returns the auth url where the user needs to get its auth code.
        This code can then be used to migrate everything from Microsoft Todo to Vikunja.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/handler.AuthURL'
          description: The auth url.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: Get the auth url from Microsoft Todo
      tags:
      - migration
  /migration/microsoft-todo/migrate:
    post:
      description: "Migrates all tasklinsts, tasks, notes and reminders from Microsoft\
        \ Todo to Vikunja."
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/microsofttodo.Migration'
        description: The auth token previously obtained from the auth url. See the
          docs for /migration/microsoft-todo/auth.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: A message telling you everything was migrated successfully.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: "Migrate all projects, tasks etc. from Microsoft Todo"
      tags:
      - migration
      x-codegen-request-body-name: migrationCode
  /migration/microsoft-todo/status:
    get:
      description: Returns if the current user already did the migation or not. This
        is useful to show a confirmation message in the frontend if the user is trying
        to do the same migration again.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/migration.Status'
          description: The migration status
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: Get migration status
      tags:
      - migration
  /migration/ticktick/migrate:
    post:
      description: "Imports all projects, tasks, notes, reminders, subtasks and files\
        \ from a TickTick backup export into Vikunja."
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/_migration_ticktick_migrate_post_request'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: A message telling you everything was migrated successfully.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: "Import all projects, tasks etc. from a TickTick backup export"
      tags:
      - migration
  /migration/ticktick/status:
    get:
      description: Returns if the current user already did the migation or not. This
        is useful to show a confirmation message in the frontend if the user is trying
        to do the same migration again.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/migration.Status'
          description: The migration status
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: Get migration status
      tags:
      - migration
  /migration/todoist/auth:
    get:
      description: Returns the auth url where the user needs to get its auth code.
        This code can then be used to migrate everything from todoist to Vikunja.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/handler.AuthURL'
          description: The auth url.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: Get the auth url from todoist
      tags:
      - migration
  /migration/todoist/migrate:
    post:
      description: "Migrates all projects, tasks, notes, reminders, subtasks and files\
        \ from todoist to vikunja."
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/todoist.Migration'
        description: The auth code previously obtained from the auth url. See the
          docs for /migration/todoist/auth.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: A message telling you everything was migrated successfully.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: "Migrate all lists, tasks etc. from todoist"
      tags:
      - migration
      x-codegen-request-body-name: migrationCode
  /migration/todoist/status:
    get:
      description: Returns if the current user already did the migation or not. This
        is useful to show a confirmation message in the frontend if the user is trying
        to do the same migration again.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/migration.Status'
          description: The migration status
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: Get migration status
      tags:
      - migration
  /migration/trello/auth:
    get:
      description: Returns the auth url where the user needs to get its auth code.
        This code can then be used to migrate everything from trello to Vikunja.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/handler.AuthURL'
          description: The auth url.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: Get the auth url from trello
      tags:
      - migration
  /migration/trello/migrate:
    post:
      description: "Migrates all projects, tasks, notes, reminders, subtasks and files\
        \ from trello to vikunja."
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/trello.Migration'
        description: The auth token previously obtained from the auth url. See the
          docs for /migration/trello/auth.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: A message telling you everything was migrated successfully.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: "Migrate all projects, tasks etc. from trello"
      tags:
      - migration
      x-codegen-request-body-name: migrationCode
  /migration/trello/status:
    get:
      description: Returns if the current user already did the migation or not. This
        is useful to show a confirmation message in the frontend if the user is trying
        to do the same migration again.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/migration.Status'
          description: The migration status
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: Get migration status
      tags:
      - migration
  /migration/vikunja-file/migrate:
    post:
      description: "Imports all projects, tasks, notes, reminders, subtasks and files\
        \ from a Vikunjda data export into Vikunja."
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/_migration_vikunja_file_migrate_post_request'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: A message telling you everything was migrated successfully.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: "Import all projects, tasks etc. from a Vikunja data export"
      tags:
      - migration
  /migration/vikunja-file/status:
    get:
      description: Returns if the current user already did the migation or not. This
        is useful to show a confirmation message in the frontend if the user is trying
        to do the same migration again.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/migration.Status'
          description: The migration status
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: Get migration status
      tags:
      - migration
  /notifications:
    get:
      description: Returns an array with all notifications for the current user.
      parameters:
      - description: "The page number. Used for pagination. If not provided, the first\
          \ page of results is returned."
        in: query
        name: page
        schema:
          type: integer
      - description: The maximum number of items per page. Note this parameter is
          limited by the configured maximum of items per page.
        in: query
        name: per_page
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/notifications.DatabaseNotification'
                type: array
          description: The notifications
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Link shares cannot have notifications.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get all notifications for the current user
      tags:
      - subscriptions
    post:
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: All notifications marked as read.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      summary: Mark all notifications of a user as read
      tags:
      - sharing
  /notifications/{id}:
    post:
      description: Marks a notification as either read or unread. A user can only
        mark their own notifications as read.
      parameters:
      - description: Notification ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.DatabaseNotifications'
          description: The notification to mark as read.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Link shares cannot have notifications.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The notification does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Mark a notification as (un-)read
      tags:
      - subscriptions
  /projects:
    get:
      description: Returns all projects a user has access to.
      parameters:
      - description: "The page number. Used for pagination. If not provided, the first\
          \ page of results is returned."
        in: query
        name: page
        schema:
          type: integer
      - description: The maximum number of items per page. Note this parameter is
          limited by the configured maximum of items per page.
        in: query
        name: per_page
        schema:
          type: integer
      - description: Search projects by title.
        in: query
        name: s
        schema:
          type: string
      - description: "If true, also returns all archived projects."
        in: query
        name: is_archived
        schema:
          type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.Project'
                type: array
          description: The projects
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the project
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get all projects a user has access to
      tags:
      - project
    put:
      description: Creates a new project. If a parent project is provided the user
        needs to have write access to that project.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.Project'
        description: The project you want to create.
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Project'
          description: The created project.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid project object provided.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the project
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Creates a new project
      tags:
      - project
      x-codegen-request-body-name: project
  /projects/{id}:
    delete:
      description: Delets a project
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The project was successfully deleted.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid project object provided.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the project
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Deletes a project
      tags:
      - project
    get:
      description: Returns a project by its ID.
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Project'
          description: The project
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the project
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Gets one project
      tags:
      - project
    post:
      description: Updates a project. This does not include adding a task (see below).
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.Project'
        description: The project with updated values you want to update.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Project'
          description: The updated project.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid project object provided.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the project
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Updates a project
      tags:
      - project
      x-codegen-request-body-name: project
  /projects/{id}/background:
    delete:
      description: "Removes a previously set project background, regardless of the\
        \ project provider used to set the background. It does not throw an error\
        \ if the project does not have a background."
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Project'
          description: The project
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: No access to this project.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The project does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Remove a project background
      tags:
      - project
    get:
      description: Get the project background of a specific project. **Returns json
        on error.**
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/octet-stream:
              schema:
                format: binary
                type: string
          description: The project background file.
        "403":
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: No access to this project.
        "404":
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The project does not exist.
        "500":
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get the project background
      tags:
      - project
  /projects/{id}/backgrounds/unsplash:
    post:
      description: Sets a photo from unsplash as project background.
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/background.Image'
        description: The image you want to set as background
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Project'
          description: The background has been successfully set.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid image object provided.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the project
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Set an unsplash photo as project background
      tags:
      - project
      x-codegen-request-body-name: project
  /projects/{id}/backgrounds/upload:
    put:
      description: Upload a project background.
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/_projects__id__backgrounds_upload_put_request'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The background was set successfully.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: File is no image.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: File too large.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The project does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Upload a project background
      tags:
      - project
  /projects/{id}/projectusers:
    get:
      description: Lists all users (without emailadresses). Also possible to search
        for a specific user.
      parameters:
      - description: Search for a user by its name.
        in: query
        name: s
        schema:
          type: string
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/user.User'
                type: array
          description: All (found) users.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Something's invalid.
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have the right to see the project.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Get users
      tags:
      - project
  /projects/{id}/tasks:
    put:
      description: Inserts a task into a project.
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.Task'
        description: The task object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Task'
          description: The created task object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid task object provided.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the project
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Create a task
      tags:
      - task
      x-codegen-request-body-name: task
  /projects/{id}/teams:
    get:
      description: Returns a project with all teams which have access on a given project.
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: "The page number. Used for pagination. If not provided, the first\
          \ page of results is returned."
        in: query
        name: page
        schema:
          type: integer
      - description: The maximum number of items per page. Note this parameter is
          limited by the configured maximum of items per page.
        in: query
        name: per_page
        schema:
          type: integer
      - description: Search teams by its name.
        in: query
        name: s
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.TeamWithRight'
                type: array
          description: The teams with their right.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: No right to see the project.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get teams on a project
      tags:
      - sharing
    put:
      description: Gives a team access to a project.
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.TeamProject'
        description: The team you want to add to the project.
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.TeamProject'
          description: The created team<->project relation.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid team project object provided.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the project
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The team does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Add a team to a project
      tags:
      - sharing
      x-codegen-request-body-name: project
  /projects/{id}/users:
    get:
      description: Returns a project with all users which have access on a given project.
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: "The page number. Used for pagination. If not provided, the first\
          \ page of results is returned."
        in: query
        name: page
        schema:
          type: integer
      - description: The maximum number of items per page. Note this parameter is
          limited by the configured maximum of items per page.
        in: query
        name: per_page
        schema:
          type: integer
      - description: Search users by its name.
        in: query
        name: s
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.UserWithRight'
                type: array
          description: The users with the right they have.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: No right to see the project.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get users on a project
      tags:
      - sharing
    put:
      description: Gives a user access to a project.
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.ProjectUser'
        description: The user you want to add to the project.
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.ProjectUser'
          description: The created user<->project relation.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid user project object provided.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the project
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Add a user to a project
      tags:
      - sharing
      x-codegen-request-body-name: project
  /projects/{id}/views/{view}/buckets:
    get:
      description: "Returns all kanban buckets which belong to that project. Buckets\
        \ are always sorted by their `position` in ascending order. To get all buckets\
        \ with their tasks, use the tasks endpoint with a kanban view."
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: Project view ID
        in: path
        name: view
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.Bucket'
                type: array
          description: The buckets
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: Get all kanban buckets of a project
      tags:
      - project
    put:
      description: Creates a new kanban bucket on a project.
      parameters:
      - description: Project Id
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: Project view ID
        in: path
        name: view
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.Bucket'
        description: The bucket object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Bucket'
          description: The created bucket object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid bucket object provided.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The project does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Create a new bucket
      tags:
      - project
      x-codegen-request-body-name: bucket
  /projects/{id}/views/{view}/tasks:
    get:
      description: Returns all tasks for the current project.
      parameters:
      - description: The project ID.
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: The project view ID.
        in: path
        name: view
        required: true
        schema:
          type: integer
      - description: "The page number. Used for pagination. If not provided, the first\
          \ page of results is returned."
        in: query
        name: page
        schema:
          type: integer
      - description: The maximum number of items per page. Note this parameter is
          limited by the configured maximum of items per page.
        in: query
        name: per_page
        schema:
          type: integer
      - description: Search tasks by task text.
        in: query
        name: s
        schema:
          type: string
      - description: "The sorting parameter. You can pass this multiple times to get\
          \ the tasks ordered by multiple different parametes, along with `order_by`.\
          \ Possible values to sort by are `id`, `title`, `description`, `done`, `done_at`,\
          \ `due_date`, `created_by_id`, `project_id`, `repeat_after`, `priority`,\
          \ `start_date`, `end_date`, `hex_color`, `percent_done`, `uid`, `created`,\
          \ `updated`. Default is `id`."
        in: query
        name: sort_by
        schema:
          type: string
      - description: The ordering parameter. Possible values to order by are `asc`
          or `desc`. Default is `asc`.
        in: query
        name: order_by
        schema:
          type: string
      - description: The filter query to match tasks by. Check out https://vikunja.io/docs/filters
          for a full explanation of the feature.
        in: query
        name: filter
        schema:
          type: string
      - description: 'The time zone which should be used for date match (statements
          like '
        in: query
        name: filter_timezone
        schema:
          type: string
      - description: If set to true the result will include filtered fields whose
          value is set to `null`. Available values are `true` or `false`. Defaults
          to `false`.
        in: query
        name: filter_include_nulls
        schema:
          type: string
      - description: "If set to `subtasks`, Vikunja will fetch only tasks which do\
          \ not have subtasks and then in a second step, will fetch all of these subtasks.\
          \ This may result in more tasks than the pagination limit being returned,\
          \ but all subtasks will be present in the response. You can only set this\
          \ to `subtasks`."
        in: query
        name: expand
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.Task'
                type: array
          description: The tasks
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get tasks in a project
      tags:
      - task
  /projects/{id}/webhooks:
    get:
      description: Get all api webhook targets for the specified project.
      parameters:
      - description: "The page number. Used for pagination. If not provided, the first\
          \ page of results is returned."
        in: query
        name: page
        schema:
          type: integer
      - description: The maximum number of items per bucket per page. This parameter
          is limited by the configured maximum of items per page.
        in: query
        name: per_page
        schema:
          type: integer
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.Webhook'
                type: array
          description: The list of all webhook targets
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: Get all api webhook targets for the specified project
      tags:
      - webhooks
    put:
      description: Create a webhook target which receives POST requests about specified
        events from a project.
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.Webhook'
        description: The webhook target object with required fields
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Webhook'
          description: The created webhook target.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid webhook object provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Create a webhook target
      tags:
      - webhooks
      x-codegen-request-body-name: webhook
  /projects/{id}/webhooks/{webhookID}:
    delete:
      description: Delete any of the project's webhook targets.
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: Webhook ID
        in: path
        name: webhookID
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Successfully deleted.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The webhok target does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Deletes an existing webhook target
      tags:
      - webhooks
    post:
      description: Change a webhook target's events. You cannot change other values
        of a webhook.
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: Webhook ID
        in: path
        name: webhookID
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Webhook'
          description: Updated webhook target
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The webhok target does not exist
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Change a webhook target's events.
      tags:
      - webhooks
  /projects/{projectID}/duplicate:
    put:
      description: "Copies the project, tasks, files, kanban data, assignees, comments,\
        \ attachments, lables, relations, backgrounds, user/team rights and link shares\
        \ from one project to a new one. The user needs read access in the project\
        \ and write access in the parent of the new project."
      parameters:
      - description: The project ID to duplicate
        in: path
        name: projectID
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.ProjectDuplicate'
        description: The target parent project which should hold the copied project.
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.ProjectDuplicate'
          description: The created project.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid project duplicate object provided.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the project or its parent.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Duplicate an existing project
      tags:
      - project
      x-codegen-request-body-name: project
  /projects/{projectID}/teams/{teamID}:
    delete:
      description: Delets a team from a project. The team won't have access to the
        project anymore.
      parameters:
      - description: Project ID
        in: path
        name: projectID
        required: true
        schema:
          type: integer
      - description: Team ID
        in: path
        name: teamID
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The team was successfully deleted.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the project
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Team or project does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Delete a team from a project
      tags:
      - sharing
    post:
      description: Update a team <-> project relation. Mostly used to update the right
        that team has.
      parameters:
      - description: Project ID
        in: path
        name: projectID
        required: true
        schema:
          type: integer
      - description: Team ID
        in: path
        name: teamID
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.TeamProject'
        description: The team you want to update.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.TeamProject'
          description: The updated team <-> project relation.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have admin-access to the project
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Team or project does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Update a team <-> project relation
      tags:
      - sharing
      x-codegen-request-body-name: project
  /projects/{projectID}/users/{userID}:
    delete:
      description: Delets a user from a project. The user won't have access to the
        project anymore.
      parameters:
      - description: Project ID
        in: path
        name: projectID
        required: true
        schema:
          type: integer
      - description: User ID
        in: path
        name: userID
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The user was successfully removed from the project.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the project
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: user or project does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Delete a user from a project
      tags:
      - sharing
    post:
      description: Update a user <-> project relation. Mostly used to update the right
        that user has.
      parameters:
      - description: Project ID
        in: path
        name: projectID
        required: true
        schema:
          type: integer
      - description: User ID
        in: path
        name: userID
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.ProjectUser'
        description: The user you want to update.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.ProjectUser'
          description: The updated user <-> project relation.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have admin-access to the project
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: User or project does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Update a user <-> project relation
      tags:
      - sharing
      x-codegen-request-body-name: project
  /projects/{projectID}/views/{view}/buckets/{bucketID}:
    delete:
      description: Deletes an existing kanban bucket and dissociates all of its task.
        It does not delete any tasks. You cannot delete the last bucket on a project.
      parameters:
      - description: Project Id
        in: path
        name: projectID
        required: true
        schema:
          type: integer
      - description: Bucket Id
        in: path
        name: bucketID
        required: true
        schema:
          type: integer
      - description: Project view ID
        in: path
        name: view
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Successfully deleted.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The bucket does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Deletes an existing bucket
      tags:
      - project
    post:
      description: Updates an existing kanban bucket.
      parameters:
      - description: Project Id
        in: path
        name: projectID
        required: true
        schema:
          type: integer
      - description: Bucket Id
        in: path
        name: bucketID
        required: true
        schema:
          type: integer
      - description: Project view ID
        in: path
        name: view
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.Bucket'
        description: The bucket object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Bucket'
          description: The created bucket object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid bucket object provided.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The bucket does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Update an existing bucket
      tags:
      - project
      x-codegen-request-body-name: bucket
  /projects/{project}/shares:
    get:
      description: Returns all link shares which exist for a given project
      parameters:
      - description: Project ID
        in: path
        name: project
        required: true
        schema:
          type: integer
      - description: "The page number. Used for pagination. If not provided, the first\
          \ page of results is returned."
        in: query
        name: page
        schema:
          type: integer
      - description: The maximum number of items per page. Note this parameter is
          limited by the configured maximum of items per page.
        in: query
        name: per_page
        schema:
          type: integer
      - description: Search shares by hash.
        in: query
        name: s
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.LinkSharing'
                type: array
          description: The share links
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get all link shares for a project
      tags:
      - sharing
    put:
      description: Share a project via link. The user needs to have write-access to
        the project to be able do this.
      parameters:
      - description: Project ID
        in: path
        name: project
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.LinkSharing'
        description: The new link share object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.LinkSharing'
          description: The created link share object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid link share object provided.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Not allowed to add the project share.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The project does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Share a project via link
      tags:
      - sharing
      x-codegen-request-body-name: label
  /projects/{project}/shares/{share}:
    delete:
      description: Remove a link share. The user needs to have write-access to the
        project to be able do this.
      parameters:
      - description: Project ID
        in: path
        name: project
        required: true
        schema:
          type: integer
      - description: Share Link ID
        in: path
        name: share
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The link was successfully removed.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Not allowed to remove the link.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Share Link not found.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Remove a link share
      tags:
      - sharing
    get:
      description: Returns one link share by its ID.
      parameters:
      - description: Project ID
        in: path
        name: project
        required: true
        schema:
          type: integer
      - description: Share ID
        in: path
        name: share
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.LinkSharing'
          description: The share links
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: No access to the project
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Share Link not found.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get one link shares for a project
      tags:
      - sharing
  /projects/{project}/views:
    get:
      description: Returns all project views for a sepcific project
      parameters:
      - description: Project ID
        in: path
        name: project
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.ProjectView'
                type: array
          description: The project views
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get all project views for a project
      tags:
      - project
    put:
      description: Create a project view in a specific project.
      parameters:
      - description: Project ID
        in: path
        name: project
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.ProjectView'
        description: The project view you want to create.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.ProjectView'
          description: The created project view
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to create a project view
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Create a project view
      tags:
      - project
      x-codegen-request-body-name: view
  /projects/{project}/views/{id}:
    delete:
      description: Deletes a project view.
      parameters:
      - description: Project ID
        in: path
        name: project
        required: true
        schema:
          type: integer
      - description: Project View ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The project view was successfully deleted.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the project view
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Delete a project view
      tags:
      - project
    get:
      description: Returns a project view by its ID.
      parameters:
      - description: Project ID
        in: path
        name: project
        required: true
        schema:
          type: integer
      - description: Project View ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.ProjectView'
          description: The project view
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to this project view
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get one project view
      tags:
      - project
    post:
      description: Updates a project view.
      parameters:
      - description: Project ID
        in: path
        name: project
        required: true
        schema:
          type: integer
      - description: Project View ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.ProjectView'
        description: The project view with updated values you want to change.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.ProjectView'
          description: The updated project view.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid project view object provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Updates a project view
      tags:
      - project
      x-codegen-request-body-name: view
  /projects/{project}/views/{view}/buckets/{bucket}/tasks:
    post:
      description: Updates a task in a bucket
      parameters:
      - description: Project ID
        in: path
        name: project
        required: true
        schema:
          type: integer
      - description: Project View ID
        in: path
        name: view
        required: true
        schema:
          type: integer
      - description: Bucket ID
        in: path
        name: bucket
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.TaskBucket'
        description: The id of the task you want to move into the bucket.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.TaskBucket'
          description: The updated task bucket.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid task bucket object provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Update a task bucket
      tags:
      - task
      x-codegen-request-body-name: taskBucket
  /register:
    post:
      description: Creates a new user account.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/user.APIUserPassword'
        description: The user credentials
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/user.User'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: No or invalid user register object provided / User already
            exists.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      summary: Register
      tags:
      - auth
      x-codegen-request-body-name: credentials
  /routes:
    get:
      description: "Returns a list of all API routes which are available to use with\
        \ an api token, not a user login."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.APITokenRoute'
                type: array
          description: The list of all routes.
      security:
      - JWTKeyAuth: []
      summary: Get a list of all token api routes
      tags:
      - api
  /shares/{share}/auth:
    post:
      description: Get a jwt auth token for a shared project from a share hash.
      parameters:
      - description: The share hash
        in: path
        name: share
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.LinkShareAuth'
        description: The password for link shares which require one.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/auth.Token'
          description: The valid jwt auth token.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid link share object provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      summary: Get an auth token for a share
      tags:
      - sharing
      x-codegen-request-body-name: password
  /subscriptions/{entity}/{entityID}:
    delete:
      description: Unsubscribes the current user to an entity.
      parameters:
      - description: The entity the user subscribed to. Can be either `project` or
          `task`.
        in: path
        name: entity
        required: true
        schema:
          type: string
      - description: The numeric id of the subscribed entity to.
        in: path
        name: entityID
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Subscription'
          description: The subscription
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to subscribe to this entity.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The subscription does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Unsubscribe the current user from an entity.
      tags:
      - subscriptions
    put:
      description: Subscribes the current user to an entity.
      parameters:
      - description: The entity the user subscribes to. Can be either `project` or
          `task`.
        in: path
        name: entity
        required: true
        schema:
          type: string
      - description: The numeric id of the entity to subscribe to.
        in: path
        name: entityID
        required: true
        schema:
          type: string
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Subscription'
          description: The subscription
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to subscribe to this entity.
        "412":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The subscription entity is invalid.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Subscribes the current user to an entity.
      tags:
      - subscriptions
  /tasks/all:
    get:
      description: Returns all tasks on any project the user has access to.
      parameters:
      - description: "The page number. Used for pagination. If not provided, the first\
          \ page of results is returned."
        in: query
        name: page
        schema:
          type: integer
      - description: The maximum number of items per page. Note this parameter is
          limited by the configured maximum of items per page.
        in: query
        name: per_page
        schema:
          type: integer
      - description: Search tasks by task text.
        in: query
        name: s
        schema:
          type: string
      - description: "The sorting parameter. You can pass this multiple times to get\
          \ the tasks ordered by multiple different parametes, along with `order_by`.\
          \ Possible values to sort by are `id`, `title`, `description`, `done`, `done_at`,\
          \ `due_date`, `created_by_id`, `project_id`, `repeat_after`, `priority`,\
          \ `start_date`, `end_date`, `hex_color`, `percent_done`, `uid`, `created`,\
          \ `updated`. Default is `id`."
        in: query
        name: sort_by
        schema:
          type: string
      - description: The ordering parameter. Possible values to order by are `asc`
          or `desc`. Default is `asc`.
        in: query
        name: order_by
        schema:
          type: string
      - description: The filter query to match tasks by. Check out https://vikunja.io/docs/filters
          for a full explanation of the feature.
        in: query
        name: filter
        schema:
          type: string
      - description: 'The time zone which should be used for date match (statements
          like '
        in: query
        name: filter_timezone
        schema:
          type: string
      - description: If set to true the result will include filtered fields whose
          value is set to `null`. Available values are `true` or `false`. Defaults
          to `false`.
        in: query
        name: filter_include_nulls
        schema:
          type: string
      - description: "If set to `subtasks`, Vikunja will fetch only tasks which do\
          \ not have subtasks and then in a second step, will fetch all of these subtasks.\
          \ This may result in more tasks than the pagination limit being returned,\
          \ but all subtasks will be present in the response. You can only set this\
          \ to `subtasks`."
        in: query
        name: expand
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.Task'
                type: array
          description: The tasks
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get tasks
      tags:
      - task
  /tasks/bulk:
    post:
      description: "Updates a bunch of tasks at once. This includes marking them as\
        \ done. Note: although you could supply another ID, it will be ignored. Use\
        \ task_ids instead."
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.BulkTask'
        description: "The task object. Looks like a normal task, the only difference\
          \ is it uses an array of project_ids to update."
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Task'
          description: The updated task object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid task object provided.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the task (aka its project)
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Update a bunch of tasks at once
      tags:
      - task
      x-codegen-request-body-name: task
  /tasks/{id}:
    delete:
      description: Deletes a task from a project. This does not mean "mark it done".
      parameters:
      - description: Task ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The created task object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid task ID provided.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the project
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Delete a task
      tags:
      - task
    get:
      description: Returns one task by its ID
      parameters:
      - description: The task ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Task'
          description: The task
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Task not found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get one task
      tags:
      - task
    post:
      description: "Updates a task. This includes marking it as done. Assignees you\
        \ pass will be updated, see their individual endpoints for more details on\
        \ how this is done. To update labels, see the description of the endpoint."
      parameters:
      - description: The Task ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.Task'
        description: The task object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Task'
          description: The updated task object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid task object provided.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the task (aka its project)
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Update a task
      tags:
      - task
      x-codegen-request-body-name: task
  /tasks/{id}/attachments:
    get:
      description: Get all task attachments for one task.
      parameters:
      - description: Task ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: "The page number. Used for pagination. If not provided, the first\
          \ page of results is returned."
        in: query
        name: page
        schema:
          type: integer
      - description: The maximum number of items per page. Note this parameter is
          limited by the configured maximum of items per page.
        in: query
        name: per_page
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.TaskAttachment'
                type: array
          description: All attachments for this task
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: No access to this task.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The task does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get  all attachments for one task.
      tags:
      - task
    put:
      description: Upload a task attachment. You can pass multiple files with the
        files form param.
      parameters:
      - description: Task ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/_tasks__id__attachments_put_request'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Attachments were uploaded successfully.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: No access to the task.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The task does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Upload a task attachment
      tags:
      - task
  /tasks/{id}/attachments/{attachmentID}:
    delete:
      description: Delete an attachment.
      parameters:
      - description: Task ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: Attachment ID
        in: path
        name: attachmentID
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The attachment was deleted successfully.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: No access to this task.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The task does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Delete an attachment
      tags:
      - task
    get:
      description: Get one attachment for download. **Returns json on error.**
      parameters:
      - description: Task ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: Attachment ID
        in: path
        name: attachmentID
        required: true
        schema:
          type: integer
      - description: "The size of the preview image. Can be sm = 100px, md = 200px,\
          \ lg = 400px or xl = 800px. If provided, a preview image will be returned\
          \ if the attachment is an image."
        in: query
        name: preview_size
        schema:
          type: string
      responses:
        "200":
          content:
            application/octet-stream:
              schema:
                format: binary
                type: string
          description: The attachment file.
        "403":
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: No access to this task.
        "404":
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The task does not exist.
        "500":
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get one attachment.
      tags:
      - task
  /tasks/{id}/position:
    post:
      description: Updates a task position.
      parameters:
      - description: Task ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.TaskPosition'
        description: The task position with updated values you want to change.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.TaskPosition'
          description: The updated task position.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid task position object provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Updates a task position
      tags:
      - task
      x-codegen-request-body-name: view
  /tasks/{taskID}/assignees:
    get:
      description: Returns an array with all assignees for this task.
      parameters:
      - description: "The page number. Used for pagination. If not provided, the first\
          \ page of results is returned."
        in: query
        name: page
        schema:
          type: integer
      - description: The maximum number of items per page. Note this parameter is
          limited by the configured maximum of items per page.
        in: query
        name: per_page
        schema:
          type: integer
      - description: Search assignees by their username.
        in: query
        name: s
        schema:
          type: string
      - description: Task ID
        in: path
        name: taskID
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/user.User'
                type: array
          description: The assignees
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get all assignees for a task
      tags:
      - assignees
    put:
      description: "Adds a new assignee to a task. The assignee needs to have access\
        \ to the project, the doer must be able to edit this task."
      parameters:
      - description: Task ID
        in: path
        name: taskID
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.TaskAssginee'
        description: The assingee object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.TaskAssginee'
          description: The created assingee object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid assignee object provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Add a new assignee to a task
      tags:
      - assignees
      x-codegen-request-body-name: assignee
  /tasks/{taskID}/assignees/bulk:
    post:
      description: "Adds multiple new assignees to a task. The assignee needs to have\
        \ access to the project, the doer must be able to edit this task. Every user\
        \ not in the project will be unassigned from the task, pass an empty array\
        \ to unassign everyone."
      parameters:
      - description: Task ID
        in: path
        name: taskID
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.BulkAssignees'
        description: The array of assignees
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.TaskAssginee'
          description: The created assingees object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid assignee object provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Add multiple new assignees to a task
      tags:
      - assignees
      x-codegen-request-body-name: assignee
  /tasks/{taskID}/assignees/{userID}:
    delete:
      description: Un-assign a user from a task.
      parameters:
      - description: Task ID
        in: path
        name: taskID
        required: true
        schema:
          type: integer
      - description: Assignee user ID
        in: path
        name: userID
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The assignee was successfully deleted.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Not allowed to delete the assignee.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Delete an assignee
      tags:
      - assignees
  /tasks/{taskID}/comments:
    get:
      description: Get all task comments. The user doing this need to have at least
        read access to the task.
      parameters:
      - description: Task ID
        in: path
        name: taskID
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.TaskComment'
                type: array
          description: The array with all task comments
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get all task comments
      tags:
      - task
    put:
      description: Create a new task comment. The user doing this need to have at
        least write access to the task this comment should belong to.
      parameters:
      - description: Task ID
        in: path
        name: taskID
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.TaskComment'
        description: The task comment object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.TaskComment'
          description: The created task comment object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid task comment object provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Create a new task comment
      tags:
      - task
      x-codegen-request-body-name: relation
  /tasks/{taskID}/comments/{commentID}:
    delete:
      description: Remove a task comment. The user doing this need to have at least
        write access to the task this comment belongs to.
      parameters:
      - description: Task ID
        in: path
        name: taskID
        required: true
        schema:
          type: integer
      - description: Comment ID
        in: path
        name: commentID
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The task comment was successfully deleted.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid task comment object provided.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The task comment was not found.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Remove a task comment
      tags:
      - task
    get:
      description: Remove a task comment. The user doing this need to have at least
        read access to the task this comment belongs to.
      parameters:
      - description: Task ID
        in: path
        name: taskID
        required: true
        schema:
          type: integer
      - description: Comment ID
        in: path
        name: commentID
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.TaskComment'
          description: The task comment object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid task comment object provided.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The task comment was not found.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Remove a task comment
      tags:
      - task
    post:
      description: Update an existing task comment. The user doing this need to have
        at least write access to the task this comment belongs to.
      parameters:
      - description: Task ID
        in: path
        name: taskID
        required: true
        schema:
          type: integer
      - description: Comment ID
        in: path
        name: commentID
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.TaskComment'
          description: The updated task comment object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid task comment object provided.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The task comment was not found.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Update an existing task comment
      tags:
      - task
  /tasks/{taskID}/labels/bulk:
    post:
      description: Updates all labels on a task. Every label which is not passed but
        exists on the task will be deleted. Every label which does not exist on the
        task will be added. All labels which are passed and already exist on the task
        won't be touched.
      parameters:
      - description: Task ID
        in: path
        name: taskID
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.LabelTaskBulk'
        description: The array of labels
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.LabelTaskBulk'
          description: The updated labels object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid label object provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Update all labels on a task.
      tags:
      - labels
      x-codegen-request-body-name: label
  /tasks/{taskID}/relations:
    put:
      description: Creates a new relation between two tasks. The user needs to have
        update rights on the base task and at least read rights on the other task.
        Both tasks do not need to be on the same project. Take a look at the docs
        for available task relation kinds.
      parameters:
      - description: Task ID
        in: path
        name: taskID
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.TaskRelation'
        description: The relation object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.TaskRelation'
          description: The created task relation object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid task relation object provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Create a new relation between two tasks
      tags:
      - task
      x-codegen-request-body-name: relation
  /tasks/{taskID}/relations/{relationKind}/{otherTaskID}:
    delete:
      parameters:
      - description: Task ID
        in: path
        name: taskID
        required: true
        schema:
          type: integer
      - description: The kind of the relation. See the TaskRelation type for more
          info.
        in: path
        name: relationKind
        required: true
        schema:
          type: string
      - description: The id of the other task.
        in: path
        name: otherTaskID
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.TaskRelation'
        description: The relation object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The task relation was successfully deleted.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid task relation object provided.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The task relation was not found.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Remove a task relation
      tags:
      - task
      x-codegen-request-body-name: relation
  /tasks/{task}/labels:
    get:
      description: Returns all labels which are assicociated with a given task.
      parameters:
      - description: Task ID
        in: path
        name: task
        required: true
        schema:
          type: integer
      - description: "The page number. Used for pagination. If not provided, the first\
          \ page of results is returned."
        in: query
        name: page
        schema:
          type: integer
      - description: The maximum number of items per page. Note this parameter is
          limited by the configured maximum of items per page.
        in: query
        name: per_page
        schema:
          type: integer
      - description: Search labels by label text.
        in: query
        name: s
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.Label'
                type: array
          description: The labels
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get all labels on a task
      tags:
      - labels
    put:
      description: Add a label to a task. The user needs to have write-access to the
        project to be able do this.
      parameters:
      - description: Task ID
        in: path
        name: task
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.LabelTask'
        description: The label object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.LabelTask'
          description: The created label relation object.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid label object provided.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Not allowed to add the label.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The label does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Add a label to a task
      tags:
      - labels
      x-codegen-request-body-name: label
  /tasks/{task}/labels/{label}:
    delete:
      description: Remove a label from a task. The user needs to have write-access
        to the project to be able do this.
      parameters:
      - description: Task ID
        in: path
        name: task
        required: true
        schema:
          type: integer
      - description: Label ID
        in: path
        name: label
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The label was successfully removed.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Not allowed to remove the label.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Label not found.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Remove a label from a task
      tags:
      - labels
  /teams:
    get:
      description: Returns all teams the current user is part of.
      parameters:
      - description: "The page number. Used for pagination. If not provided, the first\
          \ page of results is returned."
        in: query
        name: page
        schema:
          type: integer
      - description: The maximum number of items per page. Note this parameter is
          limited by the configured maximum of items per page.
        in: query
        name: per_page
        schema:
          type: integer
      - description: Search teams by its name.
        in: query
        name: s
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.Team'
                type: array
          description: The teams.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get teams
      tags:
      - team
    put:
      description: Creates a new team.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.Team'
        description: The team you want to create.
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Team'
          description: The created team.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid team object provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Creates a new team
      tags:
      - team
      x-codegen-request-body-name: team
  /teams/{id}:
    delete:
      description: Delets a team. This will also remove the access for all users in
        that team.
      parameters:
      - description: Team ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The team was successfully deleted.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid team object provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Deletes a team
      tags:
      - team
    get:
      description: Returns a team by its ID.
      parameters:
      - description: Team ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Team'
          description: The team
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the team
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Gets one team
      tags:
      - team
    post:
      description: Updates a team.
      parameters:
      - description: Team ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.Team'
        description: The team with updated values you want to update.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Team'
          description: The updated team.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid team object provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Updates a team
      tags:
      - team
      x-codegen-request-body-name: team
  /teams/{id}/members:
    put:
      description: Add a user to a team.
      parameters:
      - description: Team ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.TeamMember'
        description: The user to be added to a team.
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.TeamMember'
          description: The newly created member object
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid member object provided.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the team
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Add a user to a team
      tags:
      - team
      x-codegen-request-body-name: team
  /teams/{id}/members/{userID}:
    delete:
      description: Remove a user from a team. This will also revoke any access this
        user might have via that team. A user can remove themselves from the team
        if they are not the last user in the team.
      parameters:
      - description: Team ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: User ID
        in: path
        name: userID
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The user was successfully removed from the team.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Remove a user from a team
      tags:
      - team
  /teams/{id}/members/{userID}/admin:
    post:
      description: "If a user is team admin, this will make them member and vise-versa."
      parameters:
      - description: Team ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: User ID
        in: path
        name: userID
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The member right was successfully changed.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Toggle a team member's admin status
      tags:
      - team
  /test/{table}:
    patch:
      description: "Fills the specified table with the content provided in the payload.\
        \ You need to enable the testing endpoint before doing this and provide the\
        \ `Authorization: <token>` secret when making requests to this endpoint. See\
        \ docs for more details."
      parameters:
      - description: The table to reset
        in: path
        name: table
        required: true
        schema:
          type: string
      responses:
        "201":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/user.User'
                type: array
          description: Everything has been imported successfully.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      summary: Reset the db to a defined state
      tags:
      - testing
  /tokens:
    get:
      description: Returns all api tokens the current user has created.
      parameters:
      - description: "The page number, used for pagination. If not provided, the first\
          \ page of results is returned."
        in: query
        name: page
        schema:
          type: integer
      - description: The maximum number of tokens per page. This parameter is limited
          by the configured maximum of items per page.
        in: query
        name: per_page
        schema:
          type: integer
      - description: Search tokens by their title.
        in: query
        name: s
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.APIToken'
                type: array
          description: The list of all tokens
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: Get all api tokens of the current user
      tags:
      - api
    put:
      description: Create a new api token to use on behalf of the user creating it.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.APIToken'
        description: The token object with required fields
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.APIToken'
          description: The created token.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Invalid token object provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Create a new api token
      tags:
      - api
      x-codegen-request-body-name: token
  /tokens/{tokenID}:
    delete:
      description: Delete any of the user's api tokens.
      parameters:
      - description: Token ID
        in: path
        name: tokenID
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Successfully deleted.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The token does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Deletes an existing api token
      tags:
      - api
  /user:
    get:
      description: Returns the current user object with their settings.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.UserWithSettings'
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: User does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Get user information
      tags:
      - user
  /user/confirm:
    post:
      description: Confirms the email of a newly registered user.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/user.EmailConfirm'
        description: The token.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: OK
        "412":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Bad token provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      summary: Confirm the email of a new user
      tags:
      - user
      x-codegen-request-body-name: credentials
  /user/deletion/cancel:
    post:
      description: Aborts an in-progress user deletion.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.UserPasswordConfirmation'
        description: The user password to confirm.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: OK
        "412":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Bad password provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      summary: Abort a user deletion request
      tags:
      - user
      x-codegen-request-body-name: credentials
  /user/deletion/confirm:
    post:
      description: Confirms the deletion request of a user sent via email.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.UserDeletionRequestConfirm'
        description: The token.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: OK
        "412":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Bad token provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      summary: Confirm a user deletion request
      tags:
      - user
      x-codegen-request-body-name: credentials
  /user/deletion/request:
    post:
      description: Requests the deletion of the current user. It will trigger an email
        which has to be confirmed to start the deletion.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.UserPasswordConfirmation'
        description: The user password.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: OK
        "412":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Bad password provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      summary: Request the deletion of the user
      tags:
      - user
      x-codegen-request-body-name: credentials
  /user/export/download:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.UserPasswordConfirmation'
        description: User password to confirm the download.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Something's invalid.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Download a user data export.
      tags:
      - user
      x-codegen-request-body-name: password
  /user/export/request:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.UserPasswordConfirmation'
        description: User password to confirm the data export request.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Something's invalid.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Request a user data export.
      tags:
      - user
      x-codegen-request-body-name: password
  /user/password:
    post:
      description: Lets the current user change its password.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.UserPassword'
        description: The current and new password.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Something's invalid.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: User does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Change password
      tags:
      - user
      x-codegen-request-body-name: userPassword
  /user/password/reset:
    post:
      description: Resets a user email with a previously reset token.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/user.PasswordReset'
        description: The token with the new password.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Bad token provided.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      summary: Resets a password
      tags:
      - user
      x-codegen-request-body-name: credentials
  /user/password/token:
    post:
      description: Requests a token to reset a users password. The token is sent via
        email.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/user.PasswordTokenRequest'
        description: The username of the user to request a token for.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: OK
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      summary: Request password reset token
      tags:
      - user
      x-codegen-request-body-name: credentials
  /user/settings/avatar:
    get:
      description: Returns the current user's avatar setting.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.UserAvatarProvider'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Something's invalid.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Return user avatar setting
      tags:
      - user
    post:
      description: "Changes the user avatar. Valid types are gravatar (uses the user\
        \ email), upload, initials, default."
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.UserAvatarProvider'
        description: The user's avatar setting
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Something's invalid.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Set the user's avatar
      tags:
      - user
      x-codegen-request-body-name: avatar
  /user/settings/avatar/upload:
    put:
      description: Upload a user avatar. This will also set the user's avatar provider
        to "upload"
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/_user_settings_avatar_upload_put_request'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The avatar was set successfully.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: File is no image.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: File too large.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Upload a user avatar
      tags:
      - user
  /user/settings/email:
    post:
      description: Lets the current user change their email address.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/user.EmailUpdate'
        description: The new email address and current password.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Something's invalid.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: User does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Update email address
      tags:
      - user
      x-codegen-request-body-name: userEmailUpdate
  /user/settings/general:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.UserSettings'
        description: The updated user settings
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Something's invalid.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Change general user settings of the current user.
      tags:
      - user
      x-codegen-request-body-name: avatar
  /user/settings/token/caldav:
    get:
      description: Return the IDs and created dates of all caldav tokens for the current
        user.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/user.Token'
                type: array
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Something's invalid.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: User does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Returns the caldav tokens for the current user
      tags:
      - user
    put:
      description: Generates a caldav token which can be used for the caldav api.
        It is not possible to see the token again after it was generated.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/user.Token'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Something's invalid.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: User does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Generate a caldav token
      tags:
      - user
  /user/settings/token/caldav/{id}:
    get:
      parameters:
      - description: Token ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Something's invalid.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: User does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Delete a caldav token by id
      tags:
      - user
  /user/settings/totp:
    get:
      description: Returns the current user totp setting or an error if it is not
        enabled.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/user.TOTP'
          description: The totp settings.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Totp setting for the current user
      tags:
      - user
  /user/settings/totp/disable:
    post:
      description: Disables any totp settings for the current user.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/user.Login'
        description: The current user's password (only password is enough).
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Successfully disabled
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Something's invalid.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: User does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Disable totp settings
      tags:
      - user
      x-codegen-request-body-name: totp
  /user/settings/totp/enable:
    post:
      description: Enables a previously enrolled totp setting by providing a totp
        passcode.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/user.TOTPPasscode'
        description: The totp passcode.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Successfully enabled
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Something's invalid.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: User does not exist.
        "412":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: TOTP is not enrolled.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Enable a previously enrolled totp setting.
      tags:
      - user
      x-codegen-request-body-name: totp
  /user/settings/totp/enroll:
    post:
      description: "Creates an initial setup for the user in the db. After this step,\
        \ the user needs to verify they have a working totp setup with the \"enable\
        \ totp\" endpoint."
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/user.TOTP'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Something's invalid.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: User does not exist.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Enroll a user into totp
      tags:
      - user
  /user/settings/totp/qrcode:
    get:
      description: Returns a qr code for easier setup at end user's devices.
      responses:
        "200":
          content:
            application/json:
              schema:
                format: binary
                type: string
          description: The qr code as jpeg image
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Totp QR Code
      tags:
      - user
  /user/timezones:
    get:
      description: "Because available time zones depend on the system Vikunja is running\
        \ on, this endpoint returns a project of all valid time zones this particular\
        \ Vikunja instance can handle. The project of time zones is not sorted, you\
        \ should sort it on the client."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: All available time zones.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Get all available time zones on this vikunja instance
      tags:
      - user
  /user/token:
    post:
      description: Returns a new valid jwt user token with an extended length.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/auth.Token'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Only user token are available for renew.
      summary: Renew user token
      tags:
      - user
  /users:
    get:
      description: "Search for a user by its username, name or full email. Name (not\
        \ username) or email require that the user has enabled this in their settings."
      parameters:
      - description: The search criteria.
        in: query
        name: s
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/user.User'
                type: array
          description: All (found) users.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: Something's invalid.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error.
      security:
      - JWTKeyAuth: []
      summary: Get users
      tags:
      - user
  /webhooks/events:
    get:
      description: Get all possible webhook events to use when creating or updating
        a webhook target.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: The list of all possible webhook events
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal server error
      security:
      - JWTKeyAuth: []
      summary: Get all possible webhook events
      tags:
      - webhooks
  /{kind}/{id}/reactions:
    get:
      description: Returns all reactions for an entity
      parameters:
      - description: Entity ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: The kind of the entity. Can be either `tasks` or `comments` for
          task comments
        in: path
        name: kind
        required: true
        schema:
          type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/models.ReactionMap'
                type: array
          description: The reactions
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the entity
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Get all reactions for an entity
      tags:
      - task
    put:
      description: Add a reaction to an entity. Will do nothing if the reaction already
        exists.
      parameters:
      - description: Entity ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: The kind of the entity. Can be either `tasks` or `comments` for
          task comments
        in: path
        name: kind
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.Reaction'
        description: The reaction you want to add to the entity.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Reaction'
          description: The created reaction
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the entity
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Add a reaction to an entity
      tags:
      - task
      x-codegen-request-body-name: project
  /{kind}/{id}/reactions/delete:
    post:
      description: Removes the reaction of that user on that entity.
      parameters:
      - description: Entity ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: The kind of the entity. Can be either `tasks` or `comments` for
          task comments
        in: path
        name: kind
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.Reaction'
        description: The reaction you want to add to the entity.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The reaction was successfully removed.
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web.HTTPError'
          description: The user does not have access to the entity
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      security:
      - JWTKeyAuth: []
      summary: Removes the user's reaction
      tags:
      - task
      x-codegen-request-body-name: project
  /{username}/avatar:
    get:
      description: Returns the user avatar as image.
      parameters:
      - description: The username of the user who's avatar you want to get
        in: path
        name: username
        required: true
        schema:
          type: string
      - description: The size of the avatar you want to get. If bigger than the max
          configured size this will be adjusted to the maximum size.
        in: query
        name: size
        schema:
          type: integer
      responses:
        "200":
          content:
            application/octet-stream:
              schema:
                format: binary
                type: string
          description: The avatar
        "404":
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: The user does not exist.
        "500":
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/models.Message'
          description: Internal error
      summary: User Avatar
      tags:
      - user
components:
  schemas:
    auth.Token:
      example:
        token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
      properties:
        token:
          example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
          type: string
      type: object
    background.Image:
      example:
        thumb: thumb
        blur_hash: blur_hash
        id: id
        url: url
        info: "{}"
      properties:
        blur_hash:
          type: string
        id:
          type: string
        info:
          description: This can be used to supply extra information from an image
            provider to clients
          type: object
        thumb:
          type: string
        url:
          type: string
      type: object
    files.File:
      example:
        size: 6
        created: created
        mime: mime
        name: name
        id: 0
      properties:
        created:
          type: string
        id:
          type: integer
        mime:
          type: string
        name:
          type: string
        size:
          type: integer
      type: object
    handler.AuthURL:
      example:
        url: url
      properties:
        url:
          type: string
      type: object
    microsofttodo.Migration:
      properties:
        code:
          type: string
      type: object
    migration.Status:
      example:
        migrator_name: migrator_name
        finished_at: finished_at
        started_at: started_at
        id: 0
      properties:
        finished_at:
          type: string
        id:
          type: integer
        migrator_name:
          type: string
        started_at:
          type: string
      type: object
    models.APIPermissions:
      additionalProperties:
        items:
          type: string
        type: array
      type: object
    models.APIToken:
      example:
        expires_at: expires_at
        created: created
        permissions: "{}"
        id: 0
        title: title
        token: token
      properties:
        created:
          description: A timestamp when this api key was created. You cannot change
            this value.
          type: string
        expires_at:
          description: The date when this key expires.
          type: string
        id:
          description: "The unique, numeric id of this api key."
          type: integer
        permissions:
          allOf:
          - $ref: '#/components/schemas/models.APIPermissions'
          description: "The permissions this token has. Possible values are available\
            \ via the /routes endpoint and consist of the keys of the list from that\
            \ endpoint. For example, if the token should be able to read all tasks\
            \ as well as update existing tasks, you should add `{\"tasks\":[\"read_all\"\
            ,\"update\"]}`."
          type: object
        title:
          description: A human-readable name for this token
          type: string
        token:
          description: The actual api key. Only visible after creation.
          type: string
      type: object
    models.APITokenRoute:
      additionalProperties:
        $ref: '#/components/schemas/models.RouteDetail'
      type: object
    models.Bucket:
      example:
        created: created
        count: 0
        limit: 0
        project_view_id: 5
        id: 6
        position: 5.962133916683182
        title: title
        created_by: "{}"
        updated: updated
        tasks:
        - end_date: end_date
          reminders:
          - relative_to: "{}"
            reminder: reminder
            relative_period: 1
          - relative_to: "{}"
            reminder: reminder
            relative_period: 1
          percent_done: 3.616076749251911
          attachments:
          - file:
              size: 6
              created: created
              mime: mime
              name: name
              id: 0
            created: created
            task_id: 5
            id: 1
            created_by:
              created: created
              name: name
              id: 0
              updated: updated
              email: email
              username: username
          - file:
              size: 6
              created: created
              mime: mime
              name: name
              id: 0
            created: created
            task_id: 5
            id: 1
            created_by:
              created: created
              name: name
              id: 0
              updated: updated
              email: email
              username: username
          is_favorite: true
          done_at: done_at
          repeat_after: 1
          assignees:
          - created: created
            name: name
            id: 0
            updated: updated
            email: email
            username: username
          - created: created
            name: name
            id: 0
            updated: updated
            email: email
            username: username
          description: description
          related_tasks: "{}"
          cover_image_attachment_id: 2
          subscription: "{}"
          title: title
          bucket_id: 5
          project_id: 7
          id: 7
          start_date: start_date
          identifier: identifier
          created: created
          due_date: due_date
          index: 9
          hex_color: hex_color
          priority: 4
          created_by: "{}"
          done: true
          labels:
          - created: created
            description: description
            id: 0
            hex_color: hex_color
            title: title
            created_by: "{}"
            updated: updated
          - created: created
            description: description
            id: 0
            hex_color: hex_color
            title: title
            created_by: "{}"
            updated: updated
          repeat_mode: "{}"
          reactions: "{}"
          position: 2.027123023002322
          updated: updated
        - end_date: end_date
          reminders:
          - relative_to: "{}"
            reminder: reminder
            relative_period: 1
          - relative_to: "{}"
            reminder: reminder
            relative_period: 1
          percent_done: 3.616076749251911
          attachments:
          - file:
              size: 6
              created: created
              mime: mime
              name: name
              id: 0
            created: created
            task_id: 5
            id: 1
            created_by:
              created: created
              name: name
              id: 0
              updated: updated
              email: email
              username: username
          - file:
              size: 6
              created: created
              mime: mime
              name: name
              id: 0
            created: created
            task_id: 5
            id: 1
            created_by:
              created: created
              name: name
              id: 0
              updated: updated
              email: email
              username: username
          is_favorite: true
          done_at: done_at
          repeat_after: 1
          assignees:
          - created: created
            name: name
            id: 0
            updated: updated
            email: email
            username: username
          - created: created
            name: name
            id: 0
            updated: updated
            email: email
            username: username
          description: description
          related_tasks: "{}"
          cover_image_attachment_id: 2
          subscription: "{}"
          title: title
          bucket_id: 5
          project_id: 7
          id: 7
          start_date: start_date
          identifier: identifier
          created: created
          due_date: due_date
          index: 9
          hex_color: hex_color
          priority: 4
          created_by: "{}"
          done: true
          labels:
          - created: created
            description: description
            id: 0
            hex_color: hex_color
            title: title
            created_by: "{}"
            updated: updated
          - created: created
            description: description
            id: 0
            hex_color: hex_color
            title: title
            created_by: "{}"
            updated: updated
          repeat_mode: "{}"
          reactions: "{}"
          position: 2.027123023002322
          updated: updated
      properties:
        count:
          description: The number of tasks currently in this bucket
          type: integer
        created:
          description: A timestamp when this bucket was created. You cannot change
            this value.
          type: string
        created_by:
          allOf:
          - $ref: '#/components/schemas/user.User'
          description: The user who initially created the bucket.
          type: object
        id:
          description: "The unique, numeric id of this bucket."
          type: integer
        limit:
          description: How many tasks can be at the same time on this board max
          minimum: 0
          type: integer
        position:
          description: The position this bucket has when querying all buckets. See
            the tasks.position property on how to use this.
          type: number
        project_view_id:
          description: The project view this bucket belongs to.
          type: integer
        tasks:
          description: All tasks which belong to this bucket.
          items:
            $ref: '#/components/schemas/models.Task'
          type: array
        title:
          description: The title of this bucket.
          minLength: 1
          type: string
        updated:
          description: A timestamp when this bucket was last updated. You cannot change
            this value.
          type: string
      type: object
    models.BucketConfigurationModeKind:
      enum:
      - 0
      - 1
      - 2
      type: integer
      x-enum-varnames:
      - BucketConfigurationModeNone
      - BucketConfigurationModeManual
      - BucketConfigurationModeFilter
    models.BulkAssignees:
      properties:
        assignees:
          description: A project with all assignees
          items:
            $ref: '#/components/schemas/user.User'
          type: array
      type: object
    models.BulkTask:
      properties:
        assignees:
          description: An array of users who are assigned to this task
          items:
            $ref: '#/components/schemas/user.User'
          type: array
        attachments:
          description: "All attachments this task has. This property is read-onlym,\
            \ you must use the separate endpoint to add attachments to a task."
          items:
            $ref: '#/components/schemas/models.TaskAttachment'
          type: array
        bucket_id:
          description: |-
            The bucket id. Will only be populated when the task is accessed via a view with buckets.
            Can be used to move a task between buckets. In that case, the new bucket must be in the same view as the old one.
          type: integer
        cover_image_attachment_id:
          description: "If this task has a cover image, the field will return the\
            \ id of the attachment that is the cover image."
          type: integer
        created:
          description: A timestamp when this task was created. You cannot change this
            value.
          type: string
        created_by:
          allOf:
          - $ref: '#/components/schemas/user.User'
          description: The user who initially created the task.
          type: object
        description:
          description: The task description.
          type: string
        done:
          description: Whether a task is done or not.
          type: boolean
        done_at:
          description: The time when a task was marked as done.
          type: string
        due_date:
          description: The time when the task is due.
          type: string
        end_date:
          description: When this task ends.
          type: string
        hex_color:
          description: The task color in hex
          maxLength: 7
          type: string
        id:
          description: "The unique, numeric id of this task."
          type: integer
        identifier:
          description: "The task identifier, based on the project identifier and the\
            \ task's index"
          type: string
        index:
          description: "The task index, calculated per project"
          type: integer
        is_favorite:
          description: True if a task is a favorite task. Favorite tasks show up in
            a separate "Important" project. This value depends on the user making
            the call to the api.
          type: boolean
        labels:
          description: "An array of labels which are associated with this task. This\
            \ property is read-only, you must use the separate endpoint to add labels\
            \ to a task."
          items:
            $ref: '#/components/schemas/models.Label'
          type: array
        percent_done:
          description: Determines how far a task is left from being done
          type: number
        position:
          description: |-
            The position of the task - any task project can be sorted as usual by this parameter.
            When accessing tasks via views with buckets, this is primarily used to sort them based on a range.
            Positions are always saved per view. They will automatically be set if you request the tasks through a view
            endpoint, otherwise they will always be 0. To update them, take a look at the Task Position endpoint.
          type: number
        priority:
          description: "The task priority. Can be anything you want, it is possible\
            \ to sort by this later."
          type: integer
        project_id:
          description: The project this task belongs to.
          type: integer
        reactions:
          allOf:
          - $ref: '#/components/schemas/models.ReactionMap'
          description: Reactions on that task.
          type: object
        related_tasks:
          allOf:
          - $ref: '#/components/schemas/models.RelatedTaskMap'
          description: "All related tasks, grouped by their relation kind"
          type: object
        reminders:
          description: An array of reminders that are associated with this task.
          items:
            $ref: '#/components/schemas/models.TaskReminder'
          type: array
        repeat_after:
          description: "An amount in seconds this task repeats itself. If this is\
            \ set, when marking the task as done, it will mark itself as \"undone\"\
            \ and then increase all remindes and the due date by its amount."
          type: integer
        repeat_mode:
          allOf:
          - $ref: '#/components/schemas/models.TaskRepeatMode'
          description: "Can have three possible values which will trigger when the\
            \ task is marked as done: 0 = repeats after the amount specified in repeat_after,\
            \ 1 = repeats all dates each months (ignoring repeat_after), 3 = repeats\
            \ from the current date rather than the last set date."
          type: object
        start_date:
          description: When this task starts.
          type: string
        subscription:
          allOf:
          - $ref: '#/components/schemas/models.Subscription'
          description: |-
            The subscription status for the user reading this task. You can only read this property, use the subscription endpoints to modify it.
            Will only returned when retrieving one task.
          type: object
        task_ids:
          description: A project of task ids to update
          items:
            type: integer
          type: array
        title:
          description: The task text. This is what you'll see in the project.
          minLength: 1
          type: string
        updated:
          description: A timestamp when this task was last updated. You cannot change
            this value.
          type: string
      type: object
    models.DatabaseNotifications:
      example:
        notification: "{}"
        read: true
        created: created
        name: name
        read_at: read_at
        id: 0
      properties:
        created:
          description: A timestamp when this notification was created. You cannot
            change this value.
          type: string
        id:
          description: "The unique, numeric id of this notification."
          type: integer
        name:
          description: The name of the notification
          type: string
        notification:
          description: The actual content of the notification.
          type: object
        read:
          description: |-
            Whether or not to mark this notification as read or unread.
            True is read, false is unread.
          type: boolean
        read_at:
          description: "When this notification is marked as read, this will be updated\
            \ with the current timestamp."
          type: string
      type: object
    models.Label:
      example:
        created: created
        description: description
        id: 0
        hex_color: hex_color
        title: title
        created_by: "{}"
        updated: updated
      properties:
        created:
          description: A timestamp when this label was created. You cannot change
            this value.
          type: string
        created_by:
          allOf:
          - $ref: '#/components/schemas/user.User'
          description: The user who created this label
          type: object
        description:
          description: The label description.
          type: string
        hex_color:
          description: The color this label has in hex format.
          maxLength: 7
          type: string
        id:
          description: "The unique, numeric id of this label."
          type: integer
        title:
          description: The title of the lable. You'll see this one on tasks associated
            with it.
          maxLength: 250
          minLength: 1
          type: string
        updated:
          description: A timestamp when this label was last updated. You cannot change
            this value.
          type: string
      type: object
    models.LabelTask:
      example:
        created: created
        label_id: 0
      properties:
        created:
          description: A timestamp when this task was created. You cannot change this
            value.
          type: string
        label_id:
          description: The label id you want to associate with a task.
          type: integer
      type: object
    models.LabelTaskBulk:
      example:
        labels:
        - created: created
          description: description
          id: 0
          hex_color: hex_color
          title: title
          created_by: "{}"
          updated: updated
        - created: created
          description: description
          id: 0
          hex_color: hex_color
          title: title
          created_by: "{}"
          updated: updated
      properties:
        labels:
          description: All labels you want to update at once.
          items:
            $ref: '#/components/schemas/models.Label'
          type: array
      type: object
    models.LinkSharing:
      example:
        password: password
        created: created
        name: name
        shared_by: "{}"
        id: 0
        right: "{}"
        sharing_type: "{}"
        updated: updated
        hash: hash
      properties:
        created:
          description: A timestamp when this project was shared. You cannot change
            this value.
          type: string
        hash:
          description: The public id to get this shared project
          type: string
        id:
          description: The ID of the shared thing
          type: integer
        name:
          description: The name of this link share. All actions someone takes while
            being authenticated with that link will appear with that name.
          type: string
        password:
          description: "The password of this link share. You can only set it, not\
            \ retrieve it after the link share has been created."
          type: string
        right:
          allOf:
          - $ref: '#/components/schemas/models.Right'
          description: "The right this project is shared with. 0 = Read only, 1 =\
            \ Read & Write, 2 = Admin. See the docs for more details."
          type: object
        shared_by:
          allOf:
          - $ref: '#/components/schemas/user.User'
          description: The user who shared this project
          type: object
        sharing_type:
          allOf:
          - $ref: '#/components/schemas/models.SharingType'
          description: "The kind of this link. 0 = undefined, 1 = without password,\
            \ 2 = with password."
          type: object
        updated:
          description: A timestamp when this share was last updated. You cannot change
            this value.
          type: string
      type: object
    models.Message:
      example:
        message: message
      properties:
        message:
          description: A standard message.
          type: string
      type: object
    models.Project:
      example:
        owner: "{}"
        identifier: identifier
        is_favorite: true
        created: created
        description: description
        subscription: "{}"
        hex_color: hex_color
        title: title
        is_archived: true
        background_information: "{}"
        id: 0
        position: 1.4658129805029452
        background_blur_hash: background_blur_hash
        parent_project_id: 6
        updated: updated
        views:
        - filter: filter
          default_bucket_id: 5
          project_id: 9
          created: created
          bucket_configuration:
          - filter: filter
            title: title
          - filter: filter
            title: title
          done_bucket_id: 5
          view_kind: "{}"
          bucket_configuration_mode: "{}"
          id: 2
          position: 7.061401241503109
          title: title
          updated: updated
        - filter: filter
          default_bucket_id: 5
          project_id: 9
          created: created
          bucket_configuration:
          - filter: filter
            title: title
          - filter: filter
            title: title
          done_bucket_id: 5
          view_kind: "{}"
          bucket_configuration_mode: "{}"
          id: 2
          position: 7.061401241503109
          title: title
          updated: updated
      properties:
        background_blur_hash:
          description: Contains a very small version of the project background to
            use as a blurry preview until the actual background is loaded. Check out
            https://blurha.sh/ to learn how it works.
          type: string
        background_information:
          description: "Holds extra information about the background set since some\
            \ background providers require attribution or similar. If not null, the\
            \ background can be accessed at /projects/{projectID}/background"
          type: object
        created:
          description: A timestamp when this project was created. You cannot change
            this value.
          type: string
        description:
          description: The description of the project.
          type: string
        hex_color:
          description: The hex color of this project
          maxLength: 7
          type: string
        id:
          description: "The unique, numeric id of this project."
          type: integer
        identifier:
          description: The unique project short identifier. Used to build task identifiers.
          maxLength: 10
          minLength: 0
          type: string
        is_archived:
          description: Whether a project is archived.
          type: boolean
        is_favorite:
          description: True if a project is a favorite. Favorite projects show up
            in a separate parent project. This value depends on the user making the
            call to the api.
          type: boolean
        owner:
          allOf:
          - $ref: '#/components/schemas/user.User'
          description: The user who created this project.
          type: object
        parent_project_id:
          type: integer
        position:
          description: The position this project has when querying all projects. See
            the tasks.position property on how to use this.
          type: number
        subscription:
          allOf:
          - $ref: '#/components/schemas/models.Subscription'
          description: |-
            The subscription status for the user reading this project. You can only read this property, use the subscription endpoints to modify it.
            Will only returned when retreiving one project.
          type: object
        title:
          description: The title of the project. You'll see this in the overview.
          maxLength: 250
          minLength: 1
          type: string
        updated:
          description: A timestamp when this project was last updated. You cannot
            change this value.
          type: string
        views:
          items:
            $ref: '#/components/schemas/models.ProjectView'
          type: array
      type: object
    models.ProjectDuplicate:
      example:
        duplicated_project: "{}"
        parent_project_id: 0
      properties:
        duplicated_project:
          allOf:
          - $ref: '#/components/schemas/models.Project'
          description: The copied project
          type: object
        parent_project_id:
          description: The target parent project
          type: integer
      type: object
    models.ProjectUser:
      example:
        user_id: user_id
        created: created
        id: 0
        right: "{}"
        updated: updated
      properties:
        created:
          description: A timestamp when this relation was created. You cannot change
            this value.
          type: string
        id:
          description: "The unique, numeric id of this project <-> user relation."
          type: integer
        right:
          allOf:
          - $ref: '#/components/schemas/models.Right'
          description: "The right this user has. 0 = Read only, 1 = Read & Write,\
            \ 2 = Admin. See the docs for more details."
          type: object
        updated:
          description: A timestamp when this relation was last updated. You cannot
            change this value.
          type: string
        user_id:
          description: The username.
          type: string
      type: object
    models.ProjectView:
      example:
        filter: filter
        default_bucket_id: 5
        project_id: 9
        created: created
        bucket_configuration:
        - filter: filter
          title: title
        - filter: filter
          title: title
        done_bucket_id: 5
        view_kind: "{}"
        bucket_configuration_mode: "{}"
        id: 2
        position: 7.061401241503109
        title: title
        updated: updated
      properties:
        bucket_configuration:
          description: "When the bucket configuration mode is not `manual`, this field\
            \ holds the options of that configuration."
          items:
            $ref: '#/components/schemas/models.ProjectViewBucketConfiguration'
          type: array
        bucket_configuration_mode:
          allOf:
          - $ref: '#/components/schemas/models.BucketConfigurationModeKind'
          description: "The bucket configuration mode. Can be `none`, `manual` or\
            \ `filter`. `manual` allows to move tasks between buckets as you normally\
            \ would. `filter` creates buckets based on a filter for each bucket."
          type: object
        created:
          description: A timestamp when this reaction was created. You cannot change
            this value.
          type: string
        default_bucket_id:
          description: "The ID of the bucket where new tasks without a bucket are\
            \ added to. By default, this is the leftmost bucket in a view."
          type: integer
        done_bucket_id:
          description: "If tasks are moved to the done bucket, they are marked as\
            \ done. If they are marked as done individually, they are moved into the\
            \ done bucket."
          type: integer
        filter:
          description: The filter query to match tasks by. Check out https://vikunja.io/docs/filters
            for a full explanation.
          type: string
        id:
          description: The unique numeric id of this view
          type: integer
        position:
          description: The position of this view in the list. The list of all views
            will be sorted by this parameter.
          type: number
        project_id:
          description: The project this view belongs to
          type: integer
        title:
          description: The title of this view
          type: string
        updated:
          description: A timestamp when this view was updated. You cannot change this
            value.
          type: string
        view_kind:
          allOf:
          - $ref: '#/components/schemas/models.ProjectViewKind'
          description: "The kind of this view. Can be `list`, `gantt`, `table` or\
            \ `kanban`."
          type: object
      type: object
    models.ProjectViewBucketConfiguration:
      example:
        filter: filter
        title: title
      properties:
        filter:
          type: string
        title:
          type: string
      type: object
    models.ProjectViewKind:
      enum:
      - 0
      - 1
      - 2
      - 3
      type: integer
      x-enum-varnames:
      - ProjectViewKindList
      - ProjectViewKindGantt
      - ProjectViewKindTable
      - ProjectViewKindKanban
    models.Reaction:
      example:
        created: created
        user: "{}"
        value: value
      properties:
        created:
          description: A timestamp when this reaction was created. You cannot change
            this value.
          type: string
        user:
          allOf:
          - $ref: '#/components/schemas/user.User'
          description: The user who reacted
          type: object
        value:
          description: "The actual reaction. This can be any valid utf character or\
            \ text, up to a length of 20."
          type: string
      type: object
    models.ReactionMap:
      additionalProperties:
        items:
          $ref: '#/components/schemas/user.User'
        type: array
      type: object
    models.RelatedTaskMap:
      additionalProperties:
        items:
          $ref: '#/components/schemas/models.Task'
        type: array
      type: object
    models.RelationKind:
      enum:
      - unknown
      - subtask
      - parenttask
      - related
      - duplicateof
      - duplicates
      - blocking
      - blocked
      - precedes
      - follows
      - copiedfrom
      - copiedto
      type: string
      x-enum-varnames:
      - RelationKindUnknown
      - RelationKindSubtask
      - RelationKindParenttask
      - RelationKindRelated
      - RelationKindDuplicateOf
      - RelationKindDuplicates
      - RelationKindBlocking
      - RelationKindBlocked
      - RelationKindPreceeds
      - RelationKindFollows
      - RelationKindCopiedFrom
      - RelationKindCopiedTo
    models.ReminderRelation:
      enum:
      - due_date
      - start_date
      - end_date
      type: string
      x-enum-varnames:
      - ReminderRelationDueDate
      - ReminderRelationStartDate
      - ReminderRelationEndDate
    models.Right:
      enum:
      - 0
      - 1
      - 2
      type: integer
      x-enum-varnames:
      - RightRead
      - RightWrite
      - RightAdmin
    models.RouteDetail:
      properties:
        method:
          type: string
        path:
          type: string
      type: object
    models.SavedFilter:
      example:
        owner: "{}"
        is_favorite: true
        created: created
        description: description
        filters: "{}"
        id: 0
        title: title
        updated: updated
      properties:
        created:
          description: A timestamp when this filter was created. You cannot change
            this value.
          type: string
        description:
          description: The description of the filter
          type: string
        filters:
          allOf:
          - $ref: '#/components/schemas/models.TaskCollection'
          description: The actual filters this filter contains
          type: object
        id:
          description: The unique numeric id of this saved filter
          type: integer
        is_favorite:
          description: True if the filter is a favorite. Favorite filters show up
            in a separate parent project together with favorite projects.
          type: boolean
        owner:
          allOf:
          - $ref: '#/components/schemas/user.User'
          description: The user who owns this filter
          type: object
        title:
          description: The title of the filter.
          maxLength: 250
          minLength: 1
          type: string
        updated:
          description: A timestamp when this filter was last updated. You cannot change
            this value.
          type: string
      type: object
    models.SharingType:
      enum:
      - 0
      - 1
      - 2
      type: integer
      x-enum-varnames:
      - SharingTypeUnknown
      - SharingTypeWithoutPassword
      - SharingTypeWithPassword
    models.Subscription:
      example:
        created: created
        id: 1
        entity_id: 6
        entity: 0
      properties:
        created:
          description: A timestamp when this subscription was created. You cannot
            change this value.
          type: string
        entity:
          type: integer
        entity_id:
          description: The id of the entity to subscribe to.
          type: integer
        id:
          description: The numeric ID of the subscription
          type: integer
      type: object
    models.Task:
      example:
        end_date: end_date
        reminders:
        - relative_to: "{}"
          reminder: reminder
          relative_period: 1
        - relative_to: "{}"
          reminder: reminder
          relative_period: 1
        percent_done: 3.616076749251911
        attachments:
        - file:
            size: 6
            created: created
            mime: mime
            name: name
            id: 0
          created: created
          task_id: 5
          id: 1
          created_by:
            created: created
            name: name
            id: 0
            updated: updated
            email: email
            username: username
        - file:
            size: 6
            created: created
            mime: mime
            name: name
            id: 0
          created: created
          task_id: 5
          id: 1
          created_by:
            created: created
            name: name
            id: 0
            updated: updated
            email: email
            username: username
        is_favorite: true
        done_at: done_at
        repeat_after: 1
        assignees:
        - created: created
          name: name
          id: 0
          updated: updated
          email: email
          username: username
        - created: created
          name: name
          id: 0
          updated: updated
          email: email
          username: username
        description: description
        related_tasks: "{}"
        cover_image_attachment_id: 2
        subscription: "{}"
        title: title
        bucket_id: 5
        project_id: 7
        id: 7
        start_date: start_date
        identifier: identifier
        created: created
        due_date: due_date
        index: 9
        hex_color: hex_color
        priority: 4
        created_by: "{}"
        done: true
        labels:
        - created: created
          description: description
          id: 0
          hex_color: hex_color
          title: title
          created_by: "{}"
          updated: updated
        - created: created
          description: description
          id: 0
          hex_color: hex_color
          title: title
          created_by: "{}"
          updated: updated
        repeat_mode: "{}"
        reactions: "{}"
        position: 2.027123023002322
        updated: updated
      properties:
        assignees:
          description: An array of users who are assigned to this task
          items:
            $ref: '#/components/schemas/user.User'
          type: array
        attachments:
          description: "All attachments this task has. This property is read-onlym,\
            \ you must use the separate endpoint to add attachments to a task."
          items:
            $ref: '#/components/schemas/models.TaskAttachment'
          type: array
        bucket_id:
          description: |-
            The bucket id. Will only be populated when the task is accessed via a view with buckets.
            Can be used to move a task between buckets. In that case, the new bucket must be in the same view as the old one.
          type: integer
        cover_image_attachment_id:
          description: "If this task has a cover image, the field will return the\
            \ id of the attachment that is the cover image."
          type: integer
        created:
          description: A timestamp when this task was created. You cannot change this
            value.
          type: string
        created_by:
          allOf:
          - $ref: '#/components/schemas/user.User'
          description: The user who initially created the task.
          type: object
        description:
          description: The task description.
          type: string
        done:
          description: Whether a task is done or not.
          type: boolean
        done_at:
          description: The time when a task was marked as done.
          type: string
        due_date:
          description: The time when the task is due.
          type: string
        end_date:
          description: When this task ends.
          type: string
        hex_color:
          description: The task color in hex
          maxLength: 7
          type: string
        id:
          description: "The unique, numeric id of this task."
          type: integer
        identifier:
          description: "The task identifier, based on the project identifier and the\
            \ task's index"
          type: string
        index:
          description: "The task index, calculated per project"
          type: integer
        is_favorite:
          description: True if a task is a favorite task. Favorite tasks show up in
            a separate "Important" project. This value depends on the user making
            the call to the api.
          type: boolean
        labels:
          description: "An array of labels which are associated with this task. This\
            \ property is read-only, you must use the separate endpoint to add labels\
            \ to a task."
          items:
            $ref: '#/components/schemas/models.Label'
          type: array
        percent_done:
          description: Determines how far a task is left from being done
          type: number
        position:
          description: |-
            The position of the task - any task project can be sorted as usual by this parameter.
            When accessing tasks via views with buckets, this is primarily used to sort them based on a range.
            Positions are always saved per view. They will automatically be set if you request the tasks through a view
            endpoint, otherwise they will always be 0. To update them, take a look at the Task Position endpoint.
          type: number
        priority:
          description: "The task priority. Can be anything you want, it is possible\
            \ to sort by this later."
          type: integer
        project_id:
          description: The project this task belongs to.
          type: integer
        reactions:
          allOf:
          - $ref: '#/components/schemas/models.ReactionMap'
          description: Reactions on that task.
          type: object
        related_tasks:
          allOf:
          - $ref: '#/components/schemas/models.RelatedTaskMap'
          description: "All related tasks, grouped by their relation kind"
          type: object
        reminders:
          description: An array of reminders that are associated with this task.
          items:
            $ref: '#/components/schemas/models.TaskReminder'
          type: array
        repeat_after:
          description: "An amount in seconds this task repeats itself. If this is\
            \ set, when marking the task as done, it will mark itself as \"undone\"\
            \ and then increase all remindes and the due date by its amount."
          type: integer
        repeat_mode:
          allOf:
          - $ref: '#/components/schemas/models.TaskRepeatMode'
          description: "Can have three possible values which will trigger when the\
            \ task is marked as done: 0 = repeats after the amount specified in repeat_after,\
            \ 1 = repeats all dates each months (ignoring repeat_after), 3 = repeats\
            \ from the current date rather than the last set date."
          type: object
        start_date:
          description: When this task starts.
          type: string
        subscription:
          allOf:
          - $ref: '#/components/schemas/models.Subscription'
          description: |-
            The subscription status for the user reading this task. You can only read this property, use the subscription endpoints to modify it.
            Will only returned when retrieving one task.
          type: object
        title:
          description: The task text. This is what you'll see in the project.
          minLength: 1
          type: string
        updated:
          description: A timestamp when this task was last updated. You cannot change
            this value.
          type: string
      type: object
    models.TaskAssginee:
      example:
        user_id: 0
        created: created
      properties:
        created:
          type: string
        user_id:
          type: integer
      type: object
    models.TaskAttachment:
      example:
        file:
          size: 6
          created: created
          mime: mime
          name: name
          id: 0
        created: created
        task_id: 5
        id: 1
        created_by:
          created: created
          name: name
          id: 0
          updated: updated
          email: email
          username: username
      properties:
        created:
          type: string
        created_by:
          $ref: '#/components/schemas/user.User'
        file:
          $ref: '#/components/schemas/files.File'
        id:
          type: integer
        task_id:
          type: integer
      type: object
    models.TaskBucket:
      example:
        bucket_id: 0
        project_view_id: 6
        task_id: 1
        task_done: true
      properties:
        bucket_id:
          type: integer
        project_view_id:
          type: integer
        task_done:
          type: boolean
        task_id:
          type: integer
      type: object
    models.TaskCollection:
      properties:
        filter:
          description: The filter query to match tasks by. Check out https://vikunja.io/docs/filters
            for a full explanation.
          type: string
        filter_include_nulls:
          description: "If set to true, the result will also include null values"
          type: boolean
        order_by:
          description: "The query parameter to order the items by. This can be either\
            \ asc or desc, with asc being the default."
          items:
            type: string
          type: array
        sort_by:
          description: "The query parameter to sort by. This is for ex. done, priority,\
            \ etc."
          items:
            type: string
          type: array
      type: object
    models.TaskComment:
      example:
        author:
          created: created
          name: name
          id: 0
          updated: updated
          email: email
          username: username
        created: created
        comment: comment
        reactions:
          key:
          - created: created
            name: name
            id: 0
            updated: updated
            email: email
            username: username
          - created: created
            name: name
            id: 0
            updated: updated
            email: email
            username: username
        id: 0
        updated: updated
      properties:
        author:
          $ref: '#/components/schemas/user.User'
        comment:
          type: string
        created:
          type: string
        id:
          type: integer
        reactions:
          additionalProperties:
            items:
              $ref: '#/components/schemas/user.User'
            type: array
          type: object
        updated:
          type: string
      type: object
    models.TaskPosition:
      example:
        project_view_id: 6
        task_id: 1
        position: 0.8008281904610115
      properties:
        position:
          description: |-
            The position of the task - any task project can be sorted as usual by this parameter.
            When accessing tasks via kanban buckets, this is primarily used to sort them based on a range
            We're using a float64 here to make it possible to put any task within any two other tasks (by changing the number).
            You would calculate the new position between two tasks with something like task3.position = (task2.position - task1.position) / 2.
            A 64-Bit float leaves plenty of room to initially give tasks a position with 2^16 difference to the previous task
            which also leaves a lot of room for rearranging and sorting later.
            Positions are always saved per view. They will automatically be set if you request the tasks through a view
            endpoint, otherwise they will always be 0. To update them, take a look at the Task Position endpoint.
          type: number
        project_view_id:
          description: The project view this task is related to
          type: integer
        task_id:
          description: The ID of the task this position is for
          type: integer
      type: object
    models.TaskRelation:
      example:
        created: created
        relation_kind: "{}"
        task_id: 6
        created_by: "{}"
        other_task_id: 0
      properties:
        created:
          description: A timestamp when this label was created. You cannot change
            this value.
          type: string
        created_by:
          allOf:
          - $ref: '#/components/schemas/user.User'
          description: The user who created this relation
          type: object
        other_task_id:
          description: "The ID of the other task, the task which is being related."
          type: integer
        relation_kind:
          allOf:
          - $ref: '#/components/schemas/models.RelationKind'
          description: The kind of the relation.
          type: object
        task_id:
          description: "The ID of the \"base\" task, the task which has a relation\
            \ to another."
          type: integer
      type: object
    models.TaskReminder:
      example:
        relative_to: "{}"
        reminder: reminder
        relative_period: 1
      properties:
        relative_period:
          description: "A period in seconds relative to another date argument. Negative\
            \ values mean the reminder triggers before the date. Default: 0, tiggers\
            \ when RelativeTo is due."
          type: integer
        relative_to:
          allOf:
          - $ref: '#/components/schemas/models.ReminderRelation'
          description: The name of the date field to which the relative period refers
            to.
          type: object
        reminder:
          description: The absolute time when the user wants to be reminded of the
            task.
          type: string
      type: object
    models.TaskRepeatMode:
      enum:
      - 0
      - 1
      - 2
      type: integer
      x-enum-varnames:
      - TaskRepeatModeDefault
      - TaskRepeatModeMonth
      - TaskRepeatModeFromCurrentDate
    models.Team:
      example:
        oidc_id: oidc_id
        include_public: true
        created: created
        members:
        - created: created
          name: name
          admin: true
          id: 6
          updated: updated
          email: email
          username: username
        - created: created
          name: name
          admin: true
          id: 6
          updated: updated
          email: email
          username: username
        is_public: true
        name: name
        description: description
        id: 0
        created_by: "{}"
        updated: updated
      properties:
        created:
          description: A timestamp when this relation was created. You cannot change
            this value.
          type: string
        created_by:
          allOf:
          - $ref: '#/components/schemas/user.User'
          description: The user who created this team.
          type: object
        description:
          description: The team's description.
          type: string
        id:
          description: "The unique, numeric id of this team."
          type: integer
        include_public:
          description: Query parameter controlling whether to include public projects
            or not
          type: boolean
        is_public:
          description: Defines wether the team should be publicly discoverable when
            sharing a project
          type: boolean
        members:
          description: An array of all members in this team.
          items:
            $ref: '#/components/schemas/models.TeamUser'
          type: array
        name:
          description: The name of this team.
          maxLength: 250
          minLength: 1
          type: string
        oidc_id:
          description: The team's oidc id delivered by the oidc provider
          maxLength: 250
          type: string
        updated:
          description: A timestamp when this relation was last updated. You cannot
            change this value.
          type: string
      type: object
    models.TeamMember:
      example:
        created: created
        admin: true
        id: 0
        username: username
      properties:
        admin:
          description: Whether or not the member is an admin of the team. See the
            docs for more about what a team admin can do
          type: boolean
        created:
          description: A timestamp when this relation was created. You cannot change
            this value.
          type: string
        id:
          description: "The unique, numeric id of this team member relation."
          type: integer
        username:
          description: The username of the member. We use this to prevent automated
            user id entering.
          type: string
      type: object
    models.TeamProject:
      example:
        created: created
        id: 0
        right: "{}"
        team_id: 6
        updated: updated
      properties:
        created:
          description: A timestamp when this relation was created. You cannot change
            this value.
          type: string
        id:
          description: "The unique, numeric id of this project <-> team relation."
          type: integer
        right:
          allOf:
          - $ref: '#/components/schemas/models.Right'
          description: "The right this team has. 0 = Read only, 1 = Read & Write,\
            \ 2 = Admin. See the docs for more details."
          type: object
        team_id:
          description: The team id.
          type: integer
        updated:
          description: A timestamp when this relation was last updated. You cannot
            change this value.
          type: string
      type: object
    models.TeamUser:
      example:
        created: created
        name: name
        admin: true
        id: 6
        updated: updated
        email: email
        username: username
      properties:
        admin:
          description: Whether the member is an admin of the team. See the docs for
            more about what a team admin can do
          type: boolean
        created:
          description: A timestamp when this task was created. You cannot change this
            value.
          type: string
        email:
          description: The user's email address.
          maxLength: 250
          type: string
        id:
          description: "The unique, numeric id of this user."
          type: integer
        name:
          description: The full name of the user.
          type: string
        updated:
          description: A timestamp when this task was last updated. You cannot change
            this value.
          type: string
        username:
          description: The username of the user. Is always unique.
          maxLength: 250
          minLength: 1
          type: string
      type: object
    models.TeamWithRight:
      example:
        oidc_id: oidc_id
        include_public: true
        created: created
        members:
        - created: created
          name: name
          admin: true
          id: 6
          updated: updated
          email: email
          username: username
        - created: created
          name: name
          admin: true
          id: 6
          updated: updated
          email: email
          username: username
        is_public: true
        name: name
        description: description
        id: 0
        right: 1
        created_by: "{}"
        updated: updated
      properties:
        created:
          description: A timestamp when this relation was created. You cannot change
            this value.
          type: string
        created_by:
          allOf:
          - $ref: '#/components/schemas/user.User'
          description: The user who created this team.
          type: object
        description:
          description: The team's description.
          type: string
        id:
          description: "The unique, numeric id of this team."
          type: integer
        include_public:
          description: Query parameter controlling whether to include public projects
            or not
          type: boolean
        is_public:
          description: Defines wether the team should be publicly discoverable when
            sharing a project
          type: boolean
        members:
          description: An array of all members in this team.
          items:
            $ref: '#/components/schemas/models.TeamUser'
          type: array
        name:
          description: The name of this team.
          maxLength: 250
          minLength: 1
          type: string
        oidc_id:
          description: The team's oidc id delivered by the oidc provider
          maxLength: 250
          type: string
        right:
          $ref: '#/components/schemas/models.Right'
        updated:
          description: A timestamp when this relation was last updated. You cannot
            change this value.
          type: string
      type: object
    models.UserWithRight:
      example:
        created: created
        name: name
        id: 0
        right: 6
        updated: updated
        email: email
        username: username
      properties:
        created:
          description: A timestamp when this task was created. You cannot change this
            value.
          type: string
        email:
          description: The user's email address.
          maxLength: 250
          type: string
        id:
          description: "The unique, numeric id of this user."
          type: integer
        name:
          description: The full name of the user.
          type: string
        right:
          $ref: '#/components/schemas/models.Right'
        updated:
          description: A timestamp when this task was last updated. You cannot change
            this value.
          type: string
        username:
          description: The username of the user. Is always unique.
          maxLength: 250
          minLength: 1
          type: string
      type: object
    models.Webhook:
      example:
        project_id: 6
        created: created
        target_url: target_url
        id: 0
        secret: secret
        created_by: "{}"
        updated: updated
        events:
        - events
        - events
      properties:
        created:
          description: A timestamp when this webhook target was created. You cannot
            change this value.
          type: string
        created_by:
          allOf:
          - $ref: '#/components/schemas/user.User'
          description: The user who initially created the webhook target.
          type: object
        events:
          description: The webhook events which should fire this webhook target
          items:
            type: string
          type: array
        id:
          description: The generated ID of this webhook target
          type: integer
        project_id:
          description: The project ID of the project this webhook target belongs to
          type: integer
        secret:
          description: "If provided, webhook requests will be signed using HMAC. Check\
            \ out the docs about how to use this: https://vikunja.io/docs/webhooks/#signing"
          type: string
        target_url:
          description: The target URL where the POST request with the webhook payload
            will be made
          type: string
        updated:
          description: A timestamp when this webhook target was last updated. You
            cannot change this value.
          type: string
      type: object
    notifications.DatabaseNotification:
      example:
        notification: "{}"
        created: created
        name: name
        read_at: read_at
        id: 0
      properties:
        created:
          description: A timestamp when this notification was created. You cannot
            change this value.
          type: string
        id:
          description: "The unique, numeric id of this notification."
          type: integer
        name:
          description: The name of the notification
          type: string
        notification:
          description: The actual content of the notification.
          type: object
        read_at:
          description: "When this notification is marked as read, this will be updated\
            \ with the current timestamp."
          type: string
      type: object
    openid.Callback:
      properties:
        code:
          type: string
        redirect_url:
          type: string
        scope:
          type: string
      type: object
    openid.Provider:
      example:
        logout_url: logout_url
        scope: scope
        name: name
        auth_url: auth_url
        client_id: client_id
        key: key
      properties:
        auth_url:
          type: string
        client_id:
          type: string
        key:
          type: string
        logout_url:
          type: string
        name:
          type: string
        scope:
          type: string
      type: object
    todoist.Migration:
      properties:
        code:
          type: string
      type: object
    trello.Migration:
      properties:
        code:
          type: string
      type: object
    user.APIUserPassword:
      properties:
        email:
          description: The user's email address
          maxLength: 250
          type: string
        id:
          description: "The unique, numeric id of this user."
          type: integer
        password:
          description: "The user's password in clear text. Only used when registering\
            \ the user. The maximum limi is 72 bytes, which may be less than 72 characters.\
            \ This is due to the limit in the bcrypt hashing algorithm used to store\
            \ passwords in Vikunja."
          maxLength: 72
          minLength: 8
          type: string
        username:
          description: The user's username. Cannot contain anything that looks like
            an url or whitespaces.
          maxLength: 250
          minLength: 3
          type: string
      type: object
    user.EmailConfirm:
      properties:
        token:
          description: The email confirm token sent via email.
          type: string
      type: object
    user.EmailUpdate:
      properties:
        new_email:
          description: The new email address. Needs to be a valid email address.
          type: string
        password:
          description: The password of the user for confirmation.
          type: string
      type: object
    user.Login:
      properties:
        long_token:
          description: "If true, the token returned will be valid a lot longer than\
            \ default. Useful for \"remember me\" style logins."
          type: boolean
        password:
          description: The password for the user.
          type: string
        totp_passcode:
          description: The totp passcode of a user. Only needs to be provided when
            enabled.
          type: string
        username:
          description: The username used to log in.
          type: string
      type: object
    user.PasswordReset:
      properties:
        new_password:
          description: The new password for this user.
          type: string
        token:
          description: The previously issued reset token.
          type: string
      type: object
    user.PasswordTokenRequest:
      properties:
        email:
          maxLength: 250
          type: string
      type: object
    user.TOTP:
      example:
        secret: secret
        enabled: true
        url: url
      properties:
        enabled:
          description: The totp entry will only be enabled after the user verified
            they have a working totp setup.
          type: boolean
        secret:
          type: string
        url:
          description: The totp url used to be able to enroll the user later
          type: string
      type: object
    user.TOTPPasscode:
      properties:
        passcode:
          type: string
      type: object
    user.Token:
      example:
        created: created
        id: 0
        token: token
      properties:
        created:
          type: string
        id:
          type: integer
        token:
          type: string
      type: object
    user.User:
      example:
        created: created
        name: name
        id: 0
        updated: updated
        email: email
        username: username
      properties:
        created:
          description: A timestamp when this task was created. You cannot change this
            value.
          type: string
        email:
          description: The user's email address.
          maxLength: 250
          type: string
        id:
          description: "The unique, numeric id of this user."
          type: integer
        name:
          description: The full name of the user.
          type: string
        updated:
          description: A timestamp when this task was last updated. You cannot change
            this value.
          type: string
        username:
          description: The username of the user. Is always unique.
          maxLength: 250
          minLength: 1
          type: string
      type: object
    v1.LinkShareAuth:
      properties:
        password:
          type: string
      type: object
    v1.UserAvatarProvider:
      example:
        avatar_provider: avatar_provider
      properties:
        avatar_provider:
          description: "The avatar provider. Valid types are `gravatar` (uses the\
            \ user email), `upload`, `initials`, `marble` (generates a random avatar\
            \ for each user), `default`."
          type: string
      type: object
    v1.UserDeletionRequestConfirm:
      properties:
        token:
          type: string
      type: object
    v1.UserPassword:
      properties:
        new_password:
          type: string
        old_password:
          type: string
      type: object
    v1.UserPasswordConfirmation:
      properties:
        password:
          type: string
      type: object
    v1.UserSettings:
      example:
        discoverable_by_email: true
        frontend_settings: "{}"
        discoverable_by_name: true
        timezone: timezone
        default_project_id: 6
        name: name
        language: language
        week_start: 1
        overdue_tasks_reminders_enabled: true
        overdue_tasks_reminders_time: overdue_tasks_reminders_time
        email_reminders_enabled: true
      properties:
        default_project_id:
          description: |-
            If a task is created without a specified project this value should be used. Applies
            to tasks made directly in API and from clients.
          type: integer
        discoverable_by_email:
          description: "If true, the user can be found when searching for their exact\
            \ email."
          type: boolean
        discoverable_by_name:
          description: "If true, this user can be found by their name or parts of\
            \ it when searching for it."
          type: boolean
        email_reminders_enabled:
          description: "If enabled, sends email reminders of tasks to the user."
          type: boolean
        frontend_settings:
          description: Additional settings only used by the frontend
          type: object
        language:
          description: The user's language
          type: string
        name:
          description: The new name of the current user.
          type: string
        overdue_tasks_reminders_enabled:
          description: "If enabled, the user will get an email for their overdue tasks\
            \ each morning."
          type: boolean
        overdue_tasks_reminders_time:
          description: The time when the daily summary of overdue tasks will be sent
            via email.
          type: string
        timezone:
          description: The user's time zone. Used to send task reminders in the time
            zone of the user.
          type: string
        week_start:
          description: "The day when the week starts for this user. 0 = sunday, 1\
            \ = monday, etc."
          type: integer
      type: object
    v1.UserWithSettings:
      example:
        settings:
          discoverable_by_email: true
          frontend_settings: "{}"
          discoverable_by_name: true
          timezone: timezone
          default_project_id: 6
          name: name
          language: language
          week_start: 1
          overdue_tasks_reminders_enabled: true
          overdue_tasks_reminders_time: overdue_tasks_reminders_time
          email_reminders_enabled: true
        created: created
        deletion_scheduled_at: deletion_scheduled_at
        name: name
        is_local_user: true
        id: 0
        updated: updated
        email: email
        username: username
      properties:
        created:
          description: A timestamp when this task was created. You cannot change this
            value.
          type: string
        deletion_scheduled_at:
          type: string
        email:
          description: The user's email address.
          maxLength: 250
          type: string
        id:
          description: "The unique, numeric id of this user."
          type: integer
        is_local_user:
          type: boolean
        name:
          description: The full name of the user.
          type: string
        settings:
          $ref: '#/components/schemas/v1.UserSettings'
        updated:
          description: A timestamp when this task was last updated. You cannot change
            this value.
          type: string
        username:
          description: The username of the user. Is always unique.
          maxLength: 250
          minLength: 1
          type: string
      type: object
    v1.authInfo:
      example:
        openid_connect:
          enabled: true
          providers:
          - logout_url: logout_url
            scope: scope
            name: name
            auth_url: auth_url
            client_id: client_id
            key: key
          - logout_url: logout_url
            scope: scope
            name: name
            auth_url: auth_url
            client_id: client_id
            key: key
        local:
          enabled: true
      properties:
        local:
          $ref: '#/components/schemas/v1.localAuthInfo'
        openid_connect:
          $ref: '#/components/schemas/v1.openIDAuthInfo'
      type: object
    v1.legalInfo:
      example:
        privacy_policy_url: privacy_policy_url
        imprint_url: imprint_url
      properties:
        imprint_url:
          type: string
        privacy_policy_url:
          type: string
      type: object
    v1.localAuthInfo:
      example:
        enabled: true
      properties:
        enabled:
          type: boolean
      type: object
    v1.openIDAuthInfo:
      example:
        enabled: true
        providers:
        - logout_url: logout_url
          scope: scope
          name: name
          auth_url: auth_url
          client_id: client_id
          key: key
        - logout_url: logout_url
          scope: scope
          name: name
          auth_url: auth_url
          client_id: client_id
          key: key
      properties:
        enabled:
          type: boolean
        providers:
          items:
            $ref: '#/components/schemas/openid.Provider'
          type: array
      type: object
    v1.vikunjaInfos:
      example:
        motd: motd
        frontend_url: frontend_url
        task_comments_enabled: true
        available_migrators:
        - available_migrators
        - available_migrators
        auth:
          openid_connect:
            enabled: true
            providers:
            - logout_url: logout_url
              scope: scope
              name: name
              auth_url: auth_url
              client_id: client_id
              key: key
            - logout_url: logout_url
              scope: scope
              name: name
              auth_url: auth_url
              client_id: client_id
              key: key
          local:
            enabled: true
        totp_enabled: true
        user_deletion_enabled: true
        enabled_background_providers:
        - enabled_background_providers
        - enabled_background_providers
        public_teams_enabled: true
        task_attachments_enabled: true
        version: version
        email_reminders_enabled: true
        link_sharing_enabled: true
        max_file_size: max_file_size
        registration_enabled: true
        demo_mode_enabled: true
        legal:
          privacy_policy_url: privacy_policy_url
          imprint_url: imprint_url
        caldav_enabled: true
        webhooks_enabled: true
      properties:
        auth:
          $ref: '#/components/schemas/v1.authInfo'
        available_migrators:
          items:
            type: string
          type: array
        caldav_enabled:
          type: boolean
        demo_mode_enabled:
          type: boolean
        email_reminders_enabled:
          type: boolean
        enabled_background_providers:
          items:
            type: string
          type: array
        frontend_url:
          type: string
        legal:
          $ref: '#/components/schemas/v1.legalInfo'
        link_sharing_enabled:
          type: boolean
        max_file_size:
          type: string
        motd:
          type: string
        public_teams_enabled:
          type: boolean
        registration_enabled:
          type: boolean
        task_attachments_enabled:
          type: boolean
        task_comments_enabled:
          type: boolean
        totp_enabled:
          type: boolean
        user_deletion_enabled:
          type: boolean
        version:
          type: string
        webhooks_enabled:
          type: boolean
      type: object
    web.HTTPError:
      example:
        code: 6
        message: message
      properties:
        code:
          type: integer
        message:
          type: string
      type: object
    _migration_ticktick_migrate_post_request:
      properties:
        import:
          description: The TickTick backup csv file.
          type: string
      required:
      - import
      type: object
    _migration_vikunja_file_migrate_post_request:
      properties:
        import:
          description: The Vikunja export zip file.
          type: string
      required:
      - import
      type: object
    _projects__id__backgrounds_upload_put_request:
      properties:
        background:
          description: The file as single file.
          type: string
      required:
      - background
      type: object
    _tasks__id__attachments_put_request:
      properties:
        files:
          description: "The file, as multipart form file. You can pass multiple."
          type: string
      required:
      - files
      type: object
    _user_settings_avatar_upload_put_request:
      properties:
        avatar:
          description: The avatar as single file.
          type: string
      required:
      - avatar
      type: object
  securitySchemes:
    BasicAuth:
      scheme: basic
      type: http
    JWTKeyAuth:
      in: header
      name: Authorization
      type: apiKey
x-original-swagger-version: "2.0"