2228 lines
58 KiB
YAML
2228 lines
58 KiB
YAML
basePath: /api/v1
|
|
definitions:
|
|
models.APIUserPassword:
|
|
properties:
|
|
email:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
password:
|
|
type: string
|
|
username:
|
|
type: string
|
|
type: object
|
|
models.EmailConfirm:
|
|
properties:
|
|
token:
|
|
type: string
|
|
type: object
|
|
models.List:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
description:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
owner:
|
|
$ref: '#/definitions/models.User'
|
|
type: object
|
|
tasks:
|
|
items:
|
|
$ref: '#/definitions/models.ListTask'
|
|
type: array
|
|
title:
|
|
type: string
|
|
updated:
|
|
type: integer
|
|
type: object
|
|
models.ListTask:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
createdBy:
|
|
$ref: '#/definitions/models.User'
|
|
type: object
|
|
description:
|
|
type: string
|
|
done:
|
|
type: boolean
|
|
dueDate:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
listID:
|
|
type: integer
|
|
parentTaskID:
|
|
type: integer
|
|
priority:
|
|
type: integer
|
|
reminderDates:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
repeatAfter:
|
|
type: integer
|
|
subtasks:
|
|
items:
|
|
$ref: '#/definitions/models.ListTask'
|
|
type: array
|
|
text:
|
|
type: string
|
|
updated:
|
|
type: integer
|
|
type: object
|
|
models.ListUser:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
list_id:
|
|
type: integer
|
|
right:
|
|
type: integer
|
|
updated:
|
|
type: integer
|
|
user_id:
|
|
type: integer
|
|
type: object
|
|
models.Message:
|
|
properties:
|
|
message:
|
|
type: string
|
|
type: object
|
|
models.Namespace:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
description:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
owner:
|
|
$ref: '#/definitions/models.User'
|
|
type: object
|
|
updated:
|
|
type: integer
|
|
type: object
|
|
models.NamespaceUser:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
namespace_id:
|
|
type: integer
|
|
right:
|
|
type: integer
|
|
updated:
|
|
type: integer
|
|
user_id:
|
|
type: integer
|
|
type: object
|
|
models.NamespaceWithLists:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
description:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
lists:
|
|
items:
|
|
$ref: '#/definitions/models.List'
|
|
type: array
|
|
name:
|
|
type: string
|
|
owner:
|
|
$ref: '#/definitions/models.User'
|
|
type: object
|
|
updated:
|
|
type: integer
|
|
type: object
|
|
models.PasswordReset:
|
|
properties:
|
|
new_password:
|
|
type: string
|
|
token:
|
|
type: string
|
|
type: object
|
|
models.PasswordTokenRequest:
|
|
properties:
|
|
user_name:
|
|
type: string
|
|
type: object
|
|
models.Team:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
created_by:
|
|
$ref: '#/definitions/models.User'
|
|
type: object
|
|
description:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
members:
|
|
items:
|
|
$ref: '#/definitions/models.TeamUser'
|
|
type: array
|
|
name:
|
|
type: string
|
|
updated:
|
|
type: integer
|
|
type: object
|
|
models.TeamList:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
list_id:
|
|
type: integer
|
|
right:
|
|
type: integer
|
|
team_id:
|
|
type: integer
|
|
updated:
|
|
type: integer
|
|
type: object
|
|
models.TeamMember:
|
|
properties:
|
|
admin:
|
|
type: boolean
|
|
created:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
team_id:
|
|
type: integer
|
|
updated:
|
|
type: integer
|
|
user_id:
|
|
type: integer
|
|
type: object
|
|
models.TeamNamespace:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
namespace_id:
|
|
type: integer
|
|
right:
|
|
type: integer
|
|
team_id:
|
|
type: integer
|
|
updated:
|
|
type: integer
|
|
type: object
|
|
models.TeamUser:
|
|
properties:
|
|
admin:
|
|
type: boolean
|
|
created:
|
|
type: integer
|
|
email:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
updated:
|
|
type: integer
|
|
username:
|
|
type: string
|
|
type: object
|
|
models.TeamWithRight:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
created_by:
|
|
$ref: '#/definitions/models.User'
|
|
type: object
|
|
description:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
members:
|
|
items:
|
|
$ref: '#/definitions/models.TeamUser'
|
|
type: array
|
|
name:
|
|
type: string
|
|
right:
|
|
type: integer
|
|
updated:
|
|
type: integer
|
|
type: object
|
|
models.User:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
email:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
updated:
|
|
type: integer
|
|
username:
|
|
type: string
|
|
type: object
|
|
models.UserLogin:
|
|
properties:
|
|
password:
|
|
type: string
|
|
username:
|
|
type: string
|
|
type: object
|
|
models.UserWithRight:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
email:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
right:
|
|
type: integer
|
|
updated:
|
|
type: integer
|
|
username:
|
|
type: string
|
|
type: object
|
|
v1.Token:
|
|
properties:
|
|
token:
|
|
type: string
|
|
type: object
|
|
v1.UserPassword:
|
|
properties:
|
|
new_password:
|
|
type: string
|
|
old_password:
|
|
type: string
|
|
type: object
|
|
host: '{{.Host}}'
|
|
info:
|
|
contact: {}
|
|
description: '{{.Description}}'
|
|
license:
|
|
name: GPLv3
|
|
title: Vikunja API
|
|
version: '{{.Version}}'
|
|
paths:
|
|
/lists:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all lists a user has access to.
|
|
parameters:
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: p
|
|
type: integer
|
|
- description: Search lists by title.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The lists
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.List'
|
|
type: array
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get all lists a user has access to
|
|
tags:
|
|
- list
|
|
/lists/{id}:
|
|
delete:
|
|
description: Delets a list
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The list was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"400":
|
|
description: Invalid list object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Deletes a list
|
|
tags:
|
|
- list
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a list by its ID.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The list
|
|
schema:
|
|
$ref: '#/definitions/models.List'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Gets one list
|
|
tags:
|
|
- list
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Updates a list. This does not include adding a task (see below).
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The list with updated values you want to update.
|
|
in: body
|
|
name: list
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.List'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated list.
|
|
schema:
|
|
$ref: '#/definitions/models.List'
|
|
type: object
|
|
"400":
|
|
description: Invalid list object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Updates a list
|
|
tags:
|
|
- list
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Inserts a task into a list.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The task object
|
|
in: body
|
|
name: task
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.ListTask'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created task object.
|
|
schema:
|
|
$ref: '#/definitions/models.ListTask'
|
|
type: object
|
|
"400":
|
|
description: Invalid task object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Create a task
|
|
tags:
|
|
- task
|
|
/lists/{id}/teams:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a list with all teams which have access on a given list.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: p
|
|
type: integer
|
|
- description: Search teams by its name.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The teams with their right.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.TeamWithRight'
|
|
type: array
|
|
"403":
|
|
description: No right to see the list.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get teams on a list
|
|
tags:
|
|
- sharing
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Gives a team access to a list.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The team you want to add to the list.
|
|
in: body
|
|
name: list
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.TeamList'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created team<->list relation.
|
|
schema:
|
|
$ref: '#/definitions/models.TeamList'
|
|
type: object
|
|
"400":
|
|
description: Invalid team list object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"404":
|
|
description: The team does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Add a team to a list
|
|
tags:
|
|
- sharing
|
|
/lists/{id}/users:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a list with all users which have access on a given list.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: p
|
|
type: integer
|
|
- description: Search users by its name.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The users with the right they have.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.UserWithRight'
|
|
type: array
|
|
"403":
|
|
description: No right to see the list.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get users on a list
|
|
tags:
|
|
- sharing
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Gives a user access to a list.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The user you want to add to the list.
|
|
in: body
|
|
name: list
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.ListUser'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created user<->list relation.
|
|
schema:
|
|
$ref: '#/definitions/models.ListUser'
|
|
type: object
|
|
"400":
|
|
description: Invalid user list object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"404":
|
|
description: The user does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Add a user to a list
|
|
tags:
|
|
- sharing
|
|
/lists/{listID}/teams/{teamID}:
|
|
delete:
|
|
description: Delets a team from a list. The team won't have access to the list
|
|
anymore.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: listID
|
|
required: true
|
|
type: integer
|
|
- description: Team ID
|
|
in: path
|
|
name: teamID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The team was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"404":
|
|
description: Team or list does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Delete a team from a list
|
|
tags:
|
|
- sharing
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Update a team <-> list relation. Mostly used to update the right
|
|
that team has.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: listID
|
|
required: true
|
|
type: integer
|
|
- description: Team ID
|
|
in: path
|
|
name: teamID
|
|
required: true
|
|
type: integer
|
|
- description: The team you want to update.
|
|
in: body
|
|
name: list
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.TeamList'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated team <-> list relation.
|
|
schema:
|
|
$ref: '#/definitions/models.TeamList'
|
|
type: object
|
|
"403":
|
|
description: The user does not have admin-access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"404":
|
|
description: Team or list does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update a team <-> list relation
|
|
tags:
|
|
- sharing
|
|
/lists/{listID}/users/{userID}:
|
|
delete:
|
|
description: Delets a user from a list. The user won't have access to the list
|
|
anymore.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: listID
|
|
required: true
|
|
type: integer
|
|
- description: User ID
|
|
in: path
|
|
name: userID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The user was successfully removed from the list.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"404":
|
|
description: user or list does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Delete a user from a list
|
|
tags:
|
|
- sharing
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Update a user <-> list relation. Mostly used to update the right
|
|
that user has.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: listID
|
|
required: true
|
|
type: integer
|
|
- description: User ID
|
|
in: path
|
|
name: userID
|
|
required: true
|
|
type: integer
|
|
- description: The user you want to update.
|
|
in: body
|
|
name: list
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.ListUser'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated user <-> list relation.
|
|
schema:
|
|
$ref: '#/definitions/models.ListUser'
|
|
type: object
|
|
"403":
|
|
description: The user does not have admin-access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"404":
|
|
description: User or list does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update a user <-> list relation
|
|
tags:
|
|
- sharing
|
|
/login:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Logs a user in. Returns a JWT-Token to authenticate further requests.
|
|
parameters:
|
|
- description: The login credentials
|
|
in: body
|
|
name: credentials
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.UserLogin'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/v1.Token'
|
|
type: object
|
|
"400":
|
|
description: Invalid user password model.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"403":
|
|
description: Invalid username or password.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
summary: Login
|
|
tags:
|
|
- user
|
|
/namespace/{id}:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Updates a namespace.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The namespace with updated values you want to update.
|
|
in: body
|
|
name: namespace
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Namespace'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated namespace.
|
|
schema:
|
|
$ref: '#/definitions/models.Namespace'
|
|
type: object
|
|
"400":
|
|
description: Invalid namespace object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Updates a namespace
|
|
tags:
|
|
- namespace
|
|
/namespaces:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all namespaces a user has access to.
|
|
parameters:
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: p
|
|
type: integer
|
|
- description: Search namespaces by name.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The Namespaces.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.NamespaceWithLists'
|
|
type: array
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get all namespaces a user has access to
|
|
tags:
|
|
- namespace
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a new namespace.
|
|
parameters:
|
|
- description: The namespace you want to create.
|
|
in: body
|
|
name: namespace
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Namespace'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created namespace.
|
|
schema:
|
|
$ref: '#/definitions/models.Namespace'
|
|
type: object
|
|
"400":
|
|
description: Invalid namespace object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Creates a new namespace
|
|
tags:
|
|
- namespace
|
|
/namespaces/{id}:
|
|
delete:
|
|
description: Delets a namespace
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The namespace was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"400":
|
|
description: Invalid namespace object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Deletes a namespace
|
|
tags:
|
|
- namespace
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a namespace by its ID.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The Namespace
|
|
schema:
|
|
$ref: '#/definitions/models.Namespace'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to that namespace.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Gets one namespace
|
|
tags:
|
|
- namespace
|
|
/namespaces/{id}/lists:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all lists inside of a namespace.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The lists.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.List'
|
|
type: array
|
|
"403":
|
|
description: No access to that namespace.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"404":
|
|
description: The namespace does not exist.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get all lists in a namespace
|
|
tags:
|
|
- namespace
|
|
/namespaces/{id}/teams:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a namespace with all teams which have access on a given
|
|
namespace.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: p
|
|
type: integer
|
|
- description: Search teams by its name.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The teams with the right they have.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.TeamWithRight'
|
|
type: array
|
|
"403":
|
|
description: No right to see the namespace.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get teams on a namespace
|
|
tags:
|
|
- sharing
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Gives a team access to a namespace.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The team you want to add to the namespace.
|
|
in: body
|
|
name: namespace
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.TeamNamespace'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created team<->namespace relation.
|
|
schema:
|
|
$ref: '#/definitions/models.TeamNamespace'
|
|
type: object
|
|
"400":
|
|
description: Invalid team namespace object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"403":
|
|
description: The team does not have access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"404":
|
|
description: The team does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Add a team to a namespace
|
|
tags:
|
|
- sharing
|
|
/namespaces/{id}/users:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a namespace with all users which have access on a given
|
|
namespace.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: p
|
|
type: integer
|
|
- description: Search users by its name.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The users with the right they have.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.UserWithRight'
|
|
type: array
|
|
"403":
|
|
description: No right to see the namespace.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get users on a namespace
|
|
tags:
|
|
- sharing
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Gives a user access to a namespace.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The user you want to add to the namespace.
|
|
in: body
|
|
name: namespace
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.NamespaceUser'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created user<->namespace relation.
|
|
schema:
|
|
$ref: '#/definitions/models.NamespaceUser'
|
|
type: object
|
|
"400":
|
|
description: Invalid user namespace object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"404":
|
|
description: The user does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Add a user to a namespace
|
|
tags:
|
|
- sharing
|
|
/namespaces/{namespaceID}/lists:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a new list in a given namespace. The user needs write-access
|
|
to the namespace.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: namespaceID
|
|
required: true
|
|
type: integer
|
|
- description: The list you want to create.
|
|
in: body
|
|
name: list
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.List'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created list.
|
|
schema:
|
|
$ref: '#/definitions/models.List'
|
|
type: object
|
|
"400":
|
|
description: Invalid list object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Creates a new list
|
|
tags:
|
|
- list
|
|
/namespaces/{namespaceID}/teams/{teamID}:
|
|
delete:
|
|
description: Delets a team from a namespace. The team won't have access to the
|
|
namespace anymore.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: namespaceID
|
|
required: true
|
|
type: integer
|
|
- description: team ID
|
|
in: path
|
|
name: teamID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The team was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"403":
|
|
description: The team does not have access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"404":
|
|
description: team or namespace does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Delete a team from a namespace
|
|
tags:
|
|
- sharing
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Update a team <-> namespace relation. Mostly used to update the
|
|
right that team has.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: namespaceID
|
|
required: true
|
|
type: integer
|
|
- description: Team ID
|
|
in: path
|
|
name: teamID
|
|
required: true
|
|
type: integer
|
|
- description: The team you want to update.
|
|
in: body
|
|
name: namespace
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.TeamNamespace'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated team <-> namespace relation.
|
|
schema:
|
|
$ref: '#/definitions/models.TeamNamespace'
|
|
type: object
|
|
"403":
|
|
description: The team does not have admin-access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"404":
|
|
description: Team or namespace does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update a team <-> namespace relation
|
|
tags:
|
|
- sharing
|
|
/namespaces/{namespaceID}/users/{userID}:
|
|
delete:
|
|
description: Delets a user from a namespace. The user won't have access to the
|
|
namespace anymore.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: namespaceID
|
|
required: true
|
|
type: integer
|
|
- description: user ID
|
|
in: path
|
|
name: userID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The user was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"404":
|
|
description: user or namespace does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Delete a user from a namespace
|
|
tags:
|
|
- sharing
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Update a user <-> namespace relation. Mostly used to update the
|
|
right that user has.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: namespaceID
|
|
required: true
|
|
type: integer
|
|
- description: User ID
|
|
in: path
|
|
name: userID
|
|
required: true
|
|
type: integer
|
|
- description: The user you want to update.
|
|
in: body
|
|
name: namespace
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.NamespaceUser'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated user <-> namespace relation.
|
|
schema:
|
|
$ref: '#/definitions/models.NamespaceUser'
|
|
type: object
|
|
"403":
|
|
description: The user does not have admin-access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"404":
|
|
description: User or namespace does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update a user <-> namespace relation
|
|
tags:
|
|
- sharing
|
|
/register:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a new user account.
|
|
parameters:
|
|
- description: The user credentials
|
|
in: body
|
|
name: credentials
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.APIUserPassword'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.User'
|
|
type: object
|
|
"400":
|
|
description: No or invalid user register object provided / User already
|
|
exists.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
summary: Register
|
|
tags:
|
|
- user
|
|
/tasks:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all tasks on any list the user has access to.
|
|
parameters:
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: p
|
|
type: integer
|
|
- description: Search tasks by task text.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The tasks
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.List'
|
|
type: array
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get tasks
|
|
tags:
|
|
- task
|
|
/tasks/{id}:
|
|
delete:
|
|
description: Deletes a task from a list. This does not mean "mark it done".
|
|
parameters:
|
|
- description: Task ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created task object.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"400":
|
|
description: Invalid task ID provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Delete a task
|
|
tags:
|
|
- task
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Updates a task. This includes marking it as done.
|
|
parameters:
|
|
- description: Task ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The task object
|
|
in: body
|
|
name: task
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.ListTask'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated task object.
|
|
schema:
|
|
$ref: '#/definitions/models.ListTask'
|
|
type: object
|
|
"400":
|
|
description: Invalid task object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the task (aka its list)
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update a task
|
|
tags:
|
|
- task
|
|
/tasks/{sortby}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all tasks on any list the user has access to.
|
|
parameters:
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: p
|
|
type: integer
|
|
- description: Search tasks by task text.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
- description: The sorting parameter. Possible values to sort by are priority,
|
|
prioritydesc, priorityasc, dueadate, dueadatedesc, dueadateasc.
|
|
in: path
|
|
name: sortby
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The tasks
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.List'
|
|
type: array
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get tasks sorted
|
|
tags:
|
|
- task
|
|
/tasks/caldav:
|
|
get:
|
|
description: Returns a calDAV-parsable format with all tasks as calendar events.
|
|
Only returns tasks with a due date. Also creates reminders when the task has
|
|
one.
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: The caldav events.
|
|
schema:
|
|
type: string
|
|
"403":
|
|
description: Unauthorized.
|
|
schema:
|
|
type: string
|
|
security:
|
|
- BasicAuth: []
|
|
summary: CalDAV-readable format with all tasks as calendar events.
|
|
tags:
|
|
- task
|
|
/teams:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all teams the current user is part of.
|
|
parameters:
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: p
|
|
type: integer
|
|
- description: Search teams by its name.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The teams.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.Team'
|
|
type: array
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get teams
|
|
tags:
|
|
- team
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a new team in a given namespace. The user needs write-access
|
|
to the namespace.
|
|
parameters:
|
|
- description: The team you want to create.
|
|
in: body
|
|
name: team
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Team'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created team.
|
|
schema:
|
|
$ref: '#/definitions/models.Team'
|
|
type: object
|
|
"400":
|
|
description: Invalid team object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Creates a new team
|
|
tags:
|
|
- team
|
|
/teams/{id}:
|
|
delete:
|
|
description: Delets a team. This will also remove the access for all users in
|
|
that team.
|
|
parameters:
|
|
- description: Team ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The team was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"400":
|
|
description: Invalid team object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Deletes a team
|
|
tags:
|
|
- team
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Updates a team.
|
|
parameters:
|
|
- description: Team ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The team with updated values you want to update.
|
|
in: body
|
|
name: team
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Team'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated team.
|
|
schema:
|
|
$ref: '#/definitions/models.Team'
|
|
type: object
|
|
"400":
|
|
description: Invalid team object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Updates a team
|
|
tags:
|
|
- team
|
|
/teams/{id}/members:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Add a user to a team.
|
|
parameters:
|
|
- description: Team ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The user to be added to a team.
|
|
in: body
|
|
name: team
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.TeamMember'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The newly created member object
|
|
schema:
|
|
$ref: '#/definitions/models.TeamMember'
|
|
type: object
|
|
"400":
|
|
description: Invalid member object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"403":
|
|
description: The user does not have access to the team
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Add a user to a team
|
|
tags:
|
|
- team
|
|
/teams/{id}/members/{userID}:
|
|
delete:
|
|
description: Remove a user from a team. This will also revoke any access this
|
|
user might have via that team.
|
|
parameters:
|
|
- description: Team ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: User ID
|
|
in: path
|
|
name: userID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The user was successfully removed from the team.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Remove a user from a team
|
|
tags:
|
|
- team
|
|
/user:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns the current user object.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.User'
|
|
type: object
|
|
"404":
|
|
description: User does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal server error.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get user information
|
|
tags:
|
|
- user
|
|
/user/confirm:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Confirms the email of a newly registered user.
|
|
parameters:
|
|
- description: The token.
|
|
in: body
|
|
name: credentials
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.EmailConfirm'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"412":
|
|
description: Bad token provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
summary: Confirm the email of a new user
|
|
tags:
|
|
- user
|
|
/user/password:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Lets the current user change its password.
|
|
parameters:
|
|
- description: The current and new password.
|
|
in: body
|
|
name: userPassword
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.UserPassword'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"400":
|
|
description: Something's invalid.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"404":
|
|
description: User does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal server error.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Change password
|
|
tags:
|
|
- user
|
|
/user/password/reset:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Resets a user email with a previously reset token.
|
|
parameters:
|
|
- description: The token with the new password.
|
|
in: body
|
|
name: credentials
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.PasswordReset'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"400":
|
|
description: Bad token provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
summary: Resets a password
|
|
tags:
|
|
- user
|
|
/user/password/token:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Requests a token to reset a users password. The token is sent via
|
|
email.
|
|
parameters:
|
|
- description: The username of the user to request a token for.
|
|
in: body
|
|
name: credentials
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.PasswordTokenRequest'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
"404":
|
|
description: The user does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
summary: Request password reset token
|
|
tags:
|
|
- user
|
|
/users:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Lists all users (without emailadresses). Also possible to search
|
|
for a specific user.
|
|
parameters:
|
|
- description: Search for a user by its name.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: All (found) users.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.User'
|
|
type: array
|
|
"400":
|
|
description: Something's invalid.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
type: object
|
|
"500":
|
|
description: Internal server error.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get users
|
|
tags:
|
|
- user
|
|
securityDefinitions:
|
|
ApiKeyAuth:
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
BasicAuth:
|
|
type: basic
|
|
swagger: "2.0"
|