vikunja/pkg/swagger/docs.go

7977 lines
292 KiB
Go
Raw Normal View History

// GENERATED BY THE COMMAND ABOVE; 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
import (
"bytes"
2019-10-16 20:52:29 +00:00
"encoding/json"
"strings"
"github.com/alecthomas/template"
"github.com/swaggo/swag"
)
var doc = `{
2019-10-16 20:52:29 +00:00
"schemes": {{ marshal .Schemes }},
"swagger": "2.0",
"info": {
2019-10-16 20:52:29 +00:00
"description": "{{.Description}}",
"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"
},
"license": {
2019-01-03 22:22:06 +00:00
"name": "GPLv3",
"url": "http://code.vikunja.io/api/src/branch/master/LICENSE"
},
"version": "{{.Version}}"
},
"host": "{{.Host}}",
2019-10-16 20:52:29 +00:00
"basePath": "{{.BasePath}}",
"paths": {
"/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"
}
}
}
}
},
"/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": {
"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"
}
}
}
}
},
"/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": {
"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
}
],
"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": [
"labels"
2018-12-31 01:18: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",
"description": "Search labels by label text.",
2018-12-31 01:18:41 +00:00
"name": "s",
"in": "query"
}
],
"responses": {
"200": {
"description": "The labels",
2018-12-31 01:18:41 +00:00
"schema": {
"type": "array",
"items": {
"$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": {
"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
}
},
"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"
}
}
}
}
},
"/lists": {
"get": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
"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",
"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"
}
],
"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"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
"/lists/{id}": {
"get": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2019-12-07 19:52:04 +00:00
"description": "Returns a list by its ID.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2019-12-07 19:52:04 +00:00
"list"
],
2019-12-07 19:52:04 +00:00
"summary": "Gets one list",
"parameters": [
{
"type": "integer",
2019-12-07 19:52:04 +00:00
"description": "List ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
2019-12-07 19:52:04 +00:00
"description": "The list",
"schema": {
2019-12-07 19:52:04 +00:00
"$ref": "#/definitions/models.List"
}
},
"403": {
2019-12-07 19:52:04 +00:00
"description": "The user does not have access to the list",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
},
"put": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
"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"
}
}
],
"responses": {
"200": {
"description": "The created task object.",
"schema": {
2019-08-14 20:19:04 +00:00
"$ref": "#/definitions/models.Task"
}
},
"400": {
"description": "Invalid task object provided.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"403": {
"description": "The user does not have access to the list",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
},
"post": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
"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"
}
},
"403": {
"description": "The user does not have access to the list",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
},
"delete": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
"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"
}
},
"403": {
"description": "The user does not have access to the list",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/lists/{id}/background": {
"get": {
"security": [
{
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Get the list background of a specific list. **Returns json on error.**",
"produces": [
2020-06-28 16:25:46 +02:00
"application/octet-stream"
],
"tags": [
"list"
],
2020-06-28 16:25:46 +02:00
"summary": "Get the list background",
"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.",
"schema": {
2020-06-28 16:25:46 +02:00
"type": ""
}
},
2020-06-28 16:25:46 +02:00
"403": {
"description": "No access to this list.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
2020-06-28 16:25:46 +02:00
"404": {
"description": "The list does not exist.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"500": {
2020-06-28 16:25:46 +02:00
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/lists/{id}/backgrounds/unsplash": {
"post": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Sets a photo from unsplash as list background.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"list"
],
2020-06-28 16:25:46 +02:00
"summary": "Set an unsplash photo as list background",
"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"
}
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The background has been successfully set.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.List"
}
},
"400": {
"description": "Invalid image object provided.",
"schema": {
"$ref": "#/definitions/web.HTTPError"
}
},
"403": {
2020-06-28 16:25:46 +02:00
"description": "The user does not have access to the list",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
}
},
"/lists/{id}/backgrounds/upload": {
"put": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Upload a list background.",
"consumes": [
2020-06-28 16:25:46 +02:00
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"list"
],
2020-06-28 16:25:46 +02:00
"summary": "Upload a list background",
"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
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The background was set successfully.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"400": {
"description": "File is no image.",
"schema": {
"$ref": "#/definitions/models.Message"
}
},
"403": {
2020-06-28 16:25:46 +02:00
"description": "File too large.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"404": {
2020-06-28 16:25:46 +02:00
"description": "The list does not exist.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/lists/{id}/buckets": {
"get": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Returns all kanban buckets with belong to a list including their tasks.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Get all kanban buckets of a list",
"parameters": [
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "List Id",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The buckets with their tasks",
"schema": {
"type": "array",
"items": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Bucket"
}
}
},
2020-06-28 16:25:46 +02:00
"500": {
"description": "Internal server error",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
}
}
},
"put": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Creates a new kanban bucket on a list.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Create a new bucket",
"parameters": [
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "List Id",
"name": "id",
"in": "path",
"required": true
},
{
2020-06-28 16:25:46 +02:00
"description": "The bucket object",
"name": "bucket",
"in": "body",
"required": true,
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Bucket"
}
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The created bucket object.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Bucket"
}
},
"400": {
2020-06-28 16:25:46 +02:00
"description": "Invalid bucket object provided.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"404": {
2020-06-28 16:25:46 +02:00
"description": "The list does not exist.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"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": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Returns a list with all teams which have access on a given list.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"sharing"
],
2020-06-28 16:25:46 +02:00
"summary": "Get teams on a list",
"parameters": [
{
"type": "integer",
"description": "List ID",
2020-06-28 16:25:46 +02:00
"name": "id",
"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"
},
{
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"
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The teams with their right.",
"schema": {
2020-06-28 16:25:46 +02:00
"type": "array",
"items": {
"$ref": "#/definitions/models.TeamWithRight"
}
}
},
"403": {
2020-06-28 16:25:46 +02:00
"description": "No right to see the list.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
},
2020-06-28 16:25:46 +02:00
"put": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Gives a team access to a list.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"sharing"
],
2020-06-28 16:25:46 +02:00
"summary": "Add a team to a list",
"parameters": [
{
"type": "integer",
"description": "List ID",
2020-06-28 16:25:46 +02:00
"name": "id",
"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"
}
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The created team\u003c-\u003elist relation.",
"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"
}
},
"403": {
"description": "The user does not have access to the list",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"404": {
2020-06-28 16:25:46 +02:00
"description": "The team does not exist.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/lists/{id}/users": {
"get": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Returns a list with all users which have access on a given list.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"sharing"
],
2020-06-28 16:25:46 +02:00
"summary": "Get users on a list",
"parameters": [
{
"type": "integer",
"description": "List ID",
2020-06-28 16:25:46 +02:00
"name": "id",
"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"
},
{
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"
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The users with the right they have.",
"schema": {
2020-06-28 16:25:46 +02:00
"type": "array",
"items": {
"$ref": "#/definitions/models.UserWithRight"
}
}
},
"403": {
2020-06-28 16:25:46 +02:00
"description": "No right to see the list.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
},
2020-06-28 16:25:46 +02:00
"put": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Gives a user access to a list.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"sharing"
],
2020-06-28 16:25:46 +02:00
"summary": "Add a user to a list",
"parameters": [
{
"type": "integer",
"description": "List ID",
2020-06-28 16:25:46 +02:00
"name": "id",
"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"
}
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The created user\u003c-\u003elist relation.",
"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"
}
},
"403": {
"description": "The user does not have access to the list",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"404": {
2020-06-28 16:25:46 +02:00
"description": "The user does not exist.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/lists/{listID}/buckets/{bucketID}": {
"post": {
"security": [
{
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Updates an existing kanban bucket.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Update an existing bucket",
"parameters": [
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "List Id",
"name": "listID",
"in": "path",
"required": true
},
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "Bucket Id",
"name": "bucketID",
"in": "path",
"required": true
},
{
2020-06-28 16:25:46 +02:00
"description": "The bucket object",
"name": "bucket",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.Bucket"
}
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The created bucket object.",
"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"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
},
2020-06-28 16:25:46 +02:00
"delete": {
"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.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Deletes an existing bucket",
"parameters": [
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "List Id",
"name": "listID",
"in": "path",
"required": true
},
{
2020-06-28 16:25:46 +02:00
"type": "integer",
"description": "Bucket Id",
"name": "bucketID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "Successfully deleted.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
2020-06-28 16:25:46 +02:00
"404": {
"description": "The bucket does not exist.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
2020-06-28 16:25:46 +02:00
"500": {
"description": "Internal error",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
2020-06-28 16:25:46 +02: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": {
"200": {
"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
},
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",
"description": "The name of the field to filter by. 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` + "`" + ` and ` + "`" + `less_equals` + "`" + `. 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"
}
],
"responses": {
"200": {
"description": "The tasks",
"schema": {
2020-06-28 16:25:46 +02:00
"type": "array",
"items": {
"$ref": "#/definitions/models.Task"
}
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/lists/{listID}/teams/{teamID}": {
"post": {
"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.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"sharing"
],
2020-06-28 16:25:46 +02:00
"summary": "Update a team \u003c-\u003e list relation",
"parameters": [
{
"type": "integer",
"description": "List ID",
2020-06-28 16:25:46 +02:00
"name": "listID",
"in": "path",
"required": true
},
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "Team ID",
"name": "teamID",
"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"
}
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The updated team \u003c-\u003e list relation.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.TeamList"
}
},
"403": {
2020-06-28 16:25:46 +02:00
"description": "The user does not have admin-access to the list",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"404": {
2020-06-28 16:25:46 +02:00
"description": "Team or list does not exist.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"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.",
"produces": [
"application/json"
],
"tags": [
"sharing"
],
2020-06-28 16:25:46 +02:00
"summary": "Delete a team from a list",
"parameters": [
{
"type": "integer",
"description": "List ID",
2020-06-28 16:25:46 +02:00
"name": "listID",
"in": "path",
"required": true
},
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "Team ID",
"name": "teamID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The team was successfully deleted.",
"schema": {
"$ref": "#/definitions/models.Message"
}
},
"403": {
2020-06-28 16:25:46 +02:00
"description": "The user does not have access to the list",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"404": {
2020-06-28 16:25:46 +02:00
"description": "Team or list does not exist.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/lists/{listID}/users/{userID}": {
"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.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"sharing"
],
2020-06-28 16:25:46 +02:00
"summary": "Update a user \u003c-\u003e list relation",
"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",
"in": "body",
"required": true,
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.ListUser"
}
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The updated user \u003c-\u003e list relation.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.ListUser"
}
},
2020-06-28 16:25:46 +02:00
"403": {
"description": "The user does not have admin-access to the list",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
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",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
},
"delete": {
"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.",
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"sharing"
],
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": {
"200": {
"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": {
"$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"
}
}
}
}
},
"/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"
}
}
}
}
},
"/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"
}
],
"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": {
"200": {
"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": {
"200": {
"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"
}
},
"500": {
2020-06-28 16:25:46 +02:00
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/namespaces/{id}/users": {
"get": {
"security": [
{
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Returns a namespace with all users which have access on a given namespace.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"sharing"
],
2020-06-28 16:25:46 +02:00
"summary": "Get users on a namespace",
"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"
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The users with the right they have.",
"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"
}
},
"500": {
2020-06-28 16:25:46 +02:00
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
},
"put": {
"security": [
{
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Gives a user access to a namespace.",
"consumes": [
"application/json"
],
"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"
}
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The created user\u003c-\u003enamespace relation.",
"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"
}
},
"500": {
2020-06-28 16:25:46 +02:00
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/namespaces/{namespaceID}/lists": {
"put": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
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.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"list"
],
2020-06-28 16:25:46 +02:00
"summary": "Creates a new list",
"parameters": [
{
"type": "integer",
"description": "Namespace ID",
2020-06-28 16:25:46 +02:00
"name": "namespaceID",
"in": "path",
"required": true
},
{
2020-06-28 16:25:46 +02:00
"description": "The list you want to create.",
"name": "list",
"in": "body",
"required": true,
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.List"
}
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The created list.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.List"
}
},
"400": {
2020-06-28 16:25:46 +02:00
"description": "Invalid list object provided.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"403": {
2020-06-28 16:25:46 +02:00
"description": "The user does not have access to the list",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/namespaces/{namespaceID}/teams/{teamID}": {
"post": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
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.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"sharing"
],
2020-06-28 16:25:46 +02:00
"summary": "Update a team \u003c-\u003e namespace relation",
"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
},
{
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"
}
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The updated team \u003c-\u003e namespace relation.",
"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"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
},
2020-06-28 16:25:46 +02:00
"delete": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
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.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"sharing"
],
2020-06-28 16:25:46 +02:00
"summary": "Update a user \u003c-\u003e namespace relation",
"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.",
"name": "namespace",
"in": "body",
"required": true,
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.NamespaceUser"
}
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The updated user \u003c-\u003e namespace relation.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.NamespaceUser"
}
},
2020-06-28 16:25:46 +02:00
"403": {
"description": "The user does not have admin-access to the namespace",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
2020-06-28 16:25:46 +02:00
"404": {
"description": "User or namespace does not exist.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
},
"delete": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
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.",
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"sharing"
],
2020-06-28 16:25:46 +02:00
"summary": "Delete a user from a namespace",
"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",
"in": "path",
"required": true
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The user was successfully deleted.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"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.",
"schema": {
2020-06-28 16:25:46 +02:00
"$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"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"user"
],
2020-06-28 16:25:46 +02:00
"summary": "Register",
"parameters": [
{
2020-06-28 16:25:46 +02:00
"description": "The user credentials",
"name": "credentials",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/user.APIUserPassword"
}
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "OK",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/user.User"
}
},
"400": {
2020-06-28 16:25:46 +02:00
"description": "No or invalid user register object provided / User already exists.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"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.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"sharing"
],
2020-06-28 16:25:46 +02:00
"summary": "Get an auth token for a share",
"parameters": [
{
2020-06-28 16:25:46 +02:00
"type": "string",
"description": "The share hash",
"name": "share",
"in": "path",
"required": true
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The valid jwt auth token.",
"schema": {
"$ref": "#/definitions/auth.Token"
}
},
2020-06-28 16:25:46 +02:00
"400": {
"description": "Invalid link share object provided.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/tasks/all": {
"get": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Returns all tasks on any list the user has access to.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Get tasks",
"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",
"in": "query"
},
{
"type": "string",
2020-06-28 16:25:46 +02:00
"description": "Search tasks by task text.",
"name": "s",
"in": "query"
2020-06-28 16:25:46 +02:00
},
{
"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` + "`" + `, ` + "`" + `text` + "`" + `, ` + "`" + `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",
"description": "The name of the field to filter by. 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` + "`" + ` and ` + "`" + `less_equals` + "`" + `. 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"
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The tasks",
"schema": {
"type": "array",
"items": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Task"
}
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
}
},
"/tasks/bulk": {
"post": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
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.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Update a bunch of tasks at once",
"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",
"in": "body",
"required": true,
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.BulkTask"
}
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The updated task object.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Task"
}
},
"400": {
2020-06-28 16:25:46 +02:00
"description": "Invalid task object provided.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"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",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Task"
}
},
"404": {
2020-06-28 16:25:46 +02:00
"description": "Task not found",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/tasks/{id}": {
"post": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
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.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Update a task",
"parameters": [
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "Task ID",
"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"
}
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The updated task object.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Task"
}
},
"400": {
"description": "Invalid task object provided.",
"schema": {
"$ref": "#/definitions/web.HTTPError"
}
},
"403": {
2020-06-28 16:25:46 +02:00
"description": "The user does not have access to the task (aka its list)",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
},
2020-06-28 16:25:46 +02:00
"delete": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Deletes a task from a list. This does not mean \"mark it done\".",
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Delete a task",
"parameters": [
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "Task ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The created task object.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"400": {
2020-06-28 16:25:46 +02:00
"description": "Invalid task ID provided.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"403": {
2020-06-28 16:25:46 +02:00
"description": "The user does not have access to the list",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/tasks/{id}/attachments": {
"get": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Get all task attachments for one task.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Get all attachments for one task.",
"parameters": [
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "Task ID",
"name": "id",
"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"
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "All attachments for this task",
"schema": {
2020-06-28 16:25:46 +02:00
"type": "array",
"items": {
"$ref": "#/definitions/models.TaskAttachment"
}
}
},
2020-06-28 16:25:46 +02:00
"403": {
"description": "No access to this task.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
2020-06-28 16:25:46 +02:00
"404": {
"description": "The task does not exist.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
},
"put": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Upload a task attachment. You can pass multiple files with the files form param.",
"consumes": [
2020-06-28 16:25:46 +02:00
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Upload a task attachment",
"parameters": [
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "Task ID",
"name": "id",
"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",
"required": true
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "Attachments were uploaded successfully.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"403": {
2020-06-28 16:25:46 +02:00
"description": "No access to the task.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"404": {
2020-06-28 16:25:46 +02:00
"description": "The task does not exist.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
}
},
"/tasks/{id}/attachments/{attachmentID}": {
"get": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Get one attachment for download. **Returns json on error.**",
"produces": [
2020-06-28 16:25:46 +02:00
"application/octet-stream"
],
"tags": [
2020-06-28 16:25:46 +02:00
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Get one attachment.",
"parameters": [
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "Task ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "Attachment ID",
"name": "attachmentID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The attachment file.",
"schema": {
2020-06-28 16:25:46 +02:00
"type": ""
}
},
"403": {
2020-06-28 16:25:46 +02:00
"description": "No access to this task.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"404": {
2020-06-28 16:25:46 +02:00
"description": "The task does not exist.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
},
"delete": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Delete an attachment.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Delete an attachment",
"parameters": [
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "Task ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "Attachment ID",
"name": "attachmentID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The attachment was deleted successfully.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"403": {
2020-06-28 16:25:46 +02:00
"description": "No access to this task.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"404": {
2020-06-28 16:25:46 +02:00
"description": "The task does not exist.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
}
},
"/tasks/{taskID}/assignees": {
"get": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Returns an array with all assignees for this task.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"assignees"
],
2020-06-28 16:25:46 +02:00
"summary": "Get all assignees for a task",
"parameters": [
{
"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"
},
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"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 assignees by their username.",
"name": "s",
"in": "query"
},
{
"type": "integer",
"description": "Task ID",
"name": "taskID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The assignees",
"schema": {
2020-06-28 16:25:46 +02:00
"type": "array",
"items": {
"$ref": "#/definitions/user.User"
}
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
},
"put": {
"security": [
{
"JWTKeyAuth": []
}
],
"description": "Adds a new assignee to a task. The assignee needs to have access to the list, the doer must be able to edit this task.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"assignees"
],
2020-06-28 16:25:46 +02:00
"summary": "Add a new assignee to a task",
"parameters": [
{
2020-06-28 16:25:46 +02:00
"description": "The assingee object",
"name": "assignee",
"in": "body",
"required": true,
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.TaskAssginee"
}
2020-06-28 16:25:46 +02:00
},
{
"type": "integer",
"description": "Task ID",
"name": "taskID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The created assingee object.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.TaskAssginee"
}
},
"400": {
2020-06-28 16:25:46 +02:00
"description": "Invalid assignee object provided.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/tasks/{taskID}/assignees/bulk": {
"post": {
2020-06-28 16:25:46 +02:00
"security": [
{
"JWTKeyAuth": []
}
],
"description": "Adds multiple new assignees to a task. The assignee needs to have access to the list, the doer must be able to edit this task. Every user not in the list will be unassigned from the task, pass an empty array to unassign everyone.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"assignees"
],
2020-06-28 16:25:46 +02:00
"summary": "Add multiple new assignees to a task",
2018-12-25 21:45:26 +01:00
"parameters": [
{
2020-06-28 16:25:46 +02:00
"description": "The array of assignees",
"name": "assignee",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.BulkAssignees"
}
},
{
"type": "integer",
"description": "Task ID",
"name": "taskID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The created assingees object.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.TaskAssginee"
}
},
"400": {
2020-06-28 16:25:46 +02:00
"description": "Invalid assignee object provided.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/tasks/{taskID}/assignees/{userID}": {
"delete": {
"security": [
{
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Un-assign a user from a task.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2020-06-28 16:25:46 +02:00
"assignees"
],
2020-06-28 16:25:46 +02:00
"summary": "Delete an assignee",
"parameters": [
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "Task ID",
"name": "taskID",
"in": "path",
"required": true
2019-12-07 22:28:45 +00:00
},
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "Assignee user ID",
"name": "userID",
"in": "path",
"required": true
2018-12-25 21:45:26 +01:00
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The assignee was successfully deleted.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.Message"
}
},
"403": {
"description": "Not allowed to delete the assignee.",
"schema": {
"$ref": "#/definitions/web.HTTPError"
2018-12-25 21:45:26 +01:00
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/tasks/{taskID}/comments": {
"get": {
2018-12-28 21:49:46 +00:00
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
2018-12-28 21:49:46 +00:00
}
],
2020-06-28 16:25:46 +02:00
"description": "Get all task comments. The user doing this need to have at least read access to the task.",
2018-12-28 21:49:46 +00:00
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Get all task comments",
2018-12-28 21:49:46 +00:00
"parameters": [
{
2020-06-28 16:25:46 +02:00
"type": "integer",
"description": "Task ID",
"name": "taskID",
"in": "path",
"required": true
2018-12-28 21:49:46 +00:00
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The array with all task comments",
2018-12-28 21:49:46 +00:00
"schema": {
2020-06-28 16:25:46 +02:00
"type": "array",
"items": {
"$ref": "#/definitions/models.TaskComment"
}
2018-12-28 21:49:46 +00:00
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00
},
"put": {
2019-12-07 22:28:45 +00:00
"security": [
{
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Create a new task comment. The user doing this need to have at least write access to the task this comment should belong to.",
2019-12-07 22:28:45 +00:00
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Create a new task comment",
2019-12-07 22:28:45 +00:00
"parameters": [
2020-06-28 16:25:46 +02:00
{
"description": "The task comment object",
"name": "relation",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.TaskComment"
}
},
2019-12-07 22:28:45 +00:00
{
"type": "integer",
2020-06-28 16:25:46 +02:00
"description": "Task ID",
"name": "taskID",
2019-12-07 22:28:45 +00:00
"in": "path",
"required": true
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The created task comment object.",
2019-12-07 22:28:45 +00:00
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.TaskComment"
2019-12-07 22:28:45 +00:00
}
},
2020-06-28 16:25:46 +02:00
"400": {
"description": "Invalid task comment object provided.",
2019-12-07 22:28:45 +00:00
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
2019-12-07 22:28:45 +00:00
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
}
},
2020-06-28 16:25:46 +02:00
"/tasks/{taskID}/comments/{commentID}": {
"get": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Remove a task comment. The user doing this need to have at least read access to the task this comment belongs to.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Remove a task comment",
"parameters": [
{
"type": "integer",
"description": "Task ID",
2020-06-28 16:25:46 +02:00
"name": "taskID",
"in": "path",
"required": true
},
{
2020-06-28 16:25:46 +02:00
"type": "integer",
"description": "Comment ID",
"name": "commentID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The task comment object.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.TaskComment"
}
},
"400": {
2020-06-28 16:25:46 +02:00
"description": "Invalid task comment object provided.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
2020-06-28 16:25:46 +02:00
"404": {
"description": "The task comment was not found.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "#/definitions/models.Message"
}
}
}
},
2020-06-28 16:25:46 +02:00
"post": {
"security": [
{
2019-01-03 22:22:06 +00:00
"JWTKeyAuth": []
}
],
2020-06-28 16:25:46 +02:00
"description": "Update an existing task comment. The user doing this need to have at least write access to the task this comment belongs to.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"task"
],
2020-06-28 16:25:46 +02:00
"summary": "Update an existing task comment",
"parameters": [
{
"type": "integer",
"description": "Task ID",
2020-06-28 16:25:46 +02:00
"name": "taskID",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "Comment ID",
"name": "commentID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
2020-06-28 16:25:46 +02:00
"description": "The updated task comment object.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/models.TaskComment"
}
},
"400": {
2020-06-28 16:25:46 +02:00
"description": "Invalid task comment object provided.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
2020-06-28 16:25:46 +02:00
"404": {
"description": "The task comment was not found.",
"schema": {
2020-06-28 16:25:46 +02:00
"$ref": "#/definitions/web.HTTPError"
}
},
"500": {
"description": "Internal error",
"schema": {
2019-10-16 20:52:29 +00:00
"$ref": "#/definitions/models.Message"
}
}
}
2020-06-28 16:25:46 +02:00