api/pkg/swagger/swagger.yaml
renovate 0ca1560bf1 fix(deps): update module github.com/swaggo/swag to v1.7.3 (#990)
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#990
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2021-09-26 12:44:37 +00:00

6271 lines
180 KiB
YAML

basePath: /api/v1
definitions:
auth.Token:
properties:
token:
type: string
type: object
background.Image:
properties:
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:
id:
type: integer
migrator_name:
type: string
time:
type: string
type: object
models.Bucket:
properties:
created:
description: A timestamp when this bucket was created. You cannot change this
value.
type: string
created_by:
$ref: '#/definitions/user.User'
description: The user who initially created the bucket.
filter_by:
description: The field name of the field to filter by
items:
type: string
type: array
filter_comparator:
description: The comparator for field and value
items:
type: string
type: array
filter_concat:
description: The way all filter conditions are concatenated together, can
be either "and" or "or".,
type: string
filter_include_nulls:
description: If set to true, the result will also include null values
type: boolean
filter_value:
description: The value of the field name to filter by
items:
type: string
type: array
id:
description: The unique, numeric id of this bucket.
type: integer
is_done_bucket:
description: If this bucket is the "done bucket". All tasks moved into this
bucket will automatically marked as done. All tasks marked as done from
elsewhere will be moved into this bucket.
type: boolean
limit:
description: How many tasks can be at the same time on this board max
minimum: 0
type: integer
list_id:
description: The list this bucket belongs to.
type: integer
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
position:
description: The position this bucket has when querying all buckets. See the
tasks.position property on how to use this.
type: number
sort_by:
description: The query parameter to sort by. This is for ex. done, priority,
etc.
items:
type: string
type: array
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
web.CRUDable: {}
web.Rights: {}
type: object
models.BulkAssignees:
properties:
assignees:
description: A list with all assignees
items:
$ref: '#/definitions/user.User'
type: array
web.CRUDable: {}
web.Rights: {}
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: BucketID is the ID of the kanban bucket this task belongs to.
type: integer
created:
description: A timestamp when this task was created. You cannot change this
value.
type: string
created_by:
$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: 6
type: string
id:
description: The unique, numeric id of this task.
type: integer
identifier:
description: The task identifier, based on the list identifier and the task's
index
type: string
index:
description: The task index, calculated per list
type: integer
is_favorite:
description: True if a task is a favorite task. Favorite tasks show up in
a separate "Important" list. This value depends on the user making the call
to the api.
type: boolean
kanban_position:
description: The position of tasks in the kanban board. See the docs for the
`position` property on how to use this.
type: number
labels:
description: An array of labels which are associated with this task.
items:
$ref: '#/definitions/models.Label'
type: array
list_id:
description: The list this task belongs to.
type: integer
percent_done:
description: Determines how far a task is left from being done
type: number
position:
description: |-
The position of the task - any task list 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.
type: number
priority:
description: The task priority. Can be anything you want, it is possible to
sort by this later.
type: integer
related_tasks:
$ref: '#/definitions/models.RelatedTaskMap'
description: All related tasks, grouped by their relation kind
reminder_dates:
description: An array of datetimes when the user wants to be reminded of the
task.
items:
type: string
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:
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: integer
start_date:
description: When this task starts.
type: string
subscription:
$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 retreiving one task.
task_ids:
description: A list of task ids to update
items:
type: integer
type: array
title:
description: The task text. This is what you'll see in the list.
minLength: 1
type: string
updated:
description: A timestamp when this task was last updated. You cannot change
this value.
type: string
web.CRUDable: {}
web.Rights: {}
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
web.CRUDable: {}
web.Rights: {}
type: object
models.Label:
properties:
created:
description: A timestamp when this label was created. You cannot change this
value.
type: string
created_by:
$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
maxLength: 6
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
web.CRUDable: {}
web.Rights: {}
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
web.CRUDable: {}
web.Rights: {}
type: object
models.LabelTaskBulk:
properties:
labels:
description: All labels you want to update at once.
items:
$ref: '#/definitions/models.Label'
type: array
web.CRUDable: {}
web.Rights: {}
type: object
models.LinkSharing:
properties:
created:
description: A timestamp when this list was shared. You cannot change this
value.
type: string
hash:
description: The public id to get this shared list
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:
default: 0
description: The right this list is shared with. 0 = Read only, 1 = Read &
Write, 2 = Admin. See the docs for more details.
maximum: 2
type: integer
shared_by:
$ref: '#/definitions/user.User'
description: The user who shared this list
sharing_type:
default: 0
description: The kind of this link. 0 = undefined, 1 = without password, 2
= with password.
maximum: 2
type: integer
updated:
description: A timestamp when this share was last updated. You cannot change
this value.
type: string
web.CRUDable: {}
web.Rights: {}
type: object
models.List:
properties:
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 /lists/{listID}/background
created:
description: A timestamp when this list was created. You cannot change this
value.
type: string
description:
description: The description of the list.
type: string
hex_color:
description: The hex color of this list
maxLength: 6
type: string
id:
description: The unique, numeric id of this list.
type: integer
identifier:
description: The unique list short identifier. Used to build task identifiers.
maxLength: 10
minLength: 0
type: string
is_archived:
description: Whether or not a list is archived.
type: boolean
is_favorite:
description: True if a list is a favorite. Favorite lists show up in a separate
namespace. This value depends on the user making the call to the api.
type: boolean
namespace_id:
type: integer
owner:
$ref: '#/definitions/user.User'
description: The user who created this list.
position:
description: The position this list has when querying all lists. See the tasks.position
property on how to use this.
type: number
subscription:
$ref: '#/definitions/models.Subscription'
description: |-
The subscription status for the user reading this list. You can only read this property, use the subscription endpoints to modify it.
Will only returned when retreiving one list.
title:
description: The title of the list. You'll see this in the namespace overview.
maxLength: 250
minLength: 1
type: string
updated:
description: A timestamp when this list was last updated. You cannot change
this value.
type: string
web.CRUDable: {}
web.Rights: {}
type: object
models.ListDuplicate:
properties:
list:
$ref: '#/definitions/models.List'
description: The copied list
namespace_id:
description: The target namespace ID
type: integer
web.CRUDable: {}
web.Rights: {}
type: object
models.ListUser:
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 list <-> user relation.
type: integer
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
type: integer
updated:
description: A timestamp when this relation was last updated. You cannot change
this value.
type: string
user_id:
description: The username.
type: string
web.CRUDable: {}
web.Rights: {}
type: object
models.Message:
properties:
message:
description: A standard message.
type: string
type: object
models.Namespace:
properties:
created:
description: A timestamp when this namespace was created. You cannot change
this value.
type: string
description:
description: The description of the namespace
type: string
hex_color:
description: The hex color of this namespace
maxLength: 6
type: string
id:
description: The unique, numeric id of this namespace.
type: integer
is_archived:
description: Whether or not a namespace is archived.
type: boolean
owner:
$ref: '#/definitions/user.User'
description: The user who owns this namespace
subscription:
$ref: '#/definitions/models.Subscription'
description: |-
The subscription status for the user reading this namespace. You can only read this property, use the subscription endpoints to modify it.
Will only returned when retreiving one namespace.
title:
description: The name of this namespace.
maxLength: 250
minLength: 1
type: string
updated:
description: A timestamp when this namespace was last updated. You cannot
change this value.
type: string
web.CRUDable: {}
web.Rights: {}
type: object
models.NamespaceUser:
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 namespace <-> user relation.
type: integer
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
type: integer
updated:
description: A timestamp when this relation was last updated. You cannot change
this value.
type: string
user_id:
description: The username.
type: string
web.CRUDable: {}
web.Rights: {}
type: object
models.NamespaceWithLists:
properties:
created:
description: A timestamp when this namespace was created. You cannot change
this value.
type: string
description:
description: The description of the namespace
type: string
hex_color:
description: The hex color of this namespace
maxLength: 6
type: string
id:
description: The unique, numeric id of this namespace.
type: integer
is_archived:
description: Whether or not a namespace is archived.
type: boolean
lists:
items:
$ref: '#/definitions/models.List'
type: array
owner:
$ref: '#/definitions/user.User'
description: The user who owns this namespace
subscription:
$ref: '#/definitions/models.Subscription'
description: |-
The subscription status for the user reading this namespace. You can only read this property, use the subscription endpoints to modify it.
Will only returned when retreiving one namespace.
title:
description: The name of this namespace.
maxLength: 250
minLength: 1
type: string
updated:
description: A timestamp when this namespace was last updated. You cannot
change this value.
type: string
web.CRUDable: {}
web.Rights: {}
type: object
models.RelatedTaskMap:
additionalProperties:
items:
$ref: '#/definitions/models.Task'
type: array
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:
$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 namespace together with favorite lists.
type: boolean
owner:
$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
web.CRUDable: {}
web.Rights: {}
type: object
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:
$ref: '#/definitions/user.User'
description: The user who made this subscription
web.CRUDable: {}
web.Rights: {}
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: BucketID is the ID of the kanban bucket this task belongs to.
type: integer
created:
description: A timestamp when this task was created. You cannot change this
value.
type: string
created_by:
$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: 6
type: string
id:
description: The unique, numeric id of this task.
type: integer
identifier:
description: The task identifier, based on the list identifier and the task's
index
type: string
index:
description: The task index, calculated per list
type: integer
is_favorite:
description: True if a task is a favorite task. Favorite tasks show up in
a separate "Important" list. This value depends on the user making the call
to the api.
type: boolean
kanban_position:
description: The position of tasks in the kanban board. See the docs for the
`position` property on how to use this.
type: number
labels:
description: An array of labels which are associated with this task.
items:
$ref: '#/definitions/models.Label'
type: array
list_id:
description: The list this task belongs to.
type: integer
percent_done:
description: Determines how far a task is left from being done
type: number
position:
description: |-
The position of the task - any task list 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.
type: number
priority:
description: The task priority. Can be anything you want, it is possible to
sort by this later.
type: integer
related_tasks:
$ref: '#/definitions/models.RelatedTaskMap'
description: All related tasks, grouped by their relation kind
reminder_dates:
description: An array of datetimes when the user wants to be reminded of the
task.
items:
type: string
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:
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: integer
start_date:
description: When this task starts.
type: string
subscription:
$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 retreiving one task.
title:
description: The task text. This is what you'll see in the list.
minLength: 1
type: string
updated:
description: A timestamp when this task was last updated. You cannot change
this value.
type: string
web.CRUDable: {}
web.Rights: {}
type: object
models.TaskAssginee:
properties:
created:
type: string
user_id:
type: integer
web.CRUDable: {}
web.Rights: {}
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
web.CRUDable: {}
web.Rights: {}
type: object
models.TaskCollection:
properties:
filter_by:
description: The field name of the field to filter by
items:
type: string
type: array
filter_comparator:
description: The comparator for field and value
items:
type: string
type: array
filter_concat:
description: The way all filter conditions are concatenated together, can
be either "and" or "or".,
type: string
filter_include_nulls:
description: If set to true, the result will also include null values
type: boolean
filter_value:
description: The value of the field name to filter by
items:
type: string
type: array
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
web.CRUDable: {}
web.Rights: {}
type: object
models.TaskComment:
properties:
author:
$ref: '#/definitions/user.User'
comment:
type: string
created:
type: string
id:
type: integer
updated:
type: string
web.CRUDable: {}
web.Rights: {}
type: object
models.TaskRelation:
properties:
created:
description: A timestamp when this label was created. You cannot change this
value.
type: string
created_by:
$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:
description: The kind of the relation.
type: string
task_id:
description: The ID of the "base" task, the task which has a relation to another.
type: integer
web.CRUDable: {}
web.Rights: {}
type: object
models.Team:
properties:
created:
description: A timestamp when this relation was created. You cannot change
this value.
type: string
created_by:
$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
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
updated:
description: A timestamp when this relation was last updated. You cannot change
this value.
type: string
web.CRUDable: {}
web.Rights: {}
type: object
models.TeamList:
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 list <-> team relation.
type: integer
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
type: integer
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
web.CRUDable: {}
web.Rights: {}
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
web.CRUDable: {}
web.Rights: {}
type: object
models.TeamNamespace:
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 namespace <-> team relation.
type: integer
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
type: integer
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
web.CRUDable: {}
web.Rights: {}
type: object
models.TeamUser:
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 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
web.Auth: {}
type: object
models.TeamWithRight:
properties:
created:
description: A timestamp when this relation was created. You cannot change
this value.
type: string
created_by:
$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
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
right:
type: integer
updated:
description: A timestamp when this relation was last updated. You cannot change
this value.
type: string
web.CRUDable: {}
web.Rights: {}
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:
type: integer
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
web.Auth: {}
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
scope:
type: string
type: object
openid.Provider:
properties:
auth_url:
type: string
client_id:
type: string
key:
type: string
name:
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 username of the username. Is always unique.
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:
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.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
web.Auth: {}
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`, `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_list_id:
description: |-
If a task is created without a specified list 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
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
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
redirect_url:
type: string
type: object
v1.vikunjaInfos:
properties:
auth:
$ref: '#/definitions/v1.authInfo'
available_migrators:
items:
type: string
type: array
caldav_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
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
type: object
web.HTTPError:
properties:
code:
type: integer
message:
type: string
type: object
wunderlist.Migration:
properties:
code:
description: Code is the code used to get a user api token
type: string
type: object
info:
contact:
email: hello@vikunja.io
name: General Vikunja contact
url: http://vikunja.io/en/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 (list, task, namespace, 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.
# Authorization
**JWT-Auth:** Main authorization method, used for most of the requests. Needs `Authorization: Bearer <jwt-token>`-header to authenticate successfully.
**BasicAuth:** Only used when requesting tasks via caldav.
<!-- ReDoc-Inject: <security-definitions> -->
license:
name: GPLv3
url: http://code.vikunja.io/api/src/branch/master/LICENSE
title: Vikunja API
paths:
/{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
in: query
name: size
type: integer
produces:
- application/octet-stream
responses:
"200":
description: The avatar
schema:
type: ""
"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.
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: thumb
required: true
type: integer
produces:
- application/octet-stream
responses:
"200":
description: The image
schema:
type: ""
"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:
- list
/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: thumb
required: true
type: integer
produces:
- application/octet-stream
responses:
"200":
description: The thumbnail
schema:
type: ""
"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:
- list
/backgrounds/unsplash/search:
get:
description: Search for a list 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:
- list
/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
/lists:
get:
consumes:
- application/json
description: Returns all lists 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 lists by title.
in: query
name: s
type: string
- description: If true, also returns all archived lists.
in: query
name: is_archived
type: boolean
produces:
- application/json
responses:
"200":
description: The lists
schema:
items:
$ref: '#/definitions/models.List'
type: array
"403":
description: The user does not have access to the list
schema:
$ref: '#/definitions/web.HTTPError'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Get all lists a user has access to
tags:
- list
/lists/{id}:
delete:
description: Delets a list
parameters:
- description: List ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: The list was successfully deleted.
schema:
$ref: '#/definitions/models.Message'
"400":
description: Invalid list object provided.
schema:
$ref: '#/definitions/web.HTTPError'
"403":
description: The user does not have access to the list
schema:
$ref: '#/definitions/web.HTTPError'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Deletes a list
tags:
- list
get:
consumes:
- application/json
description: Returns a list by its ID.
parameters:
- description: List ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: The list
schema:
$ref: '#/definitions/models.List'
"403":
description: The user does not have access to the list
schema:
$ref: '#/definitions/web.HTTPError'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Gets one list
tags:
- list
post:
consumes:
- application/json
description: Updates a list. This does not include adding a task (see below).
parameters:
- description: List ID
in: path
name: id
required: true
type: integer
- description: The list with updated values you want to update.
in: body
name: list
required: true
schema:
$ref: '#/definitions/models.List'
produces:
- application/json
responses:
"200":
description: The updated list.
schema:
$ref: '#/definitions/models.List'
"400":
description: Invalid list object provided.
schema:
$ref: '#/definitions/web.HTTPError'
"403":
description: The user does not have access to the list
schema:
$ref: '#/definitions/web.HTTPError'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Updates a list
tags:
- list
put:
consumes:
- application/json
description: Inserts a task into a list.
parameters:
- description: List ID
in: path
name: id
required: true
type: integer
- description: The task object
in: body
name: task
required: true
schema:
$ref: '#/definitions/models.Task'
produces:
- application/json
responses:
"201":
description: The created task object.
schema:
$ref: '#/definitions/models.Task'
"400":
description: Invalid task object provided.
schema:
$ref: '#/definitions/web.HTTPError'
"403":
description: The user does not have access to the list
schema:
$ref: '#/definitions/web.HTTPError'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Create a task
tags:
- task
/lists/{id}/background:
delete:
description: Removes a previously set list background, regardless of the list
provider used to set the background. It does not throw an error if the list
does not have a background.
parameters:
- description: List ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: The list
schema:
$ref: '#/definitions/models.List'
"403":
description: No access to this list.
schema:
$ref: '#/definitions/models.Message'
"404":
description: The list does not exist.
schema:
$ref: '#/definitions/models.Message'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Remove a list background
tags:
- list
get:
description: Get the list background of a specific list. **Returns json on error.**
parameters:
- description: List ID
in: path
name: id
required: true
type: integer
produces:
- application/octet-stream
responses:
"200":
description: The list background file.
schema:
type: ""
"403":
description: No access to this list.
schema:
$ref: '#/definitions/models.Message'
"404":
description: The list does not exist.
schema:
$ref: '#/definitions/models.Message'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Get the list background
tags:
- list
/lists/{id}/backgrounds/unsplash:
post:
consumes:
- application/json
description: Sets a photo from unsplash as list background.
parameters:
- description: List ID
in: path
name: id
required: true
type: integer
- description: The image you want to set as background
in: body
name: list
required: true
schema:
$ref: '#/definitions/background.Image'
produces:
- application/json
responses:
"200":
description: The background has been successfully set.
schema:
$ref: '#/definitions/models.List'
"400":
description: Invalid image object provided.
schema:
$ref: '#/definitions/web.HTTPError'
"403":
description: The user does not have access to the list
schema:
$ref: '#/definitions/web.HTTPError'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Set an unsplash photo as list background
tags:
- list
/lists/{id}/backgrounds/upload:
put:
consumes:
- multipart/form-data
description: Upload a list background.
parameters:
- description: List ID
in: path
name: id
required: true
type: integer
- description: The file as single file.
in: formData
name: background
required: true
type: string
produces:
- application/json
responses:
"200":
description: The background was set successfully.
schema:
$ref: '#/definitions/models.Message'
"400":
description: File is no image.
schema:
$ref: '#/definitions/models.Message'
"403":
description: File too large.
schema:
$ref: '#/definitions/models.Message'
"404":
description: The list does not exist.
schema:
$ref: '#/definitions/models.Message'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Upload a list background
tags:
- list
/lists/{id}/buckets:
get:
consumes:
- application/json
description: Returns all kanban buckets with belong to a list including their
tasks.
parameters:
- description: List Id
in: path
name: id
required: true
type: integer
- description: The page number for tasks. Used for pagination. If not provided,
the first page of results is returned.
in: query
name: page
type: integer
- description: The maximum number of tasks per bucket per page. This parameter
is limited by the configured maximum of items per page.
in: query
name: per_page
type: integer
- description: Search tasks by task text.
in: query
name: s
type: string
- description: The name of the field to filter by. Allowed values are all task
properties. Task properties which are their own object require passing in
the id of that entity. Accepts an array for multiple filters which will
be chanied together, all supplied filter must match.
in: query
name: filter_by
type: string
- description: The value to filter for.
in: query
name: filter_value
type: string
- description: The comparator to use for a filter. Available values are `equals`,
`greater`, `greater_equals`, `less`, `less_equals`, `like` and `in`. `in`
expects comma-separated values in `filter_value`. Defaults to `equals`
in: query
name: filter_comparator
type: string
- description: The concatinator to use for filters. Available values are `and`
or `or`. Defaults to `or`.
in: query
name: filter_concat
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
type: string
produces:
- application/json
responses:
"200":
description: The buckets with their tasks
schema:
items:
$ref: '#/definitions/models.Bucket'
type: array
"500":
description: Internal server error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Get all kanban buckets of a list
tags:
- task
put:
consumes:
- application/json
description: Creates a new kanban bucket on a list.
parameters:
- description: List Id
in: path
name: id
required: true
type: integer
- description: The bucket object
in: body
name: bucket
required: true
schema:
$ref: '#/definitions/models.Bucket'
produces:
- application/json
responses:
"200":
description: The created bucket object.
schema:
$ref: '#/definitions/models.Bucket'
"400":
description: Invalid bucket object provided.
schema:
$ref: '#/definitions/web.HTTPError'
"404":
description: The list does not exist.
schema:
$ref: '#/definitions/web.HTTPError'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Create a new bucket
tags:
- task
/lists/{id}/listusers:
get:
consumes:
- application/json
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
type: string
- description: List ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: All (found) users.
schema:
items:
$ref: '#/definitions/user.User'
type: array
"400":
description: Something's invalid.
schema:
$ref: '#/definitions/web.HTTPError'
"401":
description: The user does not have the right to see the list.
schema:
$ref: '#/definitions/web.HTTPError'
"500":
description: Internal server error.
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Get users
tags:
- list
/lists/{id}/teams:
get:
consumes:
- application/json
description: Returns a list with all teams which have access on a given list.
parameters:
- description: List ID
in: path
name: id
required: true
type: integer
- 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 teams by its name.
in: query
name: s
type: string
produces:
- application/json
responses:
"200":
description: The teams with their right.
schema:
items:
$ref: '#/definitions/models.TeamWithRight'
type: array
"403":
description: No right to see the list.
schema:
$ref: '#/definitions/web.HTTPError'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Get teams on a list
tags:
- sharing
put:
consumes:
- application/json
description: Gives a team access to a list.
parameters:
- description: List ID
in: path
name: id
required: true
type: integer
- description: The team you want to add to the list.
in: body
name: list
required: true
schema:
$ref: '#/definitions/models.TeamList'
produces:
- application/json
responses:
"201":
description: The created team<->list relation.
schema:
$ref: '#/definitions/models.TeamList'
"400":
description: Invalid team list object provided.
schema:
$ref: '#/definitions/web.HTTPError'
"403":
description: The user does not have access to the list
schema:
$ref: '#/definitions/web.HTTPError'
"404":
description: The team does not exist.
schema:
$ref: '#/definitions/web.HTTPError'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Add a team to a list
tags:
- sharing
/lists/{id}/users:
get:
consumes:
- application/json
description: Returns a list with all users which have access on a given list.
parameters:
- description: List ID
in: path
name: id
required: true
type: integer
- 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 users by its name.
in: query
name: s
type: string
produces:
- application/json
responses:
"200":
description: The users with the right they have.
schema:
items:
$ref: '#/definitions/models.UserWithRight'
type: array
"403":
description: No right to see the list.
schema:
$ref: '#/definitions/web.HTTPError'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Get users on a list
tags:
- sharing
put:
consumes:
- application/json
description: Gives a user access to a list.
parameters:
- description: List ID
in: path
name: id
required: true
type: integer
- description: The user you want to add to the list.
in: body
name: list
required: true
schema:
$ref: '#/definitions/models.ListUser'
produces:
- application/json
responses:
"201":
description: The created user<->list relation.
schema:
$ref: '#/definitions/models.ListUser'
"400":
description: Invalid user list object provided.
schema:
$ref: '#/definitions/web.HTTPError'
"403":
description: The user does not have access to the list
schema:
$ref: '#/definitions/web.HTTPError'
"404":
description: The user does not exist.
schema:
$ref: '#/definitions/web.HTTPError'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Add a user to a list
tags:
- sharing
/lists/{list}/shares:
get:
consumes:
- application/json
description: Returns all link shares which exist for a given list
parameters:
- description: List ID
in: path
name: list
required: true
type: integer
- 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 shares by hash.
in: query
name: s
type: string
produces:
- application/json
responses:
"200":
description: The share links
schema:
items:
$ref: '#/definitions/models.LinkSharing'
type: array
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Get all link shares for a list
tags:
- sharing
put:
consumes:
- application/json
description: Share a list via link. The user needs to have write-access to the
list to be able do this.
parameters:
- description: List ID
in: path
name: list
required: true
type: integer
- description: The new link share object
in: body
name: label
required: true
schema:
$ref: '#/definitions/models.LinkSharing'
produces:
- application/json
responses:
"201":
description: The created link share object.
schema:
$ref: '#/definitions/models.LinkSharing'
"400":
description: Invalid link share object provided.
schema:
$ref: '#/definitions/web.HTTPError'
"403":
description: Not allowed to add the list share.
schema:
$ref: '#/definitions/web.HTTPError'
"404":
description: The list does not exist.
schema:
$ref: '#/definitions/web.HTTPError'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Share a list via link
tags:
- sharing
/lists/{list}/shares/{share}:
delete:
consumes:
- application/json
description: Remove a link share. The user needs to have write-access to the
list to be able do this.
parameters:
- description: List ID
in: path
name: list
required: true
type: integer
- description: Share Link ID
in: path
name: share
required: true
type: integer
produces:
- application/json
responses:
"200":
description: The link was successfully removed.
schema:
$ref: '#/definitions/models.Message'
"403":
description: Not allowed to remove the link.
schema:
$ref: '#/definitions/web.HTTPError'
"404":
description: Share Link not found.
schema:
$ref: '#/definitions/web.HTTPError'
"500":
description: Internal error
schema:
$ref: '#/definitions/models.Message'
security:
- JWTKeyAuth: []
summary: Remove a link share
tags:
- sharing
get:
consumes:
- application/json
description: Returns one link share by its ID.
parameters:
- description: List ID
in: path
name: list
required: true
type: integer
- description: Share ID
in: path
name: share
required: true
type: integer
produces:
- application/json
responses:
"200":
description: The share links
schema:
$ref: '#/definitions/models.LinkSharing'
"403":
description: No access to the list