2022-05-15 19:57:00 +00:00
// Package swagger GENERATED BY SWAG; DO NOT EDIT
2020-06-28 16:25:46 +02:00
// This file was generated by swaggo/swag
2019-02-17 19:53:04 +00:00
package swagger
2018-11-12 15:46:35 +00:00
2022-05-15 19:57:00 +00:00
import "github.com/swaggo/swag"
2018-11-12 15:46:35 +00:00
2022-05-15 19:57:00 +00:00
const docTemplate = ` {
2019-10-16 20:52:29 +00:00
"schemes" : { { marshal . Schemes } } ,
2018-11-12 15:46:35 +00:00
"swagger" : "2.0" ,
"info" : {
2021-09-26 12:44:37 +00:00
"description" : "{{escape .Description}}" ,
2019-10-16 20:52:29 +00:00
"title" : "{{.Title}}" ,
2019-01-03 22:22:06 +00:00
"contact" : {
"name" : "General Vikunja contact" ,
"url" : "http://vikunja.io/en/contact/" ,
"email" : "hello@vikunja.io"
} ,
2018-11-12 15:46:35 +00:00
"license" : {
2019-01-03 22:22:06 +00:00
"name" : "GPLv3" ,
"url" : "http://code.vikunja.io/api/src/branch/master/LICENSE"
2018-11-12 15:46:35 +00:00
} ,
"version" : "{{.Version}}"
} ,
"host" : "{{.Host}}" ,
2019-10-16 20:52:29 +00:00
"basePath" : "{{.BasePath}}" ,
2018-11-12 15:46:35 +00:00
"paths" : {
2020-11-21 16:38:58 +00:00
"/auth/openid/{provider}/callback" : {
"post" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"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." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"auth"
] ,
"summary" : "Authenticate a user with OpenID Connect" ,
"parameters" : [
{
"description" : "The openid callback" ,
"name" : "callback" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/openid.Callback"
}
} ,
{
"type" : "integer" ,
"description" : "The OpenID Connect provider key as returned by the /info endpoint" ,
"name" : "provider" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
"$ref" : "#/definitions/auth.Token"
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/backgrounds/unsplash/image/{image}" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Get an unsplash image. **Returns json on error.**" ,
"produces" : [
"application/octet-stream"
] ,
"tags" : [
"list"
] ,
"summary" : "Get an unsplash image" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Unsplash Image ID" ,
"name" : "thumb" ,
"in" : "path" ,
"required" : true
}
] ,
"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"
}
}
}
}
} ,
"/backgrounds/unsplash/image/{image}/thumb" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Get an unsplash thumbnail image. The thumbnail is cropped to a max width of 200px. **Returns json on error.**" ,
"produces" : [
"application/octet-stream"
] ,
"tags" : [
"list"
] ,
"summary" : "Get an unsplash thumbnail image" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Unsplash Image ID" ,
"name" : "thumb" ,
"in" : "path" ,
"required" : true
}
] ,
"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"
}
}
}
}
} ,
"/backgrounds/unsplash/search" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Search for a list background from unsplash" ,
"produces" : [
"application/json"
] ,
"tags" : [
"list"
] ,
"summary" : "Search for a background from unsplash" ,
"parameters" : [
{
"type" : "string" ,
"description" : "Search backgrounds from unsplash with this search term." ,
"name" : "s" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"description" : "The page number. Used for pagination. If not provided, the first page of results is returned." ,
"name" : "p" ,
"in" : "query"
}
] ,
"responses" : {
"200" : {
"description" : "An array with photos" ,
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/background.Image"
}
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-09-26 21:02:17 +00:00
"/filters" : {
"put" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Creates a new saved filter" ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"filter"
] ,
"summary" : "Creates a new saved filter" ,
"responses" : {
2021-05-26 21:56:31 +02:00
"201" : {
2020-09-26 21:02:17 +00:00
"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"
}
}
}
}
} ,
"/filters/{id}" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Returns a saved filter by its ID." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"filter"
] ,
"summary" : "Gets one saved filter" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Filter ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
}
] ,
"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"
}
}
}
} ,
"post" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Updates a saved filter by its ID." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"filter"
] ,
"summary" : "Updates a saved filter" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Filter ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
}
] ,
"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"
}
}
}
} ,
"delete" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Removes a saved filter by its ID." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"filter"
] ,
"summary" : "Removes a saved filter" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Filter ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
}
] ,
"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"
}
}
}
}
} ,
2019-07-15 22:54:38 +00:00
"/info" : {
"get" : {
2019-08-31 20:56:41 +00:00
"description" : "Returns the version, frontendurl, motd and various settings of Vikunja" ,
2019-07-15 22:54:38 +00:00
"produces" : [
"application/json"
] ,
"tags" : [
"service"
] ,
"summary" : "Info" ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
"$ref" : "#/definitions/v1.vikunjaInfos"
}
}
}
}
} ,
2018-12-31 01:18:41 +00:00
"/labels" : {
"get" : {
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-12-31 01:18:41 +00:00
}
] ,
2019-08-31 20:56:41 +00:00
"description" : "Returns all labels which are either created by the user or associated with a task the user has at least read-access to." ,
2018-12-31 01:18:41 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2019-08-31 20:56:41 +00:00
"labels"
2018-12-31 01:18:41 +00:00
] ,
2019-08-31 20:56:41 +00:00
"summary" : "Get all labels a user has access to" ,
2018-12-31 01:18:41 +00:00
"parameters" : [
{
"type" : "integer" ,
"description" : "The page number. Used for pagination. If not provided, the first page of results is returned." ,
2019-10-23 21:11:40 +00:00
"name" : "page" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"description" : "The maximum number of items per page. Note this parameter is limited by the configured maximum of items per page." ,
"name" : "per_page" ,
2018-12-31 01:18:41 +00:00
"in" : "query"
} ,
{
"type" : "string" ,
2019-08-31 20:56:41 +00:00
"description" : "Search labels by label text." ,
2018-12-31 01:18:41 +00:00
"name" : "s" ,
"in" : "query"
}
] ,
"responses" : {
"200" : {
2019-08-31 20:56:41 +00:00
"description" : "The labels" ,
2018-12-31 01:18:41 +00:00
"schema" : {
"type" : "array" ,
"items" : {
2019-08-31 20:56:41 +00:00
"$ref" : "#/definitions/models.Label"
2018-12-31 01:18:41 +00:00
}
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
"put" : {
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-12-31 01:18:41 +00:00
}
] ,
"description" : "Creates a new label." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"labels"
] ,
"summary" : "Create a label" ,
"parameters" : [
{
"description" : "The label object" ,
"name" : "label" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/models.Label"
}
}
] ,
"responses" : {
2021-05-26 21:56:31 +02:00
"201" : {
2018-12-31 01:18:41 +00:00
"description" : "The created label object." ,
"schema" : {
"$ref" : "#/definitions/models.Label"
}
} ,
"400" : {
"description" : "Invalid label object provided." ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-12-31 01:18:41 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
"/labels/{id}" : {
"get" : {
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-12-31 01:18:41 +00:00
}
] ,
"description" : "Returns one label by its ID." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"labels"
] ,
"summary" : "Gets one label" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Label ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "The label" ,
"schema" : {
"$ref" : "#/definitions/models.Label"
}
} ,
"403" : {
"description" : "The user does not have access to the label" ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-12-31 01:18:41 +00:00
}
} ,
"404" : {
"description" : "Label not found" ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-12-31 01:18:41 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
"put" : {
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-12-31 01:18:41 +00:00
}
] ,
"description" : "Update an existing label. The user needs to be the creator of the label to be able to do this." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"labels"
] ,
"summary" : "Update a label" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Label ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
} ,
{
"description" : "The label object" ,
"name" : "label" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/models.Label"
}
}
] ,
"responses" : {
"200" : {
"description" : "The created label object." ,
"schema" : {
"$ref" : "#/definitions/models.Label"
}
} ,
"400" : {
"description" : "Invalid label object provided." ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-12-31 01:18:41 +00:00
}
} ,
"403" : {
"description" : "Not allowed to update the label." ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-12-31 01:18:41 +00:00
}
} ,
"404" : {
"description" : "Label not found." ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-12-31 01:18:41 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
"delete" : {
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-12-31 01:18:41 +00:00
}
] ,
"description" : "Delete an existing label. The user needs to be the creator of the label to be able to do this." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"labels"
] ,
"summary" : "Delete a label" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Label ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "The label was successfully deleted." ,
"schema" : {
"$ref" : "#/definitions/models.Label"
}
} ,
"403" : {
"description" : "Not allowed to delete the label." ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-12-31 01:18:41 +00:00
}
} ,
"404" : {
"description" : "Label not found." ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-12-31 01:18:41 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2018-11-12 15:46:35 +00:00
"/lists" : {
"get" : {
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
"description" : "Returns all lists a user has access to." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"list"
] ,
"summary" : "Get all lists a user has access to" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "The page number. Used for pagination. If not provided, the first page of results is returned." ,
2019-10-23 21:11:40 +00:00
"name" : "page" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"description" : "The maximum number of items per page. Note this parameter is limited by the configured maximum of items per page." ,
"name" : "per_page" ,
2018-11-12 15:46:35 +00:00
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "Search lists by title." ,
"name" : "s" ,
"in" : "query"
2020-06-28 16:25:46 +02:00
} ,
{
"type" : "boolean" ,
"description" : "If true, also returns all archived lists." ,
"name" : "is_archived" ,
"in" : "query"
2018-11-12 15:46:35 +00:00
}
] ,
"responses" : {
"200" : {
"description" : "The lists" ,
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.List"
}
}
} ,
"403" : {
"description" : "The user does not have access to the list" ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
"/lists/{id}" : {
"get" : {
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2019-12-07 19:52:04 +00:00
"description" : "Returns a list by its ID." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2019-12-07 19:52:04 +00:00
"list"
2018-11-12 15:46:35 +00:00
] ,
2019-12-07 19:52:04 +00:00
"summary" : "Gets one list" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
2019-12-07 19:52:04 +00:00
"description" : "List ID" ,
2018-11-12 15:46:35 +00:00
"name" : "id" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
2019-12-07 19:52:04 +00:00
"description" : "The list" ,
2018-11-12 15:46:35 +00:00
"schema" : {
2019-12-07 19:52:04 +00:00
"$ref" : "#/definitions/models.List"
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
2019-12-07 19:52:04 +00:00
"description" : "The user does not have access to the list" ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
"put" : {
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
"description" : "Inserts a task into a list." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"task"
] ,
"summary" : "Create a task" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
} ,
{
"description" : "The task object" ,
"name" : "task" ,
"in" : "body" ,
"required" : true ,
"schema" : {
2019-08-14 20:19:04 +00:00
"$ref" : "#/definitions/models.Task"
2018-11-12 15:46:35 +00:00
}
}
] ,
"responses" : {
2021-05-26 21:56:31 +02:00
"201" : {
2018-11-12 15:46:35 +00:00
"description" : "The created task object." ,
"schema" : {
2019-08-14 20:19:04 +00:00
"$ref" : "#/definitions/models.Task"
2018-11-12 15:46:35 +00:00
}
} ,
"400" : {
"description" : "Invalid task object provided." ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
"description" : "The user does not have access to the list" ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
"post" : {
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
"description" : "Updates a list. This does not include adding a task (see below)." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"list"
] ,
"summary" : "Updates a list" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
} ,
{
"description" : "The list with updated values you want to update." ,
"name" : "list" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/models.List"
}
}
] ,
"responses" : {
"200" : {
"description" : "The updated list." ,
"schema" : {
"$ref" : "#/definitions/models.List"
}
} ,
"400" : {
"description" : "Invalid list object provided." ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
"description" : "The user does not have access to the list" ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
"delete" : {
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
"description" : "Delets a list" ,
"produces" : [
"application/json"
] ,
"tags" : [
"list"
] ,
"summary" : "Deletes a list" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "The list was successfully deleted." ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
} ,
"400" : {
"description" : "Invalid list object provided." ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
"description" : "The user does not have access to the list" ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
2019-07-18 16:38:21 +00:00
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/lists/{id}/background" : {
2019-07-18 16:38:21 +00:00
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Get the list background of a specific list. **Returns json on error.**" ,
2019-07-18 16:38:21 +00:00
"produces" : [
2020-06-28 16:25:46 +02:00
"application/octet-stream"
2019-07-18 16:38:21 +00:00
] ,
"tags" : [
"list"
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Get the list background" ,
2019-07-18 16:38:21 +00:00
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The list background file." ,
2019-07-18 16:38:21 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"type" : ""
2019-07-18 16:38:21 +00:00
}
2021-03-21 17:49:14 +01:00
} ,
"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"
}
}
}
} ,
"delete" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"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." ,
"produces" : [
"application/json"
] ,
"tags" : [
"list"
] ,
"summary" : "Remove a list background" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "The list" ,
"schema" : {
"$ref" : "#/definitions/models.List"
}
2019-07-18 16:38:21 +00:00
} ,
2020-06-28 16:25:46 +02:00
"403" : {
"description" : "No access to this list." ,
2019-07-18 16:38:21 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2019-07-18 16:38:21 +00:00
}
} ,
2020-06-28 16:25:46 +02:00
"404" : {
"description" : "The list does not exist." ,
2019-07-18 16:38:21 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2019-07-18 16:38:21 +00:00
}
} ,
"500" : {
2020-06-28 16:25:46 +02:00
"description" : "Internal error" ,
2019-07-18 16:38:21 +00:00
"schema" : {
2018-11-12 15:46:35 +00:00
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/lists/{id}/backgrounds/unsplash" : {
"post" : {
2018-11-12 15:46:35 +00:00
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Sets a photo from unsplash as list background." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"list"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Set an unsplash photo as list background" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
} ,
{
2020-06-28 16:25:46 +02:00
"description" : "The image you want to set as background" ,
"name" : "list" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/background.Image"
}
2018-11-12 15:46:35 +00:00
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The background has been successfully set." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.List"
}
} ,
"400" : {
"description" : "Invalid image object provided." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
2020-06-28 16:25:46 +02:00
"description" : "The user does not have access to the list" ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
}
} ,
"/lists/{id}/backgrounds/upload" : {
2018-11-12 15:46:35 +00:00
"put" : {
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Upload a list background." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
2020-06-28 16:25:46 +02:00
"multipart/form-data"
2018-11-12 15:46:35 +00:00
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"list"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Upload a list background" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
} ,
{
2020-06-28 16:25:46 +02:00
"type" : "string" ,
"description" : "The file as single file." ,
"name" : "background" ,
"in" : "formData" ,
"required" : true
2018-11-12 15:46:35 +00:00
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The background was set successfully." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2018-11-12 15:46:35 +00:00
}
} ,
2020-08-02 17:16:58 +00:00
"400" : {
"description" : "File is no image." ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
} ,
2018-11-12 15:46:35 +00:00
"403" : {
2020-06-28 16:25:46 +02:00
"description" : "File too large." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2018-11-12 15:46:35 +00:00
}
} ,
"404" : {
2020-06-28 16:25:46 +02:00
"description" : "The list does not exist." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/lists/{id}/buckets" : {
2018-11-12 15:46:35 +00:00
"get" : {
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Returns all kanban buckets with belong to a list including their tasks." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"task"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Get all kanban buckets of a list" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "List Id" ,
2018-11-12 15:46:35 +00:00
"name" : "id" ,
"in" : "path" ,
"required" : true
2020-12-22 12:38:05 +01:00
} ,
2021-03-10 10:59:10 +00:00
{
"type" : "integer" ,
"description" : "The page number for tasks. Used for pagination. If not provided, the first page of results is returned." ,
"name" : "page" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"description" : "The maximum number of tasks per bucket per page. This parameter is limited by the configured maximum of items per page." ,
"name" : "per_page" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "Search tasks by task text." ,
"name" : "s" ,
"in" : "query"
} ,
2020-12-22 12:38:05 +01:00
{
"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." ,
"name" : "filter_by" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "The value to filter for." ,
"name" : "filter_value" ,
"in" : "query"
} ,
{
"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 ` + " ` " + `" ,
"name" : "filter_comparator" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "The concatinator to use for filters. Available values are ` + " ` " + ` and ` + " ` " + ` or ` + " ` " + ` or ` + " ` " + `. Defaults to ` + " ` " + ` or ` + " ` " + `." ,
"name" : "filter_concat" ,
"in" : "query"
} ,
{
"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 ` + " ` " + `." ,
"name" : "filter_include_nulls" ,
"in" : "query"
2018-11-12 15:46:35 +00:00
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The buckets with their tasks" ,
2018-11-12 15:46:35 +00:00
"schema" : {
"type" : "array" ,
"items" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Bucket"
2018-11-12 15:46:35 +00:00
}
}
} ,
2020-06-28 16:25:46 +02:00
"500" : {
"description" : "Internal server error" ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2018-11-12 15:46:35 +00:00
}
}
}
} ,
"put" : {
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Creates a new kanban bucket on a list." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"task"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Create a new bucket" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "List Id" ,
2018-11-12 15:46:35 +00:00
"name" : "id" ,
"in" : "path" ,
"required" : true
} ,
{
2020-06-28 16:25:46 +02:00
"description" : "The bucket object" ,
"name" : "bucket" ,
2018-11-12 15:46:35 +00:00
"in" : "body" ,
"required" : true ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Bucket"
2018-11-12 15:46:35 +00:00
}
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The created bucket object." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Bucket"
2018-11-12 15:46:35 +00:00
}
} ,
"400" : {
2020-06-28 16:25:46 +02:00
"description" : "Invalid bucket object provided." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"404" : {
2020-06-28 16:25:46 +02:00
"description" : "The list does not exist." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/lists/{id}/listusers" : {
2019-11-29 22:59:20 +00:00
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Lists all users (without emailadresses). Also possible to search for a specific user." ,
2019-11-29 22:59:20 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"list"
2019-11-29 22:59:20 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Get users" ,
2019-11-29 22:59:20 +00:00
"parameters" : [
{
"type" : "string" ,
2020-06-28 16:25:46 +02:00
"description" : "Search for a user by its name." ,
2019-11-29 22:59:20 +00:00
"name" : "s" ,
"in" : "query"
} ,
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "List ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
2019-11-29 22:59:20 +00:00
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "All (found) users." ,
2019-11-29 22:59:20 +00:00
"schema" : {
"type" : "array" ,
"items" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/user.User"
2019-11-29 22:59:20 +00:00
}
}
} ,
2020-06-28 16:25:46 +02:00
"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"
}
} ,
2019-11-29 22:59:20 +00:00
"500" : {
2020-06-28 16:25:46 +02:00
"description" : "Internal server error." ,
2019-11-29 22:59:20 +00:00
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/lists/{id}/teams" : {
"get" : {
2018-11-12 15:46:35 +00:00
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Returns a list with all teams which have access on a given list." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"sharing"
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Get teams on a list" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
2020-06-28 16:25:46 +02:00
"name" : "id" ,
2018-11-12 15:46:35 +00:00
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "The page number. Used for pagination. If not provided, the first page of results is returned." ,
"name" : "page" ,
"in" : "query"
2018-11-12 15:46:35 +00:00
} ,
{
2020-06-28 16:25:46 +02:00
"type" : "integer" ,
"description" : "The maximum number of items per page. Note this parameter is limited by the configured maximum of items per page." ,
"name" : "per_page" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "Search teams by its name." ,
"name" : "s" ,
"in" : "query"
2018-11-12 15:46:35 +00:00
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The teams with their right." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.TeamWithRight"
}
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
2020-06-28 16:25:46 +02:00
"description" : "No right to see the list." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"put" : {
2018-11-12 15:46:35 +00:00
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Gives a team access to a list." ,
"consumes" : [
"application/json"
] ,
2018-11-12 15:46:35 +00:00
"produces" : [
"application/json"
] ,
"tags" : [
"sharing"
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Add a team to a list" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
2020-06-28 16:25:46 +02:00
"name" : "id" ,
2018-11-12 15:46:35 +00:00
"in" : "path" ,
"required" : true
} ,
{
2020-06-28 16:25:46 +02:00
"description" : "The team you want to add to the list." ,
"name" : "list" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/models.TeamList"
}
2018-11-12 15:46:35 +00:00
}
] ,
"responses" : {
2021-05-26 21:56:31 +02:00
"201" : {
2020-06-28 16:25:46 +02:00
"description" : "The created team\u003c-\u003elist relation." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.TeamList"
}
} ,
"400" : {
"description" : "Invalid team list object provided." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
"description" : "The user does not have access to the list" ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"404" : {
2020-06-28 16:25:46 +02:00
"description" : "The team does not exist." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/lists/{id}/users" : {
"get" : {
2018-11-12 15:46:35 +00:00
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Returns a list with all users which have access on a given list." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"sharing"
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Get users on a list" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
2020-06-28 16:25:46 +02:00
"name" : "id" ,
2018-11-12 15:46:35 +00:00
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "The page number. Used for pagination. If not provided, the first page of results is returned." ,
"name" : "page" ,
"in" : "query"
2018-11-12 15:46:35 +00:00
} ,
{
2020-06-28 16:25:46 +02:00
"type" : "integer" ,
"description" : "The maximum number of items per page. Note this parameter is limited by the configured maximum of items per page." ,
"name" : "per_page" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "Search users by its name." ,
"name" : "s" ,
"in" : "query"
2018-11-12 15:46:35 +00:00
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The users with the right they have." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.UserWithRight"
}
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
2020-06-28 16:25:46 +02:00
"description" : "No right to see the list." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"put" : {
2018-11-12 15:46:35 +00:00
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Gives a user access to a list." ,
"consumes" : [
"application/json"
] ,
2018-11-12 15:46:35 +00:00
"produces" : [
"application/json"
] ,
"tags" : [
"sharing"
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Add a user to a list" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
2020-06-28 16:25:46 +02:00
"name" : "id" ,
2018-11-12 15:46:35 +00:00
"in" : "path" ,
"required" : true
} ,
{
2020-06-28 16:25:46 +02:00
"description" : "The user you want to add to the list." ,
"name" : "list" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/models.ListUser"
}
2018-11-12 15:46:35 +00:00
}
] ,
"responses" : {
2021-05-26 21:56:31 +02:00
"201" : {
2020-06-28 16:25:46 +02:00
"description" : "The created user\u003c-\u003elist relation." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.ListUser"
}
} ,
"400" : {
"description" : "Invalid user list object provided." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
"description" : "The user does not have access to the list" ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"404" : {
2020-06-28 16:25:46 +02:00
"description" : "The user does not exist." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/lists/{listID}/buckets/{bucketID}" : {
"post" : {
2019-08-31 20:56:41 +00:00
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Updates an existing kanban bucket." ,
2019-08-31 20:56:41 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"task"
2019-08-31 20:56:41 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Update an existing bucket" ,
2019-08-31 20:56:41 +00:00
"parameters" : [
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "List Id" ,
"name" : "listID" ,
2019-08-31 20:56:41 +00:00
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "Bucket Id" ,
"name" : "bucketID" ,
"in" : "path" ,
"required" : true
2019-08-31 20:56:41 +00:00
} ,
{
2020-06-28 16:25:46 +02:00
"description" : "The bucket object" ,
"name" : "bucket" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/models.Bucket"
}
2019-08-31 20:56:41 +00:00
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The created bucket object." ,
2019-08-31 20:56:41 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Bucket"
}
} ,
"400" : {
"description" : "Invalid bucket object provided." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"404" : {
"description" : "The bucket does not exist." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
2019-08-31 20:56:41 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"delete" : {
2019-08-31 20:56:41 +00:00
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Deletes an existing kanban bucket and dissociates all of its task. It does not delete any tasks. You cannot delete the last bucket on a list." ,
2019-08-31 20:56:41 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"task"
2019-08-31 20:56:41 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Deletes an existing bucket" ,
2019-08-31 20:56:41 +00:00
"parameters" : [
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "List Id" ,
"name" : "listID" ,
2019-08-31 20:56:41 +00:00
"in" : "path" ,
"required" : true
} ,
{
2020-06-28 16:25:46 +02:00
"type" : "integer" ,
"description" : "Bucket Id" ,
"name" : "bucketID" ,
"in" : "path" ,
"required" : true
2019-08-31 20:56:41 +00:00
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "Successfully deleted." ,
2019-08-31 20:56:41 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2019-08-31 20:56:41 +00:00
}
} ,
2020-06-28 16:25:46 +02:00
"404" : {
"description" : "The bucket does not exist." ,
2019-08-31 20:56:41 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2019-08-31 20:56:41 +00:00
}
} ,
2020-06-28 16:25:46 +02:00
"500" : {
"description" : "Internal error" ,
2019-08-31 20:56:41 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2019-08-31 20:56:41 +00:00
}
2020-06-28 16:25:46 +02:00
}
}
}
} ,
2020-08-02 17:16:58 +00:00
"/lists/{listID}/duplicate" : {
"put" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Copies the list, tasks, files, kanban data, assignees, comments, attachments, lables, relations, backgrounds, user/team rights and link shares from one list to a new namespace. The user needs read access in the list and write access in the namespace of the new list." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"list"
] ,
"summary" : "Duplicate an existing list" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "The list ID to duplicate" ,
"name" : "listID" ,
"in" : "path" ,
"required" : true
} ,
{
"description" : "The target namespace which should hold the copied list." ,
"name" : "list" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/models.ListDuplicate"
}
}
] ,
"responses" : {
2021-05-26 21:56:31 +02:00
"201" : {
2020-08-02 17:16:58 +00:00
"description" : "The created list." ,
"schema" : {
"$ref" : "#/definitions/models.ListDuplicate"
}
} ,
"400" : {
"description" : "Invalid list duplicate object provided." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"403" : {
"description" : "The user does not have access to the list or namespace" ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/lists/{listID}/tasks" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Returns all tasks for the current list." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"task"
] ,
"summary" : "Get tasks in a list" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "The list ID." ,
"name" : "listID" ,
"in" : "path" ,
"required" : true
2019-08-31 20:56:41 +00:00
} ,
2020-06-28 16:25:46 +02:00
{
"type" : "integer" ,
"description" : "The page number. Used for pagination. If not provided, the first page of results is returned." ,
"name" : "page" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"description" : "The maximum number of items per page. Note this parameter is limited by the configured maximum of items per page." ,
"name" : "per_page" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "Search tasks by task text." ,
"name" : "s" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "The sorting parameter. You can pass this multiple times to get the tasks ordered by multiple different parametes, along with ` + " ` " + ` order_by ` + " ` " + `. Possible values to sort by are ` + " ` " + ` id ` + " ` " + `, ` + " ` " + ` title ` + " ` " + `, ` + " ` " + ` description ` + " ` " + `, ` + " ` " + ` done ` + " ` " + `, ` + " ` " + ` done_at ` + " ` " + `, ` + " ` " + ` due_date ` + " ` " + `, ` + " ` " + ` created_by_id ` + " ` " + `, ` + " ` " + ` list_id ` + " ` " + `, ` + " ` " + ` repeat_after ` + " ` " + `, ` + " ` " + ` priority ` + " ` " + `, ` + " ` " + ` start_date ` + " ` " + `, ` + " ` " + ` end_date ` + " ` " + `, ` + " ` " + ` hex_color ` + " ` " + `, ` + " ` " + ` percent_done ` + " ` " + `, ` + " ` " + ` uid ` + " ` " + `, ` + " ` " + ` created ` + " ` " + `, ` + " ` " + ` updated ` + " ` " + `. Default is ` + " ` " + ` id ` + " ` " + `." ,
"name" : "sort_by" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "The ordering parameter. Possible values to order by are ` + " ` " + ` asc ` + " ` " + ` or ` + " ` " + ` desc ` + " ` " + `. Default is ` + " ` " + ` asc ` + " ` " + `." ,
"name" : "order_by" ,
"in" : "query"
} ,
{
"type" : "string" ,
2020-12-21 23:13:15 +00:00
"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." ,
2020-06-28 16:25:46 +02:00
"name" : "filter_by" ,
"in" : "query"
} ,
{
"type" : "string" ,
2022-03-27 20:35:04 +00:00
"description" : "The value to filter for. You can use [grafana](https://grafana.com/docs/grafana/latest/dashboards/time-range-controls)- or [elasticsearch](https://www.elastic.co/guide/en/elasticsearch/reference/7.3/common-options.html#date-math)-style relative dates for all date fields like ` + " ` " + ` due_date ` + " ` " + `, ` + " ` " + ` start_date ` + " ` " + `, ` + " ` " + ` end_date ` + " ` " + `, etc." ,
2020-06-28 16:25:46 +02:00
"name" : "filter_value" ,
"in" : "query"
} ,
{
"type" : "string" ,
2020-12-19 21:39:11 +00:00
"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 ` + " ` " + `" ,
2020-06-28 16:25:46 +02:00
"name" : "filter_comparator" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "The concatinator to use for filters. Available values are ` + " ` " + ` and ` + " ` " + ` or ` + " ` " + ` or ` + " ` " + `. Defaults to ` + " ` " + ` or ` + " ` " + `." ,
"name" : "filter_concat" ,
"in" : "query"
} ,
{
"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 ` + " ` " + `." ,
"name" : "filter_include_nulls" ,
"in" : "query"
}
] ,
"responses" : {
"200" : {
"description" : "The tasks" ,
2019-08-31 20:56:41 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.Task"
}
2019-08-31 20:56:41 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/lists/{listID}/teams/{teamID}" : {
"post" : {
2019-08-31 20:56:41 +00:00
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Update a team \u003c-\u003e list relation. Mostly used to update the right that team has." ,
2019-08-31 20:56:41 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"sharing"
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Update a team \u003c-\u003e list relation" ,
2019-08-31 20:56:41 +00:00
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
2020-06-28 16:25:46 +02:00
"name" : "listID" ,
2019-08-31 20:56:41 +00:00
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "Team ID" ,
"name" : "teamID" ,
2019-08-31 20:56:41 +00:00
"in" : "path" ,
"required" : true
2020-06-28 16:25:46 +02:00
} ,
{
"description" : "The team you want to update." ,
"name" : "list" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/models.TeamList"
}
2019-08-31 20:56:41 +00:00
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The updated team \u003c-\u003e list relation." ,
2019-08-31 20:56:41 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.TeamList"
2019-08-31 20:56:41 +00:00
}
} ,
"403" : {
2020-06-28 16:25:46 +02:00
"description" : "The user does not have admin-access to the list" ,
2019-08-31 20:56:41 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2019-08-31 20:56:41 +00:00
}
} ,
"404" : {
2020-06-28 16:25:46 +02:00
"description" : "Team or list does not exist." ,
2019-08-31 20:56:41 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2019-08-31 20:56:41 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
"delete" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Delets a team from a list. The team won't have access to the list anymore." ,
2019-08-31 20:56:41 +00:00
"produces" : [
"application/json"
] ,
"tags" : [
"sharing"
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Delete a team from a list" ,
2019-08-31 20:56:41 +00:00
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
2020-06-28 16:25:46 +02:00
"name" : "listID" ,
2019-08-31 20:56:41 +00:00
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "Team ID" ,
"name" : "teamID" ,
2019-08-31 20:56:41 +00:00
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The team was successfully deleted." ,
2019-08-31 20:56:41 +00:00
"schema" : {
"$ref" : "#/definitions/models.Message"
}
} ,
"403" : {
2020-06-28 16:25:46 +02:00
"description" : "The user does not have access to the list" ,
2019-08-31 20:56:41 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2019-08-31 20:56:41 +00:00
}
} ,
"404" : {
2020-06-28 16:25:46 +02:00
"description" : "Team or list does not exist." ,
2019-08-31 20:56:41 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2019-08-31 20:56:41 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/lists/{listID}/users/{userID}" : {
2018-11-12 15:46:35 +00:00
"post" : {
2020-06-28 16:25:46 +02:00
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Update a user \u003c-\u003e list relation. Mostly used to update the right that user has." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"sharing"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Update a user \u003c-\u003e list relation" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
2020-06-28 16:25:46 +02:00
"type" : "integer" ,
"description" : "List ID" ,
"name" : "listID" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
"description" : "User ID" ,
"name" : "userID" ,
"in" : "path" ,
"required" : true
} ,
{
"description" : "The user you want to update." ,
"name" : "list" ,
2018-11-12 15:46:35 +00:00
"in" : "body" ,
"required" : true ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.ListUser"
2018-11-12 15:46:35 +00:00
}
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The updated user \u003c-\u003e list relation." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.ListUser"
2018-11-12 15:46:35 +00:00
}
} ,
2020-06-28 16:25:46 +02:00
"403" : {
"description" : "The user does not have admin-access to the list" ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
2020-06-28 16:25:46 +02:00
"404" : {
"description" : "User or list does not exist." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"500" : {
"description" : "Internal error" ,
2018-11-12 15:46:35 +00:00
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
} ,
"delete" : {
2020-01-19 16:52:16 +00:00
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Delets a user from a list. The user won't have access to the list anymore." ,
2020-01-19 16:52:16 +00:00
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"sharing"
2020-01-19 16:52:16 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Delete a user from a list" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
"name" : "listID" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
"description" : "User ID" ,
"name" : "userID" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "The user was successfully removed from the list." ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
} ,
"403" : {
"description" : "The user does not have access to the list" ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"404" : {
"description" : "user or list does not exist." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
"/lists/{list}/shares" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Returns all link shares which exist for a given list" ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"sharing"
] ,
"summary" : "Get all link shares for a list" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
"name" : "list" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
"description" : "The page number. Used for pagination. If not provided, the first page of results is returned." ,
"name" : "page" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"description" : "The maximum number of items per page. Note this parameter is limited by the configured maximum of items per page." ,
"name" : "per_page" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "Search shares by hash." ,
"name" : "s" ,
"in" : "query"
}
] ,
"responses" : {
"200" : {
"description" : "The share links" ,
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.LinkSharing"
}
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
"put" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Share a list via link. The user needs to have write-access to the list to be able do this." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"sharing"
] ,
"summary" : "Share a list via link" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
"name" : "list" ,
"in" : "path" ,
"required" : true
} ,
{
"description" : "The new link share object" ,
"name" : "label" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/models.LinkSharing"
}
}
] ,
"responses" : {
2021-05-26 21:56:31 +02:00
"201" : {
2020-06-28 16:25:46 +02:00
"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"
}
}
}
}
} ,
"/lists/{list}/shares/{share}" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Returns one link share by its ID." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"sharing"
] ,
"summary" : "Get one link shares for a list" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
"name" : "list" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
"description" : "Share ID" ,
"name" : "share" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "The share links" ,
"schema" : {
"$ref" : "#/definitions/models.LinkSharing"
}
} ,
"403" : {
"description" : "No access to the list" ,
"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"
}
}
}
} ,
"delete" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Remove a link share. The user needs to have write-access to the list to be able do this." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"sharing"
] ,
"summary" : "Remove a link share" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "List ID" ,
"name" : "list" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
"description" : "Share Link ID" ,
"name" : "share" ,
"in" : "path" ,
"required" : true
}
] ,
"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"
}
}
}
}
} ,
"/login" : {
"post" : {
"description" : "Logs a user in. Returns a JWT-Token to authenticate further requests." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"user"
] ,
"summary" : "Login" ,
"parameters" : [
{
"description" : "The login credentials" ,
"name" : "credentials" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/user.Login"
}
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2020-11-21 16:38:58 +00:00
"$ref" : "#/definitions/auth.Token"
2020-06-28 16:25:46 +02:00
}
} ,
"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"
}
}
}
}
} ,
2020-12-18 11:12:05 +00:00
"/migration/microsoft-todo/auth" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"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"
] ,
"tags" : [
"migration"
] ,
"summary" : "Get the auth url from Microsoft Todo" ,
"responses" : {
"200" : {
"description" : "The auth url." ,
"schema" : {
"$ref" : "#/definitions/handler.AuthURL"
}
} ,
"500" : {
"description" : "Internal server error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
"/migration/microsoft-todo/migrate" : {
"post" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Migrates all tasklinsts, tasks, notes and reminders from Microsoft Todo to Vikunja." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"migration"
] ,
"summary" : "Migrate all lists, tasks etc. from Microsoft Todo" ,
"parameters" : [
{
"description" : "The auth token previously obtained from the auth url. See the docs for /migration/microsoft-todo/auth." ,
"name" : "migrationCode" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/microsofttodo.Migration"
}
}
] ,
"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"
}
}
}
}
} ,
"/migration/microsoft-todo/status" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"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"
] ,
"tags" : [
"migration"
] ,
"summary" : "Get migration status" ,
"responses" : {
"200" : {
"description" : "The migration status" ,
"schema" : {
"$ref" : "#/definitions/migration.Status"
}
} ,
"500" : {
"description" : "Internal server error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/migration/todoist/auth" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"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"
] ,
"tags" : [
"migration"
] ,
"summary" : "Get the auth url from todoist" ,
"responses" : {
"200" : {
"description" : "The auth url." ,
"schema" : {
"$ref" : "#/definitions/handler.AuthURL"
}
} ,
"500" : {
"description" : "Internal server error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
"/migration/todoist/migrate" : {
"post" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Migrates all projects, tasks, notes, reminders, subtasks and files from todoist to vikunja." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"migration"
] ,
"summary" : "Migrate all lists, tasks etc. from todoist" ,
"parameters" : [
{
"description" : "The auth code previously obtained from the auth url. See the docs for /migration/todoist/auth." ,
"name" : "migrationCode" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/todoist.Migration"
}
}
] ,
"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"
}
}
}
}
} ,
"/migration/todoist/status" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"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"
] ,
"tags" : [
"migration"
] ,
"summary" : "Get migration status" ,
"responses" : {
"200" : {
"description" : "The migration status" ,
"schema" : {
"$ref" : "#/definitions/migration.Status"
}
} ,
"500" : {
"description" : "Internal server error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-12-17 13:44:04 +00:00
"/migration/trello/auth" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"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"
] ,
"tags" : [
"migration"
] ,
"summary" : "Get the auth url from trello" ,
"responses" : {
"200" : {
"description" : "The auth url." ,
"schema" : {
"$ref" : "#/definitions/handler.AuthURL"
}
} ,
"500" : {
"description" : "Internal server error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
"/migration/trello/migrate" : {
"post" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Migrates all projects, tasks, notes, reminders, subtasks and files from trello to vikunja." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"migration"
] ,
"summary" : "Migrate all lists, tasks etc. from trello" ,
"parameters" : [
{
"description" : "The auth token previously obtained from the auth url. See the docs for /migration/trello/auth." ,
"name" : "migrationCode" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/trello.Migration"
}
}
] ,
"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"
}
}
}
}
} ,
"/migration/trello/status" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"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"
] ,
"tags" : [
"migration"
] ,
"summary" : "Get migration status" ,
"responses" : {
"200" : {
"description" : "The migration status" ,
"schema" : {
"$ref" : "#/definitions/migration.Status"
}
} ,
"500" : {
"description" : "Internal server error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2021-09-04 19:26:31 +00:00
"/migration/vikunja-file/migrate" : {
"post" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Imports all projects, tasks, notes, reminders, subtasks and files from a Vikunjda data export into Vikunja." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"migration"
] ,
"summary" : "Import all lists, tasks etc. from a Vikunja data export" ,
"parameters" : [
{
"type" : "string" ,
"description" : "The Vikunja export zip file." ,
"name" : "import" ,
"in" : "formData" ,
"required" : true
}
] ,
"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"
}
}
}
}
} ,
"/migration/vikunja-file/status" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"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"
] ,
"tags" : [
"migration"
] ,
"summary" : "Get migration status" ,
"responses" : {
"200" : {
"description" : "The migration status" ,
"schema" : {
"$ref" : "#/definitions/migration.Status"
}
} ,
"500" : {
"description" : "Internal server error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/migration/wunderlist/auth" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Returns the auth url where the user needs to get its auth code. This code can then be used to migrate everything from wunderlist to Vikunja." ,
"produces" : [
"application/json"
] ,
"tags" : [
"migration"
] ,
"summary" : "Get the auth url from wunderlist" ,
"responses" : {
"200" : {
"description" : "The auth url." ,
"schema" : {
"$ref" : "#/definitions/handler.AuthURL"
}
} ,
"500" : {
"description" : "Internal server error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
"/migration/wunderlist/migrate" : {
"post" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Migrates all folders, lists, tasks, notes, reminders, subtasks and files from wunderlist to vikunja." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"migration"
] ,
"summary" : "Migrate all lists, tasks etc. from wunderlist" ,
"parameters" : [
{
"description" : "The auth code previously obtained from the auth url. See the docs for /migration/wunderlist/auth." ,
"name" : "migrationCode" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/wunderlist.Migration"
}
}
] ,
"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"
}
}
}
}
} ,
"/migration/wunderlist/status" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"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"
] ,
"tags" : [
"migration"
] ,
"summary" : "Get migration status" ,
"responses" : {
"200" : {
"description" : "The migration status" ,
"schema" : {
"$ref" : "#/definitions/migration.Status"
}
} ,
"500" : {
"description" : "Internal server error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
"/namespace/{id}" : {
"post" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Updates a namespace." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"namespace"
] ,
"summary" : "Updates a namespace" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Namespace ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
} ,
{
"description" : "The namespace with updated values you want to update." ,
"name" : "namespace" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/models.Namespace"
}
}
] ,
"responses" : {
"200" : {
"description" : "The updated namespace." ,
"schema" : {
"$ref" : "#/definitions/models.Namespace"
}
} ,
"400" : {
"description" : "Invalid namespace object provided." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"403" : {
"description" : "The user does not have access to the namespace" ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
"/namespaces" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Returns all namespaces a user has access to." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"namespace"
] ,
"summary" : "Get all namespaces a user has access to" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "The page number. Used for pagination. If not provided, the first page of results is returned." ,
"name" : "page" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"description" : "The maximum number of items per page. Note this parameter is limited by the configured maximum of items per page." ,
"name" : "per_page" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "Search namespaces by name." ,
"name" : "s" ,
"in" : "query"
} ,
{
"type" : "boolean" ,
"description" : "If true, also returns all archived namespaces." ,
"name" : "is_archived" ,
"in" : "query"
2020-12-21 23:13:15 +00:00
} ,
{
"type" : "boolean" ,
"description" : "If true, also returns only namespaces without their lists." ,
"name" : "namespaces_only" ,
"in" : "query"
2020-06-28 16:25:46 +02:00
}
] ,
"responses" : {
"200" : {
"description" : "The Namespaces." ,
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.NamespaceWithLists"
}
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
"put" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Creates a new namespace." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"namespace"
] ,
"summary" : "Creates a new namespace" ,
"parameters" : [
{
"description" : "The namespace you want to create." ,
"name" : "namespace" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/models.Namespace"
}
}
] ,
"responses" : {
2021-05-26 21:56:31 +02:00
"201" : {
2020-06-28 16:25:46 +02:00
"description" : "The created namespace." ,
"schema" : {
"$ref" : "#/definitions/models.Namespace"
}
} ,
"400" : {
"description" : "Invalid namespace object provided." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"403" : {
"description" : "The user does not have access to the namespace" ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
"/namespaces/{id}" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Returns a namespace by its ID." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"namespace"
] ,
"summary" : "Gets one namespace" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Namespace ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "The Namespace" ,
"schema" : {
"$ref" : "#/definitions/models.Namespace"
}
} ,
"403" : {
"description" : "The user does not have access to that namespace." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
"delete" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Delets a namespace" ,
"produces" : [
"application/json"
] ,
"tags" : [
"namespace"
] ,
"summary" : "Deletes a namespace" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Namespace ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "The namespace was successfully deleted." ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
} ,
"400" : {
"description" : "Invalid namespace object provided." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"403" : {
"description" : "The user does not have access to the namespace" ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
"/namespaces/{id}/lists" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Returns all lists inside of a namespace." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"namespace"
] ,
"summary" : "Get all lists in a namespace" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Namespace ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "The lists." ,
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.List"
}
}
} ,
"403" : {
"description" : "No access to that namespace." ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
} ,
"404" : {
"description" : "The namespace does not exist." ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
"/namespaces/{id}/teams" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Returns a namespace with all teams which have access on a given namespace." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"sharing"
] ,
"summary" : "Get teams on a namespace" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Namespace ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
"description" : "The page number. Used for pagination. If not provided, the first page of results is returned." ,
"name" : "page" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"description" : "The maximum number of items per page. Note this parameter is limited by the configured maximum of items per page." ,
"name" : "per_page" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "Search teams by its name." ,
"name" : "s" ,
"in" : "query"
}
] ,
"responses" : {
"200" : {
"description" : "The teams with the right they have." ,
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.TeamWithRight"
}
}
} ,
"403" : {
"description" : "No right to see the namespace." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
"put" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Gives a team access to a namespace." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"sharing"
] ,
"summary" : "Add a team to a namespace" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Namespace ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
} ,
{
"description" : "The team you want to add to the namespace." ,
"name" : "namespace" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/models.TeamNamespace"
}
}
] ,
"responses" : {
2021-05-26 21:56:31 +02:00
"201" : {
2020-06-28 16:25:46 +02:00
"description" : "The created team\u003c-\u003enamespace relation." ,
"schema" : {
"$ref" : "#/definitions/models.TeamNamespace"
}
} ,
"400" : {
"description" : "Invalid team namespace object provided." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"403" : {
"description" : "The team does not have access to the namespace" ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"404" : {
"description" : "The team does not exist." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
2020-01-19 16:52:16 +00:00
}
} ,
"500" : {
2020-06-28 16:25:46 +02:00
"description" : "Internal error" ,
2020-01-19 16:52:16 +00:00
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/namespaces/{id}/users" : {
"get" : {
2020-01-19 16:52:16 +00:00
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Returns a namespace with all users which have access on a given namespace." ,
2020-01-19 16:52:16 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"sharing"
2020-01-19 16:52:16 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Get users on a namespace" ,
2020-01-19 16:52:16 +00:00
"parameters" : [
{
2020-06-28 16:25:46 +02:00
"type" : "integer" ,
"description" : "Namespace ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
"description" : "The page number. Used for pagination. If not provided, the first page of results is returned." ,
"name" : "page" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"description" : "The maximum number of items per page. Note this parameter is limited by the configured maximum of items per page." ,
"name" : "per_page" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "Search users by its name." ,
"name" : "s" ,
"in" : "query"
2020-01-19 16:52:16 +00:00
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The users with the right they have." ,
2020-01-19 16:52:16 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.UserWithRight"
}
}
} ,
"403" : {
"description" : "No right to see the namespace." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
2020-01-19 16:52:16 +00:00
}
} ,
"500" : {
2020-06-28 16:25:46 +02:00
"description" : "Internal error" ,
2020-01-19 16:52:16 +00:00
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
} ,
"put" : {
2020-01-20 19:48:46 +00:00
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Gives a user access to a namespace." ,
"consumes" : [
"application/json"
] ,
2020-01-20 19:48:46 +00:00
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"sharing"
] ,
"summary" : "Add a user to a namespace" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Namespace ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
} ,
{
"description" : "The user you want to add to the namespace." ,
"name" : "namespace" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/models.NamespaceUser"
}
}
2020-01-20 19:48:46 +00:00
] ,
"responses" : {
2021-05-26 21:56:31 +02:00
"201" : {
2020-06-28 16:25:46 +02:00
"description" : "The created user\u003c-\u003enamespace relation." ,
2020-01-20 19:48:46 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.NamespaceUser"
}
} ,
"400" : {
"description" : "Invalid user namespace object provided." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"403" : {
"description" : "The user does not have access to the namespace" ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"404" : {
"description" : "The user does not exist." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
2020-01-20 19:48:46 +00:00
}
} ,
"500" : {
2020-06-28 16:25:46 +02:00
"description" : "Internal error" ,
2020-01-20 19:48:46 +00:00
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/namespaces/{namespaceID}/lists" : {
"put" : {
2018-11-12 15:46:35 +00:00
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Creates a new list in a given namespace. The user needs write-access to the namespace." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"list"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Creates a new list" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
"description" : "Namespace ID" ,
2020-06-28 16:25:46 +02:00
"name" : "namespaceID" ,
2018-11-12 15:46:35 +00:00
"in" : "path" ,
"required" : true
} ,
{
2020-06-28 16:25:46 +02:00
"description" : "The list you want to create." ,
"name" : "list" ,
2018-11-12 15:46:35 +00:00
"in" : "body" ,
"required" : true ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.List"
2018-11-12 15:46:35 +00:00
}
}
] ,
"responses" : {
2021-05-26 21:56:31 +02:00
"201" : {
2020-06-28 16:25:46 +02:00
"description" : "The created list." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.List"
2018-11-12 15:46:35 +00:00
}
} ,
"400" : {
2020-06-28 16:25:46 +02:00
"description" : "Invalid list object provided." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
2020-06-28 16:25:46 +02:00
"description" : "The user does not have access to the list" ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/namespaces/{namespaceID}/teams/{teamID}" : {
"post" : {
2018-11-12 15:46:35 +00:00
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Update a team \u003c-\u003e namespace relation. Mostly used to update the right that team has." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"sharing"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Update a team \u003c-\u003e namespace relation" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "Namespace ID" ,
"name" : "namespaceID" ,
"in" : "path" ,
"required" : true
2019-10-23 21:11:40 +00:00
} ,
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "Team ID" ,
"name" : "teamID" ,
"in" : "path" ,
"required" : true
2018-11-12 15:46:35 +00:00
} ,
{
2020-06-28 16:25:46 +02:00
"description" : "The team you want to update." ,
"name" : "namespace" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/models.TeamNamespace"
}
2018-11-12 15:46:35 +00:00
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The updated team \u003c-\u003e namespace relation." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.TeamNamespace"
}
} ,
"403" : {
"description" : "The team does not have admin-access to the namespace" ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"404" : {
"description" : "Team or namespace does not exist." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"delete" : {
2018-11-12 15:46:35 +00:00
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Delets a team from a namespace. The team won't have access to the namespace anymore." ,
"produces" : [
"application/json"
] ,
"tags" : [
"sharing"
] ,
"summary" : "Delete a team from a namespace" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Namespace ID" ,
"name" : "namespaceID" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
"description" : "team ID" ,
"name" : "teamID" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "The team was successfully deleted." ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
} ,
"403" : {
"description" : "The team does not have access to the namespace" ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"404" : {
"description" : "team or namespace does not exist." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
"/namespaces/{namespaceID}/users/{userID}" : {
"post" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Update a user \u003c-\u003e namespace relation. Mostly used to update the right that user has." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"sharing"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Update a user \u003c-\u003e namespace relation" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
2020-06-28 16:25:46 +02:00
"type" : "integer" ,
"description" : "Namespace ID" ,
"name" : "namespaceID" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
"description" : "User ID" ,
"name" : "userID" ,
"in" : "path" ,
"required" : true
} ,
{
"description" : "The user you want to update." ,
2018-11-12 15:46:35 +00:00
"name" : "namespace" ,
"in" : "body" ,
"required" : true ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.NamespaceUser"
2018-11-12 15:46:35 +00:00
}
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The updated user \u003c-\u003e namespace relation." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.NamespaceUser"
2018-11-12 15:46:35 +00:00
}
} ,
2020-06-28 16:25:46 +02:00
"403" : {
"description" : "The user does not have admin-access to the namespace" ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
2020-06-28 16:25:46 +02:00
"404" : {
"description" : "User or namespace does not exist." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
} ,
"delete" : {
2018-11-12 15:46:35 +00:00
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Delets a user from a namespace. The user won't have access to the namespace anymore." ,
2018-11-12 15:46:35 +00:00
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"sharing"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Delete a user from a namespace" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
"description" : "Namespace ID" ,
2020-06-28 16:25:46 +02:00
"name" : "namespaceID" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
"description" : "user ID" ,
"name" : "userID" ,
2018-11-12 15:46:35 +00:00
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The user was successfully deleted." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
2020-06-28 16:25:46 +02:00
"description" : "The user does not have access to the namespace" ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"404" : {
"description" : "user or namespace does not exist." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
}
} ,
2021-02-21 14:50:34 +00:00
"/notifications" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Returns an array with all notifications for the current user." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"subscriptions"
] ,
"summary" : "Get all notifications for the current user" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "The page number. Used for pagination. If not provided, the first page of results is returned." ,
"name" : "page" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"description" : "The maximum number of items per page. Note this parameter is limited by the configured maximum of items per page." ,
"name" : "per_page" ,
"in" : "query"
}
] ,
"responses" : {
"200" : {
"description" : "The notifications" ,
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/notifications.DatabaseNotification"
}
}
} ,
"403" : {
"description" : "Link shares cannot have notifications." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
"/notifications/{id}" : {
"post" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Marks a notification as either read or unread. A user can only mark their own notifications as read." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"subscriptions"
] ,
"summary" : "Mark a notification as (un-)read" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Notification ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
}
] ,
"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"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/register" : {
"post" : {
"description" : "Creates a new user account." ,
"consumes" : [
"application/json"
2018-11-12 15:46:35 +00:00
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"user"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Register" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
2020-06-28 16:25:46 +02:00
"description" : "The user credentials" ,
"name" : "credentials" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/user.APIUserPassword"
}
2018-11-12 15:46:35 +00:00
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "OK" ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/user.User"
2018-11-12 15:46:35 +00:00
}
} ,
"400" : {
2020-06-28 16:25:46 +02:00
"description" : "No or invalid user register object provided / User already exists." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/shares/{share}/auth" : {
"post" : {
"description" : "Get a jwt auth token for a shared list from a share hash." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"sharing"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Get an auth token for a share" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
2021-04-11 13:17:50 +00:00
{
"description" : "The password for link shares which require one." ,
"name" : "password" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/v1.LinkShareAuth"
}
} ,
2018-11-12 15:46:35 +00:00
{
2020-06-28 16:25:46 +02:00
"type" : "string" ,
"description" : "The share hash" ,
"name" : "share" ,
2018-11-12 15:46:35 +00:00
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The valid jwt auth token." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-11-21 16:38:58 +00:00
"$ref" : "#/definitions/auth.Token"
2018-11-12 15:46:35 +00:00
}
} ,
2020-06-28 16:25:46 +02:00
"400" : {
"description" : "Invalid link share object provided." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2021-02-14 19:18:14 +00:00
"/subscriptions/{entity}/{entityID}" : {
"put" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Subscribes the current user to an entity." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"subscriptions"
] ,
"summary" : "Subscribes the current user to an entity." ,
"parameters" : [
{
"type" : "string" ,
"description" : "The entity the user subscribes to. Can be either ` + " ` " + ` namespace ` + " ` " + `, ` + " ` " + ` list ` + " ` " + ` or ` + " ` " + ` task ` + " ` " + `." ,
"name" : "entity" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "The numeric id of the entity to subscribe to." ,
"name" : "entityID" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
2021-05-26 21:56:31 +02:00
"201" : {
2021-02-14 19:18:14 +00:00
"description" : "The subscription" ,
"schema" : {
"$ref" : "#/definitions/models.Subscription"
}
} ,
"403" : {
"description" : "The user does not have access to subscribe to this entity." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"412" : {
"description" : "The subscription entity is invalid." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
"delete" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Unsubscribes the current user to an entity." ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"subscriptions"
] ,
"summary" : "Unsubscribe the current user from an entity." ,
"parameters" : [
{
"type" : "string" ,
"description" : "The entity the user subscribed to. Can be either ` + " ` " + ` namespace ` + " ` " + `, ` + " ` " + ` list ` + " ` " + ` or ` + " ` " + ` task ` + " ` " + `." ,
"name" : "entity" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "The numeric id of the subscribed entity to." ,
"name" : "entityID" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "The subscription" ,
"schema" : {
"$ref" : "#/definitions/models.Subscription"
}
} ,
"403" : {
"description" : "The user does not have access to subscribe to this entity." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"404" : {
"description" : "The subscription does not exist." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/tasks/all" : {
2018-11-12 15:46:35 +00:00
"get" : {
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Returns all tasks on any list the user has access to." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"task"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Get tasks" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
"description" : "The page number. Used for pagination. If not provided, the first page of results is returned." ,
2019-10-23 21:11:40 +00:00
"name" : "page" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"description" : "The maximum number of items per page. Note this parameter is limited by the configured maximum of items per page." ,
"name" : "per_page" ,
2018-11-12 15:46:35 +00:00
"in" : "query"
} ,
{
"type" : "string" ,
2020-06-28 16:25:46 +02:00
"description" : "Search tasks by task text." ,
2018-11-12 15:46:35 +00:00
"name" : "s" ,
"in" : "query"
2020-06-28 16:25:46 +02:00
} ,
{
"type" : "string" ,
2020-12-19 21:39:11 +00:00
"description" : "The sorting parameter. You can pass this multiple times to get the tasks ordered by multiple different parametes, along with ` + " ` " + ` order_by ` + " ` " + `. Possible values to sort by are ` + " ` " + ` id ` + " ` " + `, ` + " ` " + ` title ` + " ` " + `, ` + " ` " + ` description ` + " ` " + `, ` + " ` " + ` done ` + " ` " + `, ` + " ` " + ` done_at ` + " ` " + `, ` + " ` " + ` due_date ` + " ` " + `, ` + " ` " + ` created_by_id ` + " ` " + `, ` + " ` " + ` list_id ` + " ` " + `, ` + " ` " + ` repeat_after ` + " ` " + `, ` + " ` " + ` priority ` + " ` " + `, ` + " ` " + ` start_date ` + " ` " + `, ` + " ` " + ` end_date ` + " ` " + `, ` + " ` " + ` hex_color ` + " ` " + `, ` + " ` " + ` percent_done ` + " ` " + `, ` + " ` " + ` uid ` + " ` " + `, ` + " ` " + ` created ` + " ` " + `, ` + " ` " + ` updated ` + " ` " + `. Default is ` + " ` " + ` id ` + " ` " + `." ,
2020-06-28 16:25:46 +02:00
"name" : "sort_by" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "The ordering parameter. Possible values to order by are ` + " ` " + ` asc ` + " ` " + ` or ` + " ` " + ` desc ` + " ` " + `. Default is ` + " ` " + ` asc ` + " ` " + `." ,
"name" : "order_by" ,
"in" : "query"
} ,
{
"type" : "string" ,
2020-12-21 23:13:15 +00:00
"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." ,
2020-06-28 16:25:46 +02:00
"name" : "filter_by" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "The value to filter for." ,
"name" : "filter_value" ,
"in" : "query"
} ,
{
"type" : "string" ,
2020-12-19 21:39:11 +00:00
"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 ` + " ` " + `" ,
2020-06-28 16:25:46 +02:00
"name" : "filter_comparator" ,
"in" : "query"
} ,
{
"type" : "string" ,
"description" : "The concatinator to use for filters. Available values are ` + " ` " + ` and ` + " ` " + ` or ` + " ` " + ` or ` + " ` " + `. Defaults to ` + " ` " + ` or ` + " ` " + `." ,
"name" : "filter_concat" ,
"in" : "query"
2020-12-19 21:39:11 +00:00
} ,
{
"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 ` + " ` " + `." ,
"name" : "filter_include_nulls" ,
"in" : "query"
2018-11-12 15:46:35 +00:00
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The tasks" ,
2018-11-12 15:46:35 +00:00
"schema" : {
"type" : "array" ,
"items" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Task"
2018-11-12 15:46:35 +00:00
}
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
}
} ,
"/tasks/bulk" : {
"post" : {
2018-11-12 15:46:35 +00:00
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Updates a bunch of tasks at once. This includes marking them as done. Note: although you could supply another ID, it will be ignored. Use task_ids instead." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"task"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Update a bunch of tasks at once" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
2020-06-28 16:25:46 +02:00
"description" : "The task object. Looks like a normal task, the only difference is it uses an array of list_ids to update." ,
"name" : "task" ,
2018-11-12 15:46:35 +00:00
"in" : "body" ,
"required" : true ,
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.BulkTask"
2018-11-12 15:46:35 +00:00
}
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The updated task object." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Task"
2018-11-12 15:46:35 +00:00
}
} ,
"400" : {
2020-06-28 16:25:46 +02:00
"description" : "Invalid task object provided." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
2020-06-28 16:25:46 +02:00
"description" : "The user does not have access to the task (aka its list)" ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
"/tasks/{ID}" : {
"get" : {
"security" : [
{
"JWTKeyAuth" : [ ]
}
] ,
"description" : "Returns one task by its ID" ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"task"
] ,
"summary" : "Get one task" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "The task ID" ,
"name" : "ID" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "The task" ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Task"
2018-11-12 15:46:35 +00:00
}
} ,
"404" : {
2020-06-28 16:25:46 +02:00
"description" : "Task not found" ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/tasks/{id}" : {
"post" : {
2018-11-12 15:46:35 +00:00
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Updates a task. This includes marking it as done. Assignees you pass will be updated, see their individual endpoints for more details on how this is done. To update labels, see the description of the endpoint." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"task"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Update a task" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "Task ID" ,
2018-11-12 15:46:35 +00:00
"name" : "id" ,
"in" : "path" ,
"required" : true
} ,
{
2020-06-28 16:25:46 +02:00
"description" : "The task object" ,
"name" : "task" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/models.Task"
}
2018-11-12 15:46:35 +00:00
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The updated task object." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Task"
}
} ,
"400" : {
"description" : "Invalid task object provided." ,
"schema" : {
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
2020-06-28 16:25:46 +02:00
"description" : "The user does not have access to the task (aka its list)" ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"delete" : {
2018-11-12 15:46:35 +00:00
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Deletes a task from a list. This does not mean \"mark it done\"." ,
2018-11-12 15:46:35 +00:00
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"task"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Delete a task" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "Task ID" ,
2018-11-12 15:46:35 +00:00
"name" : "id" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The created task object." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2018-11-12 15:46:35 +00:00
}
} ,
"400" : {
2020-06-28 16:25:46 +02:00
"description" : "Invalid task ID provided." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
2020-06-28 16:25:46 +02:00
"description" : "The user does not have access to the list" ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/web.HTTPError"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
}
} ,
2020-06-28 16:25:46 +02:00
"/tasks/{id}/attachments" : {
"get" : {
2018-11-12 15:46:35 +00:00
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Get all task attachments for one task." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"task"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Get all attachments for one task." ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "Task ID" ,
"name" : "id" ,
2018-11-12 15:46:35 +00:00
"in" : "path" ,
"required" : true
} ,
{
2020-06-28 16:25:46 +02:00
"type" : "integer" ,
"description" : "The page number. Used for pagination. If not provided, the first page of results is returned." ,
"name" : "page" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"description" : "The maximum number of items per page. Note this parameter is limited by the configured maximum of items per page." ,
"name" : "per_page" ,
"in" : "query"
2018-11-12 15:46:35 +00:00
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "All attachments for this task" ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.TaskAttachment"
}
2018-11-12 15:46:35 +00:00
}
} ,
2020-06-28 16:25:46 +02:00
"403" : {
"description" : "No access to this task." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2018-11-12 15:46:35 +00:00
}
} ,
2020-06-28 16:25:46 +02:00
"404" : {
"description" : "The task does not exist." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
} ,
"put" : {
2018-11-12 15:46:35 +00:00
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Upload a task attachment. You can pass multiple files with the files form param." ,
2018-11-12 15:46:35 +00:00
"consumes" : [
2020-06-28 16:25:46 +02:00
"multipart/form-data"
2018-11-12 15:46:35 +00:00
] ,
"produces" : [
"application/json"
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"task"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Upload a task attachment" ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "Task ID" ,
"name" : "id" ,
2018-11-12 15:46:35 +00:00
"in" : "path" ,
"required" : true
} ,
{
2020-06-28 16:25:46 +02:00
"type" : "string" ,
"description" : "The file, as multipart form file. You can pass multiple." ,
"name" : "files" ,
"in" : "formData" ,
2018-11-12 15:46:35 +00:00
"required" : true
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "Attachments were uploaded successfully." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
2020-06-28 16:25:46 +02:00
"description" : "No access to the task." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2018-11-12 15:46:35 +00:00
}
} ,
"404" : {
2020-06-28 16:25:46 +02:00
"description" : "The task does not exist." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {
"description" : "Internal error" ,
"schema" : {
"$ref" : "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
}
} ,
"/tasks/{id}/attachments/{attachmentID}" : {
"get" : {
2018-11-12 15:46:35 +00:00
"security" : [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth" : [ ]
2018-11-12 15:46:35 +00:00
}
] ,
2020-06-28 16:25:46 +02:00
"description" : "Get one attachment for download. **Returns json on error.**" ,
2018-11-12 15:46:35 +00:00
"produces" : [
2020-06-28 16:25:46 +02:00
"application/octet-stream"
2018-11-12 15:46:35 +00:00
] ,
"tags" : [
2020-06-28 16:25:46 +02:00
"task"
2018-11-12 15:46:35 +00:00
] ,
2020-06-28 16:25:46 +02:00
"summary" : "Get one attachment." ,
2018-11-12 15:46:35 +00:00
"parameters" : [
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "Task ID" ,
"name" : "id" ,
2018-11-12 15:46:35 +00:00
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
2020-06-28 16:25:46 +02:00
"description" : "Attachment ID" ,
"name" : "attachmentID" ,
2018-11-12 15:46:35 +00:00
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
2020-06-28 16:25:46 +02:00
"description" : "The attachment file." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"type" : ""
2018-11-12 15:46:35 +00:00
}
} ,
"403" : {
2020-06-28 16:25:46 +02:00
"description" : "No access to this task." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2018-11-12 15:46:35 +00:00
}
} ,
"404" : {
2020-06-28 16:25:46 +02:00
"description" : "The task does not exist." ,
2018-11-12 15:46:35 +00:00
"schema" : {
2020-06-28 16:25:46 +02:00
"$ref" : "#/definitions/models.Message"
2018-11-12 15:46:35 +00:00
}
} ,
"500" : {