6578 lines
189 KiB
YAML
6578 lines
189 KiB
YAML
basePath: /api/v1
|
|
definitions:
|
|
auth.Token:
|
|
properties:
|
|
token:
|
|
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
|
|
type: string
|
|
type: object
|
|
background.Image:
|
|
properties:
|
|
blur_hash:
|
|
type: string
|
|
id:
|
|
type: string
|
|
info:
|
|
description: This can be used to supply extra information from an image provider
|
|
to clients
|
|
thumb:
|
|
type: string
|
|
url:
|
|
type: string
|
|
type: object
|
|
files.File:
|
|
properties:
|
|
created:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
mime:
|
|
type: string
|
|
name:
|
|
type: string
|
|
size:
|
|
type: integer
|
|
type: object
|
|
handler.AuthURL:
|
|
properties:
|
|
url:
|
|
type: string
|
|
type: object
|
|
microsofttodo.Migration:
|
|
properties:
|
|
code:
|
|
type: string
|
|
type: object
|
|
migration.Status:
|
|
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:
|
|
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: '#/definitions/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"]}`.
|
|
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:
|
|
properties:
|
|
create:
|
|
$ref: '#/definitions/models.RouteDetail'
|
|
delete:
|
|
$ref: '#/definitions/models.RouteDetail'
|
|
read_all:
|
|
$ref: '#/definitions/models.RouteDetail'
|
|
read_one:
|
|
$ref: '#/definitions/models.RouteDetail'
|
|
update:
|
|
$ref: '#/definitions/models.RouteDetail'
|
|
type: object
|
|
models.Bucket:
|
|
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: '#/definitions/user.User'
|
|
description: The user who initially created the bucket.
|
|
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: '#/definitions/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: '#/definitions/user.User'
|
|
type: array
|
|
type: object
|
|
models.BulkTask:
|
|
properties:
|
|
assignees:
|
|
description: An array of users who are assigned to this task
|
|
items:
|
|
$ref: '#/definitions/user.User'
|
|
type: array
|
|
attachments:
|
|
description: All attachments this task has
|
|
items:
|
|
$ref: '#/definitions/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: '#/definitions/user.User'
|
|
description: The user who initially created the task.
|
|
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.
|
|
items:
|
|
$ref: '#/definitions/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: '#/definitions/models.ReactionMap'
|
|
description: Reactions on that task.
|
|
related_tasks:
|
|
allOf:
|
|
- $ref: '#/definitions/models.RelatedTaskMap'
|
|
description: All related tasks, grouped by their relation kind
|
|
reminders:
|
|
description: An array of reminders that are associated with this task.
|
|
items:
|
|
$ref: '#/definitions/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: '#/definitions/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.'
|
|
start_date:
|
|
description: When this task starts.
|
|
type: string
|
|
subscription:
|
|
allOf:
|
|
- $ref: '#/definitions/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.
|
|
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:
|
|
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.
|
|
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:
|
|
properties:
|
|
created:
|
|
description: A timestamp when this label was created. You cannot change this
|
|
value.
|
|
type: string
|
|
created_by:
|
|
allOf:
|
|
- $ref: '#/definitions/user.User'
|
|
description: The user who created this label
|
|
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:
|
|
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:
|
|
properties:
|
|
labels:
|
|
description: All labels you want to update at once.
|
|
items:
|
|
$ref: '#/definitions/models.Label'
|
|
type: array
|
|
type: object
|
|
models.LinkSharing:
|
|
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: '#/definitions/models.Right'
|
|
default: 0
|
|
description: The right this project is shared with. 0 = Read only, 1 = Read
|
|
& Write, 2 = Admin. See the docs for more details.
|
|
maximum: 2
|
|
shared_by:
|
|
allOf:
|
|
- $ref: '#/definitions/user.User'
|
|
description: The user who shared this project
|
|
sharing_type:
|
|
allOf:
|
|
- $ref: '#/definitions/models.SharingType'
|
|
default: 0
|
|
description: The kind of this link. 0 = undefined, 1 = without password, 2
|
|
= with password.
|
|
maximum: 2
|
|
updated:
|
|
description: A timestamp when this share was last updated. You cannot change
|
|
this value.
|
|
type: string
|
|
type: object
|
|
models.Message:
|
|
properties:
|
|
message:
|
|
description: A standard message.
|
|
type: string
|
|
type: object
|
|
models.Project:
|
|
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
|
|
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: '#/definitions/user.User'
|
|
description: The user who created this project.
|
|
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: '#/definitions/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.
|
|
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: '#/definitions/models.ProjectView'
|
|
type: array
|
|
type: object
|
|
models.ProjectDuplicate:
|
|
properties:
|
|
duplicated_project:
|
|
allOf:
|
|
- $ref: '#/definitions/models.Project'
|
|
description: The copied project
|
|
parent_project_id:
|
|
description: The target parent project
|
|
type: integer
|
|
type: object
|
|
models.ProjectUser:
|
|
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: '#/definitions/models.Right'
|
|
default: 0
|
|
description: The right this user has. 0 = Read only, 1 = Read & Write, 2 =
|
|
Admin. See the docs for more details.
|
|
maximum: 2
|
|
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:
|
|
properties:
|
|
bucket_configuration:
|
|
description: When the bucket configuration mode is not `manual`, this field
|
|
holds the options of that configuration.
|
|
items:
|
|
$ref: '#/definitions/models.ProjectViewBucketConfiguration'
|
|
type: array
|
|
bucket_configuration_mode:
|
|
allOf:
|
|
- $ref: '#/definitions/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.
|
|
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: '#/definitions/models.ProjectViewKind'
|
|
description: The kind of this view. Can be `list`, `gantt`, `table` or `kanban`.
|
|
type: object
|
|
models.ProjectViewBucketConfiguration:
|
|
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:
|
|
properties:
|
|
created:
|
|
description: A timestamp when this reaction was created. You cannot change
|
|
this value.
|
|
type: string
|
|
user:
|
|
allOf:
|
|
- $ref: '#/definitions/user.User'
|
|
description: The user who reacted
|
|
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: '#/definitions/user.User'
|
|
type: array
|
|
type: object
|
|
models.RelatedTaskMap:
|
|
additionalProperties:
|
|
items:
|
|
$ref: '#/definitions/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:
|
|
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: '#/definitions/models.TaskCollection'
|
|
description: The actual filters this filter contains
|
|
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: '#/definitions/user.User'
|
|
description: The user who owns this filter
|
|
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:
|
|
properties:
|
|
created:
|
|
description: A timestamp when this subscription was created. You cannot change
|
|
this value.
|
|
type: string
|
|
entity:
|
|
type: string
|
|
entity_id:
|
|
description: The id of the entity to subscribe to.
|
|
type: integer
|
|
id:
|
|
description: The numeric ID of the subscription
|
|
type: integer
|
|
user:
|
|
allOf:
|
|
- $ref: '#/definitions/user.User'
|
|
description: The user who made this subscription
|
|
type: object
|
|
models.Task:
|
|
properties:
|
|
assignees:
|
|
description: An array of users who are assigned to this task
|
|
items:
|
|
$ref: '#/definitions/user.User'
|
|
type: array
|
|
attachments:
|
|
description: All attachments this task has
|
|
items:
|
|
$ref: '#/definitions/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: '#/definitions/user.User'
|
|
description: The user who initially created the task.
|
|
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.
|
|
items:
|
|
$ref: '#/definitions/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: '#/definitions/models.ReactionMap'
|
|
description: Reactions on that task.
|
|
related_tasks:
|
|
allOf:
|
|
- $ref: '#/definitions/models.RelatedTaskMap'
|
|
description: All related tasks, grouped by their relation kind
|
|
reminders:
|
|
description: An array of reminders that are associated with this task.
|
|
items:
|
|
$ref: '#/definitions/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: '#/definitions/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.'
|
|
start_date:
|
|
description: When this task starts.
|
|
type: string
|
|
subscription:
|
|
allOf:
|
|
- $ref: '#/definitions/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.
|
|
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:
|
|
properties:
|
|
created:
|
|
type: string
|
|
user_id:
|
|
type: integer
|
|
type: object
|
|
models.TaskAttachment:
|
|
properties:
|
|
created:
|
|
type: string
|
|
created_by:
|
|
$ref: '#/definitions/user.User'
|
|
file:
|
|
$ref: '#/definitions/files.File'
|
|
id:
|
|
type: integer
|
|
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:
|
|
properties:
|
|
author:
|
|
$ref: '#/definitions/user.User'
|
|
comment:
|
|
type: string
|
|
created:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
reactions:
|
|
$ref: '#/definitions/models.ReactionMap'
|
|
updated:
|
|
type: string
|
|
type: object
|
|
models.TaskPosition:
|
|
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:
|
|
properties:
|
|
created:
|
|
description: A timestamp when this label was created. You cannot change this
|
|
value.
|
|
type: string
|
|
created_by:
|
|
allOf:
|
|
- $ref: '#/definitions/user.User'
|
|
description: The user who created this relation
|
|
other_task_id:
|
|
description: The ID of the other task, the task which is being related.
|
|
type: integer
|
|
relation_kind:
|
|
allOf:
|
|
- $ref: '#/definitions/models.RelationKind'
|
|
description: The kind of the relation.
|
|
task_id:
|
|
description: The ID of the "base" task, the task which has a relation to another.
|
|
type: integer
|
|
type: object
|
|
models.TaskReminder:
|
|
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: '#/definitions/models.ReminderRelation'
|
|
description: The name of the date field to which the relative period refers
|
|
to.
|
|
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:
|
|
properties:
|
|
created:
|
|
description: A timestamp when this relation was created. You cannot change
|
|
this value.
|
|
type: string
|
|
created_by:
|
|
allOf:
|
|
- $ref: '#/definitions/user.User'
|
|
description: The user who created this team.
|
|
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: '#/definitions/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:
|
|
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:
|
|
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: '#/definitions/models.Right'
|
|
default: 0
|
|
description: The right this team has. 0 = Read only, 1 = Read & Write, 2 =
|
|
Admin. See the docs for more details.
|
|
maximum: 2
|
|
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:
|
|
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:
|
|
properties:
|
|
created:
|
|
description: A timestamp when this relation was created. You cannot change
|
|
this value.
|
|
type: string
|
|
created_by:
|
|
allOf:
|
|
- $ref: '#/definitions/user.User'
|
|
description: The user who created this team.
|
|
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: '#/definitions/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: '#/definitions/models.Right'
|
|
updated:
|
|
description: A timestamp when this relation was last updated. You cannot change
|
|
this value.
|
|
type: string
|
|
type: object
|
|
models.UserWithRight:
|
|
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: '#/definitions/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:
|
|
properties:
|
|
created:
|
|
description: A timestamp when this webhook target was created. You cannot
|
|
change this value.
|
|
type: string
|
|
created_by:
|
|
allOf:
|
|
- $ref: '#/definitions/user.User'
|
|
description: The user who initially created the webhook target.
|
|
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:
|
|
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.
|
|
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:
|
|
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.
|
|
maxLength: 250
|
|
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:
|
|
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:
|
|
properties:
|
|
created:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
token:
|
|
type: string
|
|
type: object
|
|
user.User:
|
|
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:
|
|
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:
|
|
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
|
|
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.authInfo:
|
|
properties:
|
|
local:
|
|
$ref: '#/definitions/v1.localAuthInfo'
|
|
openid_connect:
|
|
$ref: '#/definitions/v1.openIDAuthInfo'
|
|
type: object
|
|
v1.legalInfo:
|
|
properties:
|
|
imprint_url:
|
|
type: string
|
|
privacy_policy_url:
|
|
type: string
|
|
type: object
|
|
v1.localAuthInfo:
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
type: object
|
|
v1.openIDAuthInfo:
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
providers:
|
|
items:
|
|
$ref: '#/definitions/openid.Provider'
|
|
type: array
|
|
type: object
|
|
v1.vikunjaInfos:
|
|
properties:
|
|
auth:
|
|
$ref: '#/definitions/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: '#/definitions/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:
|
|
properties:
|
|
code:
|
|
type: integer
|
|
message:
|
|
type: string
|
|
type: object
|
|
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
|
|
paths:
|
|
/{kind}/{id}/reactions:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all reactions for an entity
|
|
parameters:
|
|
- description: Entity ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The kind of the entity. Can be either `tasks` or `comments` for
|
|
task comments
|
|
in: path
|
|
name: kind
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The reactions
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.ReactionMap'
|
|
type: array
|
|
"403":
|
|
description: The user does not have access to the entity
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get all reactions for an entity
|
|
tags:
|
|
- task
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
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
|
|
type: integer
|
|
- description: The kind of the entity. Can be either `tasks` or `comments` for
|
|
task comments
|
|
in: path
|
|
name: kind
|
|
required: true
|
|
type: integer
|
|
- description: The reaction you want to add to the entity.
|
|
in: body
|
|
name: project
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Reaction'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created reaction
|
|
schema:
|
|
$ref: '#/definitions/models.Reaction'
|
|
"403":
|
|
description: The user does not have access to the entity
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Add a reaction to an entity
|
|
tags:
|
|
- task
|
|
/{kind}/{id}/reactions/delete:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Removes the reaction of that user on that entity.
|
|
parameters:
|
|
- description: Entity ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The kind of the entity. Can be either `tasks` or `comments` for
|
|
task comments
|
|
in: path
|
|
name: kind
|
|
required: true
|
|
type: integer
|
|
- description: The reaction you want to add to the entity.
|
|
in: body
|
|
name: project
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Reaction'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The reaction was successfully removed.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"403":
|
|
description: The user does not have access to the entity
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Removes the user's reaction
|
|
tags:
|
|
- task
|
|
/{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
|
|
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
|
|
type: integer
|
|
produces:
|
|
- application/octet-stream
|
|
responses:
|
|
"200":
|
|
description: The avatar
|
|
schema:
|
|
type: file
|
|
"404":
|
|
description: The user does not exist.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
summary: User Avatar
|
|
tags:
|
|
- user
|
|
/auth/openid/{provider}/callback:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
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 callback
|
|
in: body
|
|
name: callback
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/openid.Callback'
|
|
- description: The OpenID Connect provider key as returned by the /info endpoint
|
|
in: path
|
|
name: provider
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/auth.Token'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Authenticate a user with OpenID Connect
|
|
tags:
|
|
- auth
|
|
/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
|
|
type: integer
|
|
produces:
|
|
- application/octet-stream
|
|
responses:
|
|
"200":
|
|
description: The image
|
|
schema:
|
|
type: file
|
|
"404":
|
|
description: The image does not exist.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
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
|
|
type: integer
|
|
produces:
|
|
- application/octet-stream
|
|
responses:
|
|
"200":
|
|
description: The thumbnail
|
|
schema:
|
|
type: file
|
|
"404":
|
|
description: The image does not exist.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
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
|
|
type: string
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: p
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: An array with photos
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/background.Image'
|
|
type: array
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Search for a background from unsplash
|
|
tags:
|
|
- project
|
|
/filters:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a new saved filter
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: The Saved Filter
|
|
schema:
|
|
$ref: '#/definitions/models.SavedFilter'
|
|
"403":
|
|
description: The user does not have access to that saved filter.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Creates a new saved filter
|
|
tags:
|
|
- filter
|
|
/filters/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Removes a saved filter by its ID.
|
|
parameters:
|
|
- description: Filter ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The Saved Filter
|
|
schema:
|
|
$ref: '#/definitions/models.SavedFilter'
|
|
"403":
|
|
description: The user does not have access to that saved filter.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"404":
|
|
description: The saved filter does not exist.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Removes a saved filter
|
|
tags:
|
|
- filter
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a saved filter by its ID.
|
|
parameters:
|
|
- description: Filter ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The Saved Filter
|
|
schema:
|
|
$ref: '#/definitions/models.SavedFilter'
|
|
"403":
|
|
description: The user does not have access to that saved filter.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Gets one saved filter
|
|
tags:
|
|
- filter
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Updates a saved filter by its ID.
|
|
parameters:
|
|
- description: Filter ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The Saved Filter
|
|
schema:
|
|
$ref: '#/definitions/models.SavedFilter'
|
|
"403":
|
|
description: The user does not have access to that saved filter.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"404":
|
|
description: The saved filter does not exist.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Updates a saved filter
|
|
tags:
|
|
- filter
|
|
/info:
|
|
get:
|
|
description: Returns the version, frontendurl, motd and various settings of
|
|
Vikunja
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/v1.vikunjaInfos'
|
|
summary: Info
|
|
tags:
|
|
- service
|
|
/labels:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
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
|
|
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
|
|
type: integer
|
|
- description: Search labels by label text.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The labels
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.Label'
|
|
type: array
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get all labels a user has access to
|
|
tags:
|
|
- labels
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a new label.
|
|
parameters:
|
|
- description: The label object
|
|
in: body
|
|
name: label
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Label'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: The created label object.
|
|
schema:
|
|
$ref: '#/definitions/models.Label'
|
|
"400":
|
|
description: Invalid label object provided.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Create a label
|
|
tags:
|
|
- labels
|
|
/labels/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
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
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The label was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Label'
|
|
"403":
|
|
description: Not allowed to delete the label.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"404":
|
|
description: Label not found.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Delete a label
|
|
tags:
|
|
- labels
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns one label by its ID.
|
|
parameters:
|
|
- description: Label ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The label
|
|
schema:
|
|
$ref: '#/definitions/models.Label'
|
|
"403":
|
|
description: The user does not have access to the label
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"404":
|
|
description: Label not found
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Gets one label
|
|
tags:
|
|
- labels
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
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
|
|
type: integer
|
|
- description: The label object
|
|
in: body
|
|
name: label
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Label'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created label object.
|
|
schema:
|
|
$ref: '#/definitions/models.Label'
|
|
"400":
|
|
description: Invalid label object provided.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"403":
|
|
description: Not allowed to update the label.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"404":
|
|
description: Label not found.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Update a label
|
|
tags:
|
|
- labels
|
|
/login:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Logs a user in. Returns a JWT-Token to authenticate further requests.
|
|
parameters:
|
|
- description: The login credentials
|
|
in: body
|
|
name: credentials
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/user.Login'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/auth.Token'
|
|
"400":
|
|
description: Invalid user password model.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"403":
|
|
description: Invalid username or password.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"412":
|
|
description: Invalid totp passcode.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
summary: Login
|
|
tags:
|
|
- auth
|
|
/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.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The auth url.
|
|
schema:
|
|
$ref: '#/definitions/handler.AuthURL'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get the auth url from Microsoft Todo
|
|
tags:
|
|
- migration
|
|
/migration/microsoft-todo/migrate:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Migrates all tasklinsts, tasks, notes and reminders from Microsoft
|
|
Todo to Vikunja.
|
|
parameters:
|
|
- description: The auth token previously obtained from the auth url. See the
|
|
docs for /migration/microsoft-todo/auth.
|
|
in: body
|
|
name: migrationCode
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/microsofttodo.Migration'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: A message telling you everything was migrated successfully.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Migrate all projects, tasks etc. from Microsoft Todo
|
|
tags:
|
|
- migration
|
|
/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.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The migration status
|
|
schema:
|
|
$ref: '#/definitions/migration.Status'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get migration status
|
|
tags:
|
|
- migration
|
|
/migration/ticktick/migrate:
|
|
post:
|
|
consumes:
|
|
- application/x-www-form-urlencoded
|
|
description: Imports all projects, tasks, notes, reminders, subtasks and files
|
|
from a TickTick backup export into Vikunja.
|
|
parameters:
|
|
- description: The TickTick backup csv file.
|
|
in: formData
|
|
name: import
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: A message telling you everything was migrated successfully.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
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.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The migration status
|
|
schema:
|
|
$ref: '#/definitions/migration.Status'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
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.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The auth url.
|
|
schema:
|
|
$ref: '#/definitions/handler.AuthURL'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get the auth url from todoist
|
|
tags:
|
|
- migration
|
|
/migration/todoist/migrate:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Migrates all projects, tasks, notes, reminders, subtasks and files
|
|
from todoist to vikunja.
|
|
parameters:
|
|
- description: The auth code previously obtained from the auth url. See the
|
|
docs for /migration/todoist/auth.
|
|
in: body
|
|
name: migrationCode
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/todoist.Migration'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: A message telling you everything was migrated successfully.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Migrate all lists, tasks etc. from todoist
|
|
tags:
|
|
- migration
|
|
/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.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The migration status
|
|
schema:
|
|
$ref: '#/definitions/migration.Status'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
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.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The auth url.
|
|
schema:
|
|
$ref: '#/definitions/handler.AuthURL'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get the auth url from trello
|
|
tags:
|
|
- migration
|
|
/migration/trello/migrate:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Migrates all projects, tasks, notes, reminders, subtasks and files
|
|
from trello to vikunja.
|
|
parameters:
|
|
- description: The auth token previously obtained from the auth url. See the
|
|
docs for /migration/trello/auth.
|
|
in: body
|
|
name: migrationCode
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/trello.Migration'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: A message telling you everything was migrated successfully.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Migrate all projects, tasks etc. from trello
|
|
tags:
|
|
- migration
|
|
/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.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The migration status
|
|
schema:
|
|
$ref: '#/definitions/migration.Status'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get migration status
|
|
tags:
|
|
- migration
|
|
/migration/vikunja-file/migrate:
|
|
post:
|
|
consumes:
|
|
- application/x-www-form-urlencoded
|
|
description: Imports all projects, tasks, notes, reminders, subtasks and files
|
|
from a Vikunjda data export into Vikunja.
|
|
parameters:
|
|
- description: The Vikunja export zip file.
|
|
in: formData
|
|
name: import
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: A message telling you everything was migrated successfully.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
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.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The migration status
|
|
schema:
|
|
$ref: '#/definitions/migration.Status'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get migration status
|
|
tags:
|
|
- migration
|
|
/notifications:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
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
|
|
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
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The notifications
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/notifications.DatabaseNotification'
|
|
type: array
|
|
"403":
|
|
description: Link shares cannot have notifications.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get all notifications for the current user
|
|
tags:
|
|
- subscriptions
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: All notifications marked as read.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
summary: Mark all notifications of a user as read
|
|
tags:
|
|
- sharing
|
|
/notifications/{id}:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
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
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The notification to mark as read.
|
|
schema:
|
|
$ref: '#/definitions/models.DatabaseNotifications'
|
|
"403":
|
|
description: Link shares cannot have notifications.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"404":
|
|
description: The notification does not exist.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Mark a notification as (un-)read
|
|
tags:
|
|
- subscriptions
|
|
/projects:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
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
|
|
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
|
|
type: integer
|
|
- description: Search projects by title.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
- description: If true, also returns all archived projects.
|
|
in: query
|
|
name: is_archived
|
|
type: boolean
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The projects
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.Project'
|
|
type: array
|
|
"403":
|
|
description: The user does not have access to the project
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get all projects a user has access to
|
|
tags:
|
|
- project
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a new project. If a parent project is provided the user
|
|
needs to have write access to that project.
|
|
parameters:
|
|
- description: The project you want to create.
|
|
in: body
|
|
name: project
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Project'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: The created project.
|
|
schema:
|
|
$ref: '#/definitions/models.Project'
|
|
"400":
|
|
description: Invalid project object provided.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the project
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Creates a new project
|
|
tags:
|
|
- project
|
|
/projects/{id}:
|
|
delete:
|
|
description: Delets a project
|
|
parameters:
|
|
- description: Project ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The project was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"400":
|
|
description: Invalid project object provided.
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the project
|
|
schema:
|
|
$ref: '#/definitions/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Deletes a project
|
|
tags:
|
|
- project
|
|
get:
|
|