1782 lines
44 KiB
YAML
1782 lines
44 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: Corteza System API
|
|
description: Corteza System REST API definition
|
|
version: 2020.12
|
|
contact:
|
|
email: info@cortezaproject.org
|
|
license:
|
|
name: Apache 2.0
|
|
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
|
|
paths:
|
|
/auth/:
|
|
get:
|
|
tags:
|
|
- Authentication
|
|
summary: Returns auth settings
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
/auth/check:
|
|
get:
|
|
tags:
|
|
- Authentication
|
|
summary: Check JWT token
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
/auth/impersonate:
|
|
post:
|
|
tags:
|
|
- Authentication
|
|
summary: Impersonate a user
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_0
|
|
userID:
|
|
type: string
|
|
description: ID of the impersonated user
|
|
required:
|
|
- userID
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_0
|
|
/auth/exchange:
|
|
post:
|
|
tags:
|
|
- Authentication
|
|
summary: Exchange auth token for JWT
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_1
|
|
token:
|
|
type: string
|
|
description: Token to be exchanged for JWT
|
|
required:
|
|
- token
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_1
|
|
/auth/logout:
|
|
get:
|
|
tags:
|
|
- Authentication
|
|
summary: Logout
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
/auth/internal/login:
|
|
post:
|
|
tags:
|
|
- Internal authentication
|
|
summary: Login user
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_2
|
|
email:
|
|
type: string
|
|
description: Email
|
|
password:
|
|
type: string
|
|
format: password
|
|
description: Password
|
|
required:
|
|
- email
|
|
- password
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_2
|
|
/auth/internal/signup:
|
|
post:
|
|
tags:
|
|
- Internal authentication
|
|
summary: User signup/registration
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_3
|
|
email:
|
|
type: string
|
|
description: Email
|
|
username:
|
|
type: string
|
|
description: Username
|
|
password:
|
|
type: string
|
|
format: password
|
|
description: Password
|
|
handle:
|
|
type: string
|
|
description: User handle
|
|
name:
|
|
type: string
|
|
description: Display name
|
|
required:
|
|
- email
|
|
- password
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_3
|
|
/auth/internal/request-password-reset:
|
|
post:
|
|
tags:
|
|
- Internal authentication
|
|
summary: Request password reset token (via email)
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_4
|
|
email:
|
|
type: string
|
|
description: Email
|
|
required:
|
|
- email
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_4
|
|
/auth/internal/exchange-password-reset-token:
|
|
post:
|
|
tags:
|
|
- Internal authentication
|
|
summary: Exchange password reset token for new token and user info
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_5
|
|
token:
|
|
type: string
|
|
description: Token
|
|
required:
|
|
- token
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_5
|
|
/auth/internal/reset-password:
|
|
post:
|
|
tags:
|
|
- Internal authentication
|
|
summary: Reset password with exchanged password reset token
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_6
|
|
token:
|
|
type: string
|
|
description: Token
|
|
password:
|
|
type: string
|
|
format: password
|
|
description: Password
|
|
required:
|
|
- token
|
|
- password
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_6
|
|
/auth/internal/confirm-email:
|
|
post:
|
|
tags:
|
|
- Internal authentication
|
|
summary: Confirm email with token
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_7
|
|
token:
|
|
type: string
|
|
description: Token
|
|
required:
|
|
- token
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_7
|
|
/auth/internal/change-password:
|
|
post:
|
|
tags:
|
|
- Internal authentication
|
|
summary: 'Changes password for current user, requires current password'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_8
|
|
oldPassword:
|
|
type: string
|
|
description: Old password
|
|
newPassword:
|
|
type: string
|
|
description: New password
|
|
required:
|
|
- oldPassword
|
|
- newPassword
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_8
|
|
/settings/:
|
|
get:
|
|
tags:
|
|
- Settings
|
|
summary: List settings
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: query
|
|
name: prefix
|
|
description: Key prefix
|
|
required: false
|
|
schema: &ref_10
|
|
type: string
|
|
patch:
|
|
tags:
|
|
- Settings
|
|
summary: Update settings
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_9
|
|
values:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
description: >-
|
|
Array of new settings: `[{ name: ..., value: ... }]`. Omit
|
|
value to remove setting
|
|
required:
|
|
- values
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_9
|
|
'/settings/{key}':
|
|
get:
|
|
tags:
|
|
- Settings
|
|
summary: Get a value for a key
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: key
|
|
description: Setting key
|
|
required: true
|
|
schema: *ref_10
|
|
- in: query
|
|
name: ownerID
|
|
description: Owner ID
|
|
required: false
|
|
schema: &ref_14
|
|
type: string
|
|
post:
|
|
tags:
|
|
- Settings
|
|
summary: Set value for specific setting
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: key
|
|
description: Key
|
|
required: true
|
|
schema: *ref_10
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_11
|
|
upload:
|
|
type: string
|
|
format: binary
|
|
description: File to upload
|
|
ownerID:
|
|
type: string
|
|
description: Owner ID
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_11
|
|
/settings/current:
|
|
get:
|
|
tags:
|
|
- Settings
|
|
summary: Current compose settings
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
/subscription/:
|
|
get:
|
|
tags:
|
|
- Subscription
|
|
summary: Returns current subscription status
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
/roles/:
|
|
get:
|
|
tags:
|
|
- Roles
|
|
summary: List roles
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: query
|
|
name: query
|
|
description: Search query
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: deleted
|
|
description: 'Exclude (0, default), include (1) or return only (2) deleted roles'
|
|
required: false
|
|
schema: &ref_12
|
|
type: string
|
|
- in: query
|
|
name: archived
|
|
description: 'Exclude (0, default), include (1) or return only (2) achived roles'
|
|
required: false
|
|
schema: *ref_12
|
|
- in: query
|
|
name: limit
|
|
description: Limit
|
|
required: false
|
|
schema: *ref_12
|
|
- in: query
|
|
name: pageCursor
|
|
description: Page cursor
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: sort
|
|
description: Sort items
|
|
required: false
|
|
schema: *ref_10
|
|
post:
|
|
tags:
|
|
- Roles
|
|
summary: Update role details
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_13
|
|
name:
|
|
type: string
|
|
description: Name of Role
|
|
handle:
|
|
type: string
|
|
description: Handle for Role
|
|
members:
|
|
type: array
|
|
items: *ref_10
|
|
description: Role member IDs
|
|
required:
|
|
- name
|
|
- handle
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_13
|
|
'/roles/{roleID}':
|
|
put:
|
|
tags:
|
|
- Roles
|
|
summary: Update role details
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_15
|
|
name:
|
|
type: string
|
|
description: Name of Role
|
|
handle:
|
|
type: string
|
|
description: Handle for Role
|
|
members:
|
|
type: array
|
|
items: *ref_10
|
|
description: Role member IDs
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_15
|
|
get:
|
|
tags:
|
|
- Roles
|
|
summary: Read role details and memberships
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
delete:
|
|
tags:
|
|
- Roles
|
|
summary: Remove role
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/roles/{roleID}/archive':
|
|
post:
|
|
tags:
|
|
- Roles
|
|
summary: Archive role
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/roles/{roleID}/unarchive':
|
|
post:
|
|
tags:
|
|
- Roles
|
|
summary: Unarchive role
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/roles/{roleID}/undelete':
|
|
post:
|
|
tags:
|
|
- Roles
|
|
summary: Undelete role
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/roles/{roleID}/move':
|
|
post:
|
|
tags:
|
|
- Roles
|
|
summary: Move role to different organisation
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_16
|
|
organisationID:
|
|
type: string
|
|
description: Role ID
|
|
required:
|
|
- organisationID
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_16
|
|
'/roles/{roleID}/merge':
|
|
post:
|
|
tags:
|
|
- Roles
|
|
summary: Merge one role into another
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Source Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_17
|
|
destination:
|
|
type: string
|
|
description: Destination Role ID
|
|
required:
|
|
- destination
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_17
|
|
'/roles/{roleID}/members':
|
|
get:
|
|
tags:
|
|
- Roles
|
|
summary: Returns all role members
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Source Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/roles/{roleID}/member/{userID}':
|
|
post:
|
|
tags:
|
|
- Roles
|
|
summary: Add member to a role
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Source Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
- in: path
|
|
name: userID
|
|
description: User ID
|
|
required: true
|
|
schema: *ref_14
|
|
delete:
|
|
tags:
|
|
- Roles
|
|
summary: Remove member from a role
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Source Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
- in: path
|
|
name: userID
|
|
description: User ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/roles/{roleID}/trigger':
|
|
post:
|
|
tags:
|
|
- Roles
|
|
summary: 'Fire system:role trigger'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: ID
|
|
required: true
|
|
schema: *ref_14
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_18
|
|
script:
|
|
type: string
|
|
description: Script to execute
|
|
required:
|
|
- script
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_18
|
|
/users/:
|
|
get:
|
|
tags:
|
|
- Users
|
|
summary: Search users (Directory)
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: query
|
|
name: userID
|
|
description: Filter by user ID
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items: *ref_10
|
|
- in: query
|
|
name: roleID
|
|
description: Filter by role membership
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items: *ref_10
|
|
- in: query
|
|
name: query
|
|
description: Search query to match against users
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: username
|
|
description: Search username to match against users
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: email
|
|
description: Search email to match against users
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: handle
|
|
description: Search handle to match against users
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: kind
|
|
description: 'Kind (normal, bot)'
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: incDeleted
|
|
description: '[Deprecated] Include deleted users (requires ''access'' permission)'
|
|
required: false
|
|
schema: &ref_19
|
|
type: boolean
|
|
- in: query
|
|
name: incSuspended
|
|
description: '[Deprecated] Include suspended users'
|
|
required: false
|
|
schema: *ref_19
|
|
- in: query
|
|
name: deleted
|
|
description: 'Exclude (0, default), include (1) or return only (2) deleted users'
|
|
required: false
|
|
schema: *ref_12
|
|
- in: query
|
|
name: suspended
|
|
description: 'Exclude (0, default), include (1) or return only (2) suspended users'
|
|
required: false
|
|
schema: *ref_12
|
|
- in: query
|
|
name: limit
|
|
description: Limit
|
|
required: false
|
|
schema: *ref_12
|
|
- in: query
|
|
name: pageCursor
|
|
description: Page cursor
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: sort
|
|
description: Sort items
|
|
required: false
|
|
schema: *ref_10
|
|
post:
|
|
tags:
|
|
- Users
|
|
summary: Create user
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_20
|
|
email:
|
|
type: string
|
|
description: Email
|
|
name:
|
|
type: string
|
|
description: Name
|
|
handle:
|
|
type: string
|
|
description: Handle
|
|
kind:
|
|
type: string
|
|
description: 'Kind (normal, bot)'
|
|
required:
|
|
- email
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_20
|
|
'/users/{userID}':
|
|
put:
|
|
tags:
|
|
- Users
|
|
summary: Update user details
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: userID
|
|
description: User ID
|
|
required: true
|
|
schema: *ref_14
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_21
|
|
email:
|
|
type: string
|
|
description: Email
|
|
name:
|
|
type: string
|
|
description: Name
|
|
handle:
|
|
type: string
|
|
description: Handle
|
|
kind:
|
|
type: string
|
|
description: 'Kind (normal, bot)'
|
|
required:
|
|
- email
|
|
- name
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_21
|
|
get:
|
|
tags:
|
|
- Users
|
|
summary: Read user details
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: userID
|
|
description: User ID
|
|
required: true
|
|
schema: *ref_14
|
|
delete:
|
|
tags:
|
|
- Users
|
|
summary: Remove user
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: userID
|
|
description: User ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/users/{userID}/suspend':
|
|
post:
|
|
tags:
|
|
- Users
|
|
summary: Suspend user
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: userID
|
|
description: User ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/users/{userID}/unsuspend':
|
|
post:
|
|
tags:
|
|
- Users
|
|
summary: Unsuspend user
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: userID
|
|
description: User ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/users/{userID}/undelete':
|
|
post:
|
|
tags:
|
|
- Users
|
|
summary: Undelete user
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: userID
|
|
description: User ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/users/{userID}/password':
|
|
post:
|
|
tags:
|
|
- Users
|
|
summary: Set's or changes user's password
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: userID
|
|
description: User ID
|
|
required: true
|
|
schema: *ref_14
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_22
|
|
password:
|
|
type: string
|
|
format: password
|
|
description: New password
|
|
required:
|
|
- password
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_22
|
|
'/users/{userID}/membership':
|
|
get:
|
|
tags:
|
|
- Users
|
|
summary: Add member to a role
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: userID
|
|
description: User ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/users/{userID}/membership/{roleID}':
|
|
post:
|
|
tags:
|
|
- Users
|
|
summary: Add role to a user
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
- in: path
|
|
name: userID
|
|
description: User ID
|
|
required: true
|
|
schema: *ref_14
|
|
delete:
|
|
tags:
|
|
- Users
|
|
summary: Remove role from a user
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
- in: path
|
|
name: userID
|
|
description: User ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/users/{userID}/trigger':
|
|
post:
|
|
tags:
|
|
- Users
|
|
summary: 'Fire system:user trigger'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: userID
|
|
description: ID
|
|
required: true
|
|
schema: *ref_14
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_23
|
|
script:
|
|
type: string
|
|
description: Script to execute
|
|
required:
|
|
- script
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_23
|
|
/application/:
|
|
get:
|
|
tags:
|
|
- Applications
|
|
summary: List applications
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: query
|
|
name: name
|
|
description: Application name
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: query
|
|
description: Filter applications
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: deleted
|
|
description: 'Exclude (0, default), include (1) or return only (2) deleted roles'
|
|
required: false
|
|
schema: *ref_12
|
|
- in: query
|
|
name: limit
|
|
description: Limit
|
|
required: false
|
|
schema: *ref_12
|
|
- in: query
|
|
name: pageCursor
|
|
description: Page cursor
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: sort
|
|
description: Sort items
|
|
required: false
|
|
schema: *ref_10
|
|
post:
|
|
tags:
|
|
- Applications
|
|
summary: Create application
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_24
|
|
name:
|
|
type: string
|
|
description: Application name
|
|
enabled:
|
|
type: boolean
|
|
description: Enabled
|
|
unify:
|
|
type: string
|
|
format: json
|
|
description: Unify properties
|
|
config:
|
|
type: string
|
|
format: json
|
|
description: Arbitrary JSON holding application configuration
|
|
required:
|
|
- name
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_24
|
|
'/application/{applicationID}':
|
|
put:
|
|
tags:
|
|
- Applications
|
|
summary: Update user details
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: applicationID
|
|
description: Application ID
|
|
required: true
|
|
schema: *ref_14
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_25
|
|
name:
|
|
type: string
|
|
description: Email
|
|
enabled:
|
|
type: boolean
|
|
description: Enabled
|
|
unify:
|
|
type: string
|
|
format: json
|
|
description: Unify properties
|
|
config:
|
|
type: string
|
|
format: json
|
|
description: Arbitrary JSON holding application configuration
|
|
required:
|
|
- name
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_25
|
|
get:
|
|
tags:
|
|
- Applications
|
|
summary: Read application details
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: applicationID
|
|
description: Application ID
|
|
required: true
|
|
schema: *ref_14
|
|
delete:
|
|
tags:
|
|
- Applications
|
|
summary: Remove application
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: applicationID
|
|
description: Application ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/application/{applicationID}/undelete':
|
|
post:
|
|
tags:
|
|
- Applications
|
|
summary: Undelete application
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: applicationID
|
|
description: Application ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/application/{applicationID}/trigger':
|
|
post:
|
|
tags:
|
|
- Applications
|
|
summary: 'Fire system:application trigger'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: applicationID
|
|
description: ID
|
|
required: true
|
|
schema: *ref_14
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_26
|
|
script:
|
|
type: string
|
|
description: Script to execute
|
|
required:
|
|
- script
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_26
|
|
/permissions/:
|
|
get:
|
|
tags:
|
|
- Permissions
|
|
summary: Retrieve defined permissions
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
/permissions/effective:
|
|
get:
|
|
tags:
|
|
- Permissions
|
|
summary: Effective rules for current user
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: query
|
|
name: resource
|
|
description: Show only rules for a specific resource
|
|
required: false
|
|
schema: *ref_10
|
|
'/permissions/{roleID}/rules':
|
|
get:
|
|
tags:
|
|
- Permissions
|
|
summary: Retrieve role permissions
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
delete:
|
|
tags:
|
|
- Permissions
|
|
summary: Remove all defined role permissions
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
patch:
|
|
tags:
|
|
- Permissions
|
|
summary: Update permission settings
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: roleID
|
|
description: Role ID
|
|
required: true
|
|
schema: *ref_14
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_27
|
|
rules:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
roleID:
|
|
type: string
|
|
format: uuid
|
|
resource:
|
|
type: string
|
|
operation:
|
|
type: string
|
|
access:
|
|
type: string
|
|
description: List of permission rules to set
|
|
required:
|
|
- rules
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_27
|
|
/reminder/:
|
|
get:
|
|
tags:
|
|
- Reminders
|
|
summary: List/read reminders
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: query
|
|
name: reminderID
|
|
description: Filter by reminder ID
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items: *ref_10
|
|
- in: query
|
|
name: resource
|
|
description: Only reminders of a specific resource
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: assignedTo
|
|
description: Only reminders for a given user
|
|
required: false
|
|
schema: *ref_14
|
|
- in: query
|
|
name: scheduledFrom
|
|
description: Only reminders from this time (included)
|
|
required: false
|
|
schema: &ref_28
|
|
type: string
|
|
format: date-time
|
|
- in: query
|
|
name: scheduledUntil
|
|
description: Only reminders up to this time (included)
|
|
required: false
|
|
schema: *ref_28
|
|
- in: query
|
|
name: scheduledOnly
|
|
description: Only scheduled reminders
|
|
required: false
|
|
schema: *ref_19
|
|
- in: query
|
|
name: excludeDismissed
|
|
description: Filter out dismissed reminders
|
|
required: false
|
|
schema: *ref_19
|
|
- in: query
|
|
name: limit
|
|
description: Limit
|
|
required: false
|
|
schema: *ref_12
|
|
- in: query
|
|
name: pageCursor
|
|
description: Page cursor
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: sort
|
|
description: Sort items
|
|
required: false
|
|
schema: *ref_10
|
|
post:
|
|
tags:
|
|
- Reminders
|
|
summary: Add new reminder
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_29
|
|
resource:
|
|
type: string
|
|
description: Resource
|
|
assignedTo:
|
|
type: string
|
|
description: Assigned To
|
|
payload:
|
|
type: string
|
|
format: json
|
|
description: Payload
|
|
remindAt:
|
|
type: string
|
|
format: date-time
|
|
description: Remind At
|
|
required:
|
|
- resource
|
|
- assignedTo
|
|
- payload
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_29
|
|
'/reminder/{reminderID}':
|
|
put:
|
|
tags:
|
|
- Reminders
|
|
summary: Update reminder
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: reminderID
|
|
description: Reminder ID
|
|
required: true
|
|
schema: *ref_14
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_30
|
|
resource:
|
|
type: string
|
|
description: Resource
|
|
assignedTo:
|
|
type: string
|
|
description: Assigned To
|
|
payload:
|
|
type: string
|
|
format: json
|
|
description: Payload
|
|
remindAt:
|
|
type: string
|
|
format: date-time
|
|
description: Remind At
|
|
required:
|
|
- resource
|
|
- assignedTo
|
|
- payload
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_30
|
|
get:
|
|
tags:
|
|
- Reminders
|
|
summary: Read reminder by ID
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: reminderID
|
|
description: Reminder ID
|
|
required: true
|
|
schema: *ref_14
|
|
delete:
|
|
tags:
|
|
- Reminders
|
|
summary: Delete reminder
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: reminderID
|
|
description: Reminder ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/reminder/{reminderID}/dismiss':
|
|
patch:
|
|
tags:
|
|
- Reminders
|
|
summary: Dismiss reminder
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: reminderID
|
|
description: reminder ID
|
|
required: true
|
|
schema: *ref_14
|
|
'/reminder/{reminderID}/snooze':
|
|
patch:
|
|
tags:
|
|
- Reminders
|
|
summary: Snooze reminder
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: reminderID
|
|
description: reminder ID
|
|
required: true
|
|
schema: *ref_14
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_31
|
|
remindAt:
|
|
type: string
|
|
format: date-time
|
|
description: New Remind At Time
|
|
required:
|
|
- remindAt
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_31
|
|
'/attachment/{kind}/{attachmentID}':
|
|
get:
|
|
tags:
|
|
- Attachments
|
|
summary: Attachment details
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: kind
|
|
description: Kind
|
|
required: true
|
|
schema: *ref_10
|
|
- in: path
|
|
name: attachmentID
|
|
description: Attachment ID
|
|
required: true
|
|
schema: *ref_14
|
|
- in: query
|
|
name: sign
|
|
description: Signature
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: userID
|
|
description: User ID
|
|
required: false
|
|
schema: *ref_14
|
|
delete:
|
|
tags:
|
|
- Attachments
|
|
summary: Delete attachment
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: kind
|
|
description: Kind
|
|
required: true
|
|
schema: *ref_10
|
|
- in: path
|
|
name: attachmentID
|
|
description: Attachment ID
|
|
required: true
|
|
schema: *ref_14
|
|
- in: query
|
|
name: sign
|
|
description: Signature
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: userID
|
|
description: User ID
|
|
required: false
|
|
schema: *ref_14
|
|
'/attachment/{kind}/{attachmentID}/original/{name}':
|
|
get:
|
|
tags:
|
|
- Attachments
|
|
summary: Serves attached file
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: kind
|
|
description: Kind
|
|
required: true
|
|
schema: *ref_10
|
|
- in: path
|
|
name: attachmentID
|
|
description: Attachment ID
|
|
required: true
|
|
schema: *ref_14
|
|
- in: path
|
|
name: name
|
|
description: File name
|
|
required: true
|
|
schema: *ref_10
|
|
- in: query
|
|
name: sign
|
|
description: Signature
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: userID
|
|
description: User ID
|
|
required: false
|
|
schema: *ref_14
|
|
- in: query
|
|
name: download
|
|
description: Force file download
|
|
required: false
|
|
schema: *ref_19
|
|
'/attachment/{kind}/{attachmentID}/preview.{ext}':
|
|
get:
|
|
tags:
|
|
- Attachments
|
|
summary: Serves preview of an attached file
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: kind
|
|
description: Kind
|
|
required: true
|
|
schema: *ref_10
|
|
- in: path
|
|
name: attachmentID
|
|
description: Attachment ID
|
|
required: true
|
|
schema: *ref_14
|
|
- in: path
|
|
name: ext
|
|
description: Preview extension/format
|
|
required: true
|
|
schema: *ref_10
|
|
- in: query
|
|
name: sign
|
|
description: Signature
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: userID
|
|
description: User ID
|
|
required: false
|
|
schema: *ref_14
|
|
/stats/:
|
|
get:
|
|
tags:
|
|
- Statistics
|
|
summary: List system statistics
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
/automation/:
|
|
get:
|
|
tags:
|
|
- System automation scripts
|
|
summary: List all available automation scripts for system resources
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: query
|
|
name: resourceTypePrefixes
|
|
description: Filter by resource prefix
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items: *ref_10
|
|
- in: query
|
|
name: resourceTypes
|
|
description: Filter by resource type
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items: *ref_10
|
|
- in: query
|
|
name: eventTypes
|
|
description: Filter by event type
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items: *ref_10
|
|
- in: query
|
|
name: excludeInvalid
|
|
description: Exclude scripts that can not be used (errors)
|
|
required: false
|
|
schema: *ref_19
|
|
- in: query
|
|
name: excludeClientScripts
|
|
description: Do not include client scripts
|
|
required: false
|
|
schema: *ref_19
|
|
- in: query
|
|
name: excludeServerScripts
|
|
description: Do not include server scripts
|
|
required: false
|
|
schema: *ref_19
|
|
'/automation/{bundle}-{type}.{ext}':
|
|
get:
|
|
tags:
|
|
- System automation scripts
|
|
summary: Serves client scripts bundle
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: path
|
|
name: bundle
|
|
description: Name of the bundle
|
|
required: true
|
|
schema: *ref_10
|
|
- in: path
|
|
name: type
|
|
description: Bundle type
|
|
required: true
|
|
schema: *ref_10
|
|
- in: path
|
|
name: ext
|
|
description: Bundle extension
|
|
required: true
|
|
schema: *ref_10
|
|
/automation/trigger:
|
|
post:
|
|
tags:
|
|
- System automation scripts
|
|
summary: Triggers execution of a specific script on a system service level
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_32
|
|
script:
|
|
type: string
|
|
description: Script to execute
|
|
required:
|
|
- script
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties: *ref_32
|
|
/actionlog/:
|
|
get:
|
|
tags:
|
|
- Action log
|
|
summary: Action log events
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
parameters:
|
|
- in: query
|
|
name: from
|
|
description: From
|
|
required: false
|
|
schema: *ref_28
|
|
- in: query
|
|
name: to
|
|
description: To
|
|
required: false
|
|
schema: *ref_28
|
|
- in: query
|
|
name: resource
|
|
description: Resource
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: action
|
|
description: Action
|
|
required: false
|
|
schema: *ref_10
|
|
- in: query
|
|
name: actorID
|
|
description: Filter by one or more actors
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items: *ref_10
|
|
- in: query
|
|
name: limit
|
|
description: Limit
|
|
required: false
|
|
schema: *ref_12
|
|
- in: query
|
|
name: pageCursor
|
|
description: Page cursor
|
|
required: false
|
|
schema: *ref_10
|