You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1637 lines
42 KiB
1637 lines
42 KiB
swagger: "2.0" |
|
info: |
|
title: Research Workspaces API |
|
description: Here you can see a list of API endpoints and actions that are available to communicate with the VRE API |
|
termsOfService: https://www.rug.nl |
|
contact: |
|
email: vre_team@rug.nl |
|
license: |
|
name: MIT License |
|
version: v1 |
|
host: workspaces.research.rug.nl |
|
schemes: |
|
- https |
|
basePath: /api |
|
consumes: |
|
- application/json |
|
produces: |
|
- application/json |
|
securityDefinitions: |
|
JWT: |
|
type: apiKey |
|
description: "Prefix token with 'JWT '.<br /><strong>Ex header:</strong> 'Authorization': 'JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjE2MDU2NTg0LCJqdGkiOiIwNGNhZTk0MWEyNWQ0NjU5ODA4NDg2OTU2NGQzZmZlZSIsInVzZXJfaWQiOjN9.IShrsNu0qJWASQ3xSZR7PHTD0zzRgbYG52D5iQjdRLI'<br />Use the " |
|
name: Authorization |
|
in: header |
|
Hawk: |
|
type: apiKey |
|
description: 'HTTP Holder-Of-Key Authentication Scheme, https://github.com/hapijs/hawk, https://hawkrest.readthedocs.io/en/latest/<br /><strong>Ex header:</strong><br />''Authorization'': ''Hawk mac="F4+S9cu7yZiZEgdtqzMpOOdudvqcV2V2Yzk2WcphECc=", hash="+7fKUX+djeQolvnLTxr0X47e//UHKbkRlajwMw3tx3w=", id="7FI5JET4", ts="1592905433", nonce="DlV-fL"''' |
|
name: Authorization |
|
in: header |
|
security: |
|
- Hawk: [] |
|
- JWT: [] |
|
paths: |
|
/auth/hawk/create/: |
|
post: |
|
operationId: auth_hawk_create_create |
|
description: This will let you login to the REST API. Login with your username and password, and get a key and a secret back that is used for further communication using HAWK signing of requests (https://github.com/hapijs/hawk). |
|
parameters: |
|
- name: data |
|
in: body |
|
required: true |
|
schema: |
|
$ref: "#/definitions/TokenLogin" |
|
responses: |
|
"200": |
|
description: response description |
|
schema: |
|
$ref: "#/definitions/Token" |
|
tags: |
|
- auth |
|
security: [] |
|
parameters: [] |
|
/auth/jwt/create/: |
|
post: |
|
operationId: auth_jwt_create_create |
|
description: |- |
|
Takes a set of user credentials and returns an access and refresh JSON web |
|
token pair to prove the authentication of those credentials. |
|
parameters: |
|
- name: data |
|
in: body |
|
required: true |
|
schema: |
|
$ref: "#/definitions/TokenObtainPair" |
|
responses: |
|
"201": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/TokenObtainPair" |
|
tags: |
|
- auth |
|
parameters: [] |
|
/auth/jwt/refresh/: |
|
post: |
|
operationId: auth_jwt_refresh_create |
|
description: |- |
|
Takes a refresh type JSON web token and returns an access type JSON web |
|
token if the refresh token is valid. |
|
parameters: |
|
- name: data |
|
in: body |
|
required: true |
|
schema: |
|
$ref: "#/definitions/TokenRefresh" |
|
responses: |
|
"201": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/TokenRefresh" |
|
tags: |
|
- auth |
|
parameters: [] |
|
/auth/jwt/verify/: |
|
post: |
|
operationId: auth_jwt_verify_create |
|
description: |- |
|
Takes a token and indicates if it is valid. This view provides no |
|
information about a token's fitness for a particular use. |
|
parameters: |
|
- name: data |
|
in: body |
|
required: true |
|
schema: |
|
$ref: "#/definitions/TokenVerify" |
|
responses: |
|
"201": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/TokenVerify" |
|
tags: |
|
- auth |
|
parameters: [] |
|
/v1/researchers/: |
|
get: |
|
operationId: v1_researchers_list |
|
description: API endpoint for getting researchers of the same faculty as the logged in user. This is a readonly endpoint ordered by lastname. |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
required: |
|
- count |
|
- results |
|
type: object |
|
properties: |
|
count: |
|
type: integer |
|
next: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
previous: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
results: |
|
type: array |
|
items: |
|
$ref: "#/definitions/ResearcherDetail" |
|
tags: |
|
- v1 |
|
parameters: [] |
|
/v1/researchers/me/: |
|
get: |
|
operationId: v1_researchers_me_read |
|
description: API endpoint for getting researchers of the same faculty as the logged in user. This is a readonly endpoint ordered by lastname. |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/ResearcherDetail" |
|
tags: |
|
- v1 |
|
put: |
|
operationId: v1_researchers_me_update |
|
description: API endpoint for getting researchers of the same faculty as the logged in user. This is a readonly endpoint ordered by lastname. |
|
parameters: |
|
- name: data |
|
in: body |
|
required: true |
|
schema: |
|
$ref: "#/definitions/Researcher" |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/ResearcherDetail" |
|
tags: |
|
- v1 |
|
parameters: [] |
|
/v1/studies/: |
|
get: |
|
operationId: v1_studies_list |
|
description: API endpoint for creating/reading/updating/deleting studies. |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
required: |
|
- count |
|
- results |
|
type: object |
|
properties: |
|
count: |
|
type: integer |
|
next: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
previous: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
results: |
|
type: array |
|
items: |
|
$ref: "#/definitions/StudyDetail" |
|
tags: |
|
- v1 |
|
post: |
|
operationId: v1_studies_create |
|
description: API endpoint for creating/reading/updating/deleting studies. |
|
parameters: |
|
- name: data |
|
in: body |
|
required: true |
|
schema: |
|
$ref: "#/definitions/Study" |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/StudyDetail" |
|
tags: |
|
- v1 |
|
parameters: [] |
|
/v1/studies/fields/: |
|
get: |
|
operationId: v1_studies_fields |
|
description: Get the logged in researcher his study fields based on the faculty where he belongs to. In other words, this is the list of study fields where the logged in user can do research on. |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
type: array |
|
items: |
|
$ref: "#/definitions/StudyField" |
|
tags: |
|
- v1 |
|
parameters: [] |
|
/v1/studies/invited/: |
|
get: |
|
operationId: v1_studies_invited |
|
description: Show a list of studies where the researcher is invited to. |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
type: array |
|
items: |
|
$ref: "#/definitions/StudyDetail" |
|
tags: |
|
- v1 |
|
parameters: [] |
|
/v1/studies/roles/: |
|
get: |
|
operationId: v1_studies_roles |
|
description: Get all the availabe researcher roles for a study. |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
type: array |
|
items: |
|
$ref: "#/definitions/StudyRole" |
|
tags: |
|
- v1 |
|
parameters: [] |
|
/v1/studies/{id}/: |
|
get: |
|
operationId: v1_studies_read |
|
description: API endpoint for creating/reading/updating/deleting studies. |
|
parameters: [] |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/StudyDetail" |
|
tags: |
|
- v1 |
|
put: |
|
operationId: v1_studies_update |
|
description: API endpoint for creating/reading/updating/deleting studies. |
|
parameters: |
|
- name: data |
|
in: body |
|
required: true |
|
schema: |
|
$ref: "#/definitions/Study" |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/StudyDetail" |
|
tags: |
|
- v1 |
|
delete: |
|
operationId: v1_studies_delete |
|
description: API endpoint for creating/reading/updating/deleting studies. |
|
parameters: [] |
|
responses: |
|
"204": |
|
description: "" |
|
tags: |
|
- v1 |
|
parameters: |
|
- name: id |
|
in: path |
|
description: A unique integer value identifying this studie. |
|
required: true |
|
type: integer |
|
/v1/studies/{study_id}/app-types/: |
|
get: |
|
operationId: v1_studies_app-types_list |
|
description: Get all the app types that are available for a study based on the faculty available app types or all general app types (with no specific faculty) |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
required: |
|
- count |
|
- results |
|
type: object |
|
properties: |
|
count: |
|
type: integer |
|
next: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
previous: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
results: |
|
type: array |
|
items: |
|
$ref: "#/definitions/VRE_AppType" |
|
tags: |
|
- v1 |
|
parameters: |
|
- name: study_id |
|
in: path |
|
required: true |
|
type: string |
|
/v1/studies/{study_id}/app-types/{app_type}/: |
|
get: |
|
operationId: v1_studies_app-types_list |
|
description: Get all the apps of a specific type for a study. |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/VRE_AppContributor" |
|
tags: |
|
- v1 |
|
post: |
|
operationId: v1_studies_app-types_create |
|
description: Create a new app for a contributor of a study. An app can only be created by an admin and only once per contributor |
|
parameters: |
|
- name: data |
|
in: body |
|
required: true |
|
schema: |
|
$ref: "#/definitions/VRE_AppCreate" |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/VRE_App" |
|
tags: |
|
- v1 |
|
parameters: |
|
- name: app_type |
|
in: path |
|
required: true |
|
type: string |
|
- name: study_id |
|
in: path |
|
required: true |
|
type: string |
|
/v1/studies/{study_id}/app-types/{app_type}/profiles/: |
|
get: |
|
operationId: v1_studies_app-types_profiles_list |
|
description: List all the available versions of a specific app (slug) that can be used for this study |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
required: |
|
- count |
|
- results |
|
type: object |
|
properties: |
|
count: |
|
type: integer |
|
next: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
previous: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
results: |
|
type: array |
|
items: |
|
$ref: "#/definitions/VRE_AppProfile" |
|
tags: |
|
- v1 |
|
parameters: |
|
- name: app_type |
|
in: path |
|
required: true |
|
type: string |
|
- name: study_id |
|
in: path |
|
required: true |
|
type: string |
|
/v1/studies/{study_id}/apps/me/: |
|
get: |
|
operationId: v1_studies_apps_me |
|
description: Get all the apps that are available for the logged in researcher for a study |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/VRE_App" |
|
tags: |
|
- v1 |
|
parameters: |
|
- name: study_id |
|
in: path |
|
required: true |
|
type: string |
|
/v1/studies/{study_id}/apps/{app_id}/: |
|
get: |
|
operationId: v1_studies_apps_read |
|
description: "" |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
required: |
|
- count |
|
- results |
|
type: object |
|
properties: |
|
count: |
|
type: integer |
|
next: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
previous: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
results: |
|
type: array |
|
items: |
|
$ref: "#/definitions/VRE_App" |
|
tags: |
|
- v1 |
|
delete: |
|
operationId: v1_studies_apps_delete |
|
description: Delete an existing app from a study. This can only be done by either an administrator or the owner of the study. |
|
parameters: [] |
|
responses: |
|
"204": |
|
description: No content |
|
tags: |
|
- v1 |
|
parameters: |
|
- name: app_id |
|
in: path |
|
required: true |
|
type: string |
|
- name: study_id |
|
in: path |
|
required: true |
|
type: string |
|
/v1/studies/{study_id}/contributors/: |
|
get: |
|
operationId: v1_studies_contributors_list |
|
description: Get all the contributors that are assigned to a study of which you are also a member of. |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
type: array |
|
items: |
|
$ref: "#/definitions/Contributor" |
|
tags: |
|
- v1 |
|
parameters: |
|
- name: study_id |
|
in: path |
|
description: Study |
|
required: true |
|
type: string |
|
/v1/studies/{study_id}/contributors/invite/: |
|
post: |
|
operationId: v1_studies_contributors_invite_create |
|
description: Sent an invitation to a new or existing researcher. The researcher is looked up based on email address. |
|
parameters: |
|
- name: data |
|
in: body |
|
required: true |
|
schema: |
|
$ref: "#/definitions/Invite" |
|
responses: |
|
"201": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/Invite" |
|
tags: |
|
- v1 |
|
parameters: |
|
- name: study_id |
|
in: path |
|
required: true |
|
type: string |
|
/v1/studies/{study_id}/contributors/join/{jwt_token}: |
|
get: |
|
operationId: v1_studies_contributors_join_read |
|
description: This will validate an invitation for a researcher for a single study. The JWT token is valid for 3 days. |
|
parameters: [] |
|
responses: |
|
"200": |
|
description: "" |
|
tags: |
|
- v1 |
|
parameters: |
|
- name: jwt_token |
|
in: path |
|
required: true |
|
type: string |
|
- name: study_id |
|
in: path |
|
required: true |
|
type: string |
|
/v1/studies/{study_id}/contributors/{contributor_id}/: |
|
get: |
|
operationId: v1_studies_contributors_read |
|
description: Get a single contributors that is assigned to a study for a study of which you are also a member of. |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/Contributor" |
|
tags: |
|
- v1 |
|
post: |
|
operationId: v1_studies_contributors_update |
|
description: Update an existing contributor role. This can only be done by study admins. |
|
parameters: |
|
- name: data |
|
in: body |
|
required: true |
|
schema: |
|
$ref: "#/definitions/ContributorUpdate" |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/Contributor" |
|
tags: |
|
- v1 |
|
put: |
|
operationId: v1_studies_contributors_update |
|
description: Update an existing contributor role. This can only be done by study admins. |
|
parameters: |
|
- name: data |
|
in: body |
|
required: true |
|
schema: |
|
$ref: "#/definitions/ContributorUpdate" |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/Contributor" |
|
tags: |
|
- v1 |
|
delete: |
|
operationId: v1_studies_contributors_delete |
|
description: Delete an existing researche from a study. This can only be done by either an admin or owner of the study |
|
parameters: [] |
|
responses: |
|
"204": |
|
description: "" |
|
tags: |
|
- v1 |
|
parameters: |
|
- name: contributor_id |
|
in: path |
|
required: true |
|
type: string |
|
- name: study_id |
|
in: path |
|
description: Study |
|
required: true |
|
type: string |
|
/v1/universities/: |
|
get: |
|
operationId: v1_universities_list |
|
description: Give the list of all the available universities |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
required: |
|
- count |
|
- results |
|
type: object |
|
properties: |
|
count: |
|
type: integer |
|
next: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
previous: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
results: |
|
type: array |
|
items: |
|
$ref: "#/definitions/University" |
|
tags: |
|
- v1 |
|
parameters: [] |
|
/v1/universities/{id}/faculties/: |
|
get: |
|
operationId: v1_universities_faculties_list |
|
description: Give the list of all the faculties that are available for a university. |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
required: |
|
- count |
|
- results |
|
type: object |
|
properties: |
|
count: |
|
type: integer |
|
next: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
previous: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
results: |
|
type: array |
|
items: |
|
$ref: "#/definitions/Faculty" |
|
tags: |
|
- v1 |
|
parameters: |
|
- name: id |
|
in: path |
|
description: A unique integer value identifying this faculty. |
|
required: true |
|
type: integer |
|
/v1/universities/{university}/faculties/{faculty}/study_fields/: |
|
get: |
|
operationId: v1_universities_faculties_study_fields_list |
|
description: Give the list of all the study fields that the faculty does research on. |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
required: |
|
- count |
|
- results |
|
type: object |
|
properties: |
|
count: |
|
type: integer |
|
next: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
previous: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
results: |
|
type: array |
|
items: |
|
$ref: "#/definitions/StudyField" |
|
tags: |
|
- v1 |
|
parameters: |
|
- name: faculty |
|
in: path |
|
description: To wich faculty belongs this study |
|
required: true |
|
type: string |
|
- name: university |
|
in: path |
|
required: true |
|
type: string |
|
/v1/vrw/list/: |
|
get: |
|
operationId: v1_vrw_list_list |
|
summary: Give a list of all the available Virtual Workspaces ordered by the creating date. Showing oldest first by default. |
|
description: The list can be filtered by using the status variable. Set the status to ':attr:`~apps.vrw.models.WorkspaceStatus.NEW`' and you will only see Virtual Workspaces with that status. |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
required: |
|
- count |
|
- results |
|
type: object |
|
properties: |
|
count: |
|
type: integer |
|
next: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
previous: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
results: |
|
type: array |
|
items: |
|
$ref: "#/definitions/WorkspaceQueue" |
|
tags: |
|
- v1 |
|
parameters: [] |
|
/v1/vrw/list/{status}/: |
|
get: |
|
operationId: v1_vrw_list_read |
|
summary: Give a list of all the available Virtual Workspaces ordered by the creating date. Showing oldest first by default. |
|
description: The list can be filtered by using the status variable. Set the status to ':attr:`~apps.vrw.models.WorkspaceStatus.NEW`' and you will only see Virtual Workspaces with that status. |
|
parameters: |
|
- name: page |
|
in: query |
|
description: A page number within the paginated result set. |
|
required: false |
|
type: integer |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
required: |
|
- count |
|
- results |
|
type: object |
|
properties: |
|
count: |
|
type: integer |
|
next: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
previous: |
|
type: string |
|
format: uri |
|
x-nullable: true |
|
results: |
|
type: array |
|
items: |
|
$ref: "#/definitions/WorkspaceQueue" |
|
tags: |
|
- v1 |
|
parameters: |
|
- name: status |
|
in: path |
|
required: true |
|
type: string |
|
/v1/vrw/{id}/status/: |
|
put: |
|
operationId: v1_vrw_status_update |
|
description: This is an update view where the status of a Virtual Workspace can be changed. |
|
parameters: |
|
- name: data |
|
in: body |
|
required: true |
|
schema: |
|
$ref: "#/definitions/WorkspaceStatusUpdate" |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/WorkspaceStatusUpdate" |
|
tags: |
|
- v1 |
|
parameters: |
|
- name: id |
|
in: path |
|
description: A unique integer value identifying this virtual workspace queue. |
|
required: true |
|
type: integer |
|
/v1/vrw/{virtual_machine}/: |
|
get: |
|
operationId: v1_vrw_read |
|
description: Show detail information for a specific Virtual Workspace. |
|
parameters: [] |
|
responses: |
|
"200": |
|
description: "" |
|
schema: |
|
$ref: "#/definitions/Workspace" |
|
tags: |
|
- v1 |
|
parameters: |
|
- name: virtual_machine |
|
in: path |
|
description: The virtual machine configuration. |
|
required: true |
|
type: string |
|
definitions: |
|
TokenLogin: |
|
required: |
|
- username |
|
- password |
|
type: object |
|
properties: |
|
username: |
|
title: Username |
|
description: Your username to login |
|
type: string |
|
maxLength: 200 |
|
minLength: 1 |
|
password: |
|
title: Password |
|
description: Your password to login |
|
type: string |
|
maxLength: 200 |
|
minLength: 1 |
|
Token: |
|
type: object |
|
properties: |
|
key: |
|
title: Key |
|
description: The key for this token. This is used for Hawk verification. |
|
type: string |
|
maxLength: 16 |
|
minLength: 1 |
|
secret: |
|
title: Secret |
|
description: The secret for this token. This is used for Hawk signing. |
|
type: string |
|
maxLength: 64 |
|
minLength: 1 |
|
TokenObtainPair: |
|
required: |
|
- username |
|
- password |
|
type: object |
|
properties: |
|
username: |
|
title: Username |
|
type: string |
|
minLength: 1 |
|
password: |
|
title: Password |
|
type: string |
|
minLength: 1 |
|
TokenRefresh: |
|
required: |
|
- refresh |
|
type: object |
|
properties: |
|
refresh: |
|
title: Refresh |
|
type: string |
|
minLength: 1 |
|
access: |
|
title: Access |
|
type: string |
|
readOnly: true |
|
TokenVerify: |
|
required: |
|
- token |
|
type: object |
|
properties: |
|
token: |
|
title: Token |
|
type: string |
|
minLength: 1 |
|
University: |
|
required: |
|
- name |
|
type: object |
|
properties: |
|
id: |
|
title: ID |
|
type: integer |
|
readOnly: true |
|
name: |
|
title: Name |
|
description: The name of the university. |
|
type: string |
|
maxLength: 200 |
|
minLength: 1 |
|
Faculty: |
|
required: |
|
- name |
|
- university |
|
type: object |
|
properties: |
|
id: |
|
title: ID |
|
type: integer |
|
readOnly: true |
|
name: |
|
title: Name |
|
description: The name of the faculty. |
|
type: string |
|
maxLength: 200 |
|
minLength: 1 |
|
university: |
|
$ref: "#/definitions/University" |
|
ResearcherDetail: |
|
type: object |
|
properties: |
|
id: |
|
title: ID |
|
type: integer |
|
readOnly: true |
|
first_name: |
|
title: First name |
|
type: string |
|
readOnly: true |
|
minLength: 1 |
|
last_name: |
|
title: Last name |
|
type: string |
|
readOnly: true |
|
minLength: 1 |
|
email_address: |
|
title: Email address |
|
type: string |
|
readOnly: true |
|
minLength: 1 |
|
display_name: |
|
title: Display name |
|
description: The full name including titles |
|
type: string |
|
readOnly: true |
|
minLength: 1 |
|
university: |
|
$ref: "#/definitions/University" |
|
faculty: |
|
$ref: "#/definitions/Faculty" |
|
created_at: |
|
title: Date created |
|
description: The date and time this model has been created |
|
type: string |
|
format: date-time |
|
readOnly: true |
|
updated_at: |
|
title: Date updated |
|
description: The date and time this model has been updated |
|
type: string |
|
format: date-time |
|
readOnly: true |
|
mobilephone: |
|
title: Mobile phone |
|
description: This mobile phone number is used for 2FA |
|
type: string |
|
pattern: ^\+?1?\d{8,15}$ |
|
maxLength: 16 |
|
minLength: 1 |
|
x-nullable: true |
|
avatar: |
|
title: Avatar |
|
type: string |
|
readOnly: true |
|
x-nullable: true |
|
format: uri |
|
idnumber: |
|
title: ID Number |
|
description: Either an identification number (P/S number) or email address |
|
type: string |
|
maxLength: 50 |
|
minLength: 1 |
|
x-nullable: true |
|
Researcher: |
|
required: |
|
- first_name |
|
- last_name |
|
type: object |
|
properties: |
|
id: |
|
title: ID |
|
type: integer |
|
readOnly: true |
|
first_name: |
|
title: First name |
|
type: string |
|
minLength: 1 |
|
last_name: |
|
title: Last name |
|
type: string |
|
minLength: 1 |
|
avatar: |
|
title: Image file content |
|
type: string |
|
readOnly: false |
|
description: Content of the image base64 encoded |
|
format: uri |
|
created_at: |
|
title: Date created |
|
description: The date and time this model has been created |
|
type: string |
|
format: date-time |
|
readOnly: true |
|
updated_at: |
|
title: Date updated |
|
description: The date and time this model has been updated |
|
type: string |
|
format: date-time |
|
readOnly: true |
|
mobilephone: |
|
title: Mobile phone |
|
description: This mobile phone number is used for 2FA |
|
type: string |
|
pattern: ^\+?1?\d{8,15}$ |
|
maxLength: 16 |
|
minLength: 1 |
|
x-nullable: true |
|
idnumber: |
|
title: ID Number |
|
description: Either an identification number (P/S number) or email address |
|
type: string |
|
maxLength: 50 |
|
minLength: 1 |
|
x-nullable: true |
|
faculty: |
|
title: Faculty |
|
description: Select the faculty where this researcher belongs to |
|
type: integer |
|
x-nullable: true |
|
Contributor: |
|
type: object |
|
properties: |
|
id: |
|
title: ID |
|
type: integer |
|
readOnly: true |
|
researcher: |
|
$ref: "#/definitions/ResearcherDetail" |
|
role: |
|
title: Role |
|
description: The role withing this research study. |
|
type: string |
|
enum: |
|
- ADMIN |
|
- CONTRIBUTOR |
|
active: |
|
title: Active |
|
description: Is the researcher an active member of the study |
|
type: boolean |
|
invited_at: |
|
title: Date invited |
|
description: The date and time when the invitation has been sent |
|
type: string |
|
format: date-time |
|
StudyField: |
|
required: |
|
- name |
|
- faculty |
|
type: object |
|
properties: |
|
id: |
|
title: ID |
|
type: integer |
|
readOnly: true |
|
name: |
|
title: Name |
|
description: The name of the study field. |
|
type: string |
|
maxLength: 200 |
|
minLength: 1 |
|
faculty: |
|
$ref: "#/definitions/Faculty" |
|
StudyDetail: |
|
required: |
|
- name |
|
- code |
|
- human_subject |
|
type: object |
|
properties: |
|
id: |
|
title: ID |
|
type: integer |
|
readOnly: true |
|
owner: |
|
$ref: "#/definitions/ResearcherDetail" |
|
contributors: |
|
type: array |
|
items: |
|
$ref: "#/definitions/Contributor" |
|
readOnly: true |
|
field: |
|
$ref: "#/definitions/StudyField" |
|
created_at: |
|
title: Date created |
|
description: The date and time this model has been created |
|
type: string |
|
format: date-time |
|
readOnly: true |
|
updated_at: |
|
title: Date updated |
|
description: The date and time this model has been updated |
|
type: string |
|
format: date-time |
|
readOnly: true |
|
name: |
|
title: Name |
|
description: Name of the research study. |
|
type: string |
|
maxLength: 200 |
|
minLength: 1 |
|
description: |
|
title: Description |
|
description: Enter a short description for this study. |
|
type: string |
|
x-nullable: true |
|
avatar: |
|
title: Avatar |
|
type: string |
|
readOnly: true |
|
x-nullable: true |
|
format: uri |
|
code: |
|
title: Code |
|
description: The research study code. |
|
type: string |
|
maxLength: 50 |
|
minLength: 1 |
|
human_subject: |
|
title: Human subject |
|
description: Is this research study using real humans. |
|
type: boolean |
|
Study: |
|
required: |
|
- name |
|
- code |
|
- human_subject |
|
- field |
|
type: object |
|
properties: |
|
id: |
|
title: ID |
|
type: integer |
|
readOnly: true |
|
avatar: |
|
title: Image file content |
|
type: string |
|
readOnly: false |
|
description: Content of the image base64 encoded |
|
format: uri |
|
created_at: |
|
title: Date created |
|
description: The date and time this model has been created |
|
type: string |
|
format: date-time |
|
readOnly: true |
|
updated_at: |
|
title: Date updated |
|
description: The date and time this model has been updated |
|
type: string |
|
format: date-time |
|
readOnly: true |
|
name: |
|
title: Name |
|
description: Name of the research study. |
|
type: string |
|
maxLength: 200 |
|
minLength: 1 |
|
description: |
|
title: Description |
|
description: Enter a short description for this study. |
|
type: string |
|
x-nullable: true |
|
code: |
|
title: Code |
|
description: The research study code. |
|
type: string |
|
maxLength: 50 |
|
minLength: 1 |
|
human_subject: |
|
title: Human subject |
|
description: Is this research study using real humans. |
|
type: boolean |
|
owner: |
|
title: Researcher |
|
description: The researcher that is the owner this study. By default the researcher that has created this study. |
|
type: integer |
|
readOnly: true |
|
field: |
|
title: Study field |
|
description: The study field for this reaserch study. |
|
type: integer |
|
contributors: |
|
type: array |
|
items: |
|
type: integer |
|
readOnly: true |
|
uniqueItems: true |
|
StudyRole: |
|
required: |
|
- id |
|
- name |
|
type: object |
|
properties: |
|
id: |
|
title: Id |
|
type: string |
|
minLength: 1 |
|
name: |
|
title: Name |
|
type: string |
|
minLength: 1 |
|
VRE_AppType: |
|
type: object |
|
properties: |
|
id: |
|
title: ID |
|
type: integer |
|
readOnly: true |
|
has_apps: |
|
title: Has apps |
|
description: The amount of available profiles for this app type |
|
type: integer |
|
readOnly: true |
|
slug: |
|
title: Url slug for the Front-end |
|
description: Based on this slug, the GUI can show different forms. |
|
type: string |
|
format: slug |
|
pattern: ^[-a-zA-Z0-9_]+$ |
|
readOnly: true |
|
minLength: 1 |
|
title: |
|
title: Title |
|
description: Human readable name for this app type |
|
type: string |
|
readOnly: true |
|
minLength: 1 |
|
description: |
|
title: Description |
|
description: Description for this app |
|
type: string |
|
minLength: 1 |
|
x-nullable: true |
|
avatar: |
|
title: Avatar |
|
description: An image/icon for this app used in the GUI |
|
type: string |
|
readOnly: true |
|
x-nullable: true |
|
format: uri |
|
VRE_AppContributor: |
|
type: object |
|
properties: |
|
id: |
|
title: ID |
|
type: integer |
|
readOnly: true |
|
display_name: |
|
title: Display name |
|
description: A human readable name for this app |
|
type: string |
|
readOnly: true |
|
avatar: |
|
title: Avatar |
|
description: An image/icon for this app used in the GUI |
|
type: string |
|
readOnly: true |
|
login_url: |
|
title: Login url |
|
description: The login url/download for using this app |
|
type: string |
|
readOnly: true |
|
contributor: |
|
$ref: "#/definitions/Contributor" |
|
VRE_AppCreate: |
|
required: |
|
- version |
|
- contributor |
|
type: object |
|
properties: |
|
version: |
|
title: Version |
|
description: The version of the app |
|
type: integer |
|
contributor: |
|
title: Contributor |
|
description: The contributor to whom this apps belongs to |
|
type: integer |
|
VRE_App: |
|
type: object |
|
properties: |
|
id: |
|
title: ID |
|
type: integer |
|
readOnly: true |
|
display_name: |
|
title: Display name |
|
description: A human readable name for this app |
|
type: string |
|
readOnly: true |
|
avatar: |
|
title: Avatar |
|
description: An image/icon for this app used in the GUI |
|
type: string |
|
readOnly: true |
|
login_url: |
|
title: Login url |
|
description: The login url/download for using this app |
|
type: string |
|
readOnly: true |
|
VRE_AppProfile: |
|
type: object |
|
properties: |
|
id: |
|
title: ID |
|
type: integer |
|
readOnly: true |
|
title: |
|
title: Title |
|
description: Human readable name for this app profile |
|
type: string |
|
readOnly: true |
|
minLength: 1 |
|
Invite: |
|
required: |
|
- first_name |
|
- last_name |
|
- email |
|
- role |
|
type: object |
|
properties: |
|
first_name: |
|
title: First name |
|
type: string |
|
maxLength: 100 |
|
minLength: 1 |
|
last_name: |
|
title: Last name |
|
type: string |
|
maxLength: 100 |
|
minLength: 1 |
|
email: |
|
title: Email |
|
type: string |
|
format: email |
|
minLength: 1 |
|
role: |
|
title: Role |
|
type: string |
|
enum: |
|
- ADMIN |
|
- CONTRIBUTOR |
|
ContributorUpdate: |
|
type: object |
|
properties: |
|
role: |
|
title: Role |
|
description: The role withing this research study. |
|
type: string |
|
enum: |
|
- ADMIN |
|
- CONTRIBUTOR |
|
WorkspaceQueue: |
|
type: object |
|
properties: |
|
id: |
|
title: Id |
|
type: integer |
|
readOnly: true |
|
workspace: |
|
title: Workspace |
|
type: object |
|
readOnly: true |
|
WorkspaceStatusUpdate: |
|
required: |
|
- status |
|
type: object |
|
properties: |
|
status: |
|
title: Status |
|
type: string |
|
enum: |
|
- NEW |
|
- CHANGE |
|
- DONE |
|
- ERROR |
|
- OFFLINE |
|
- DELETE |
|
- TERMINATED |
|
cloud_id: |
|
title: Cloud id |
|
type: string |
|
minLength: 1 |
|
WorkspaceStudy: |
|
required: |
|
- name |
|
type: object |
|
properties: |
|
id: |
|
title: ID |
|
type: integer |
|
readOnly: true |
|
name: |
|
title: Name |
|
description: Name of the research study. |
|
type: string |
|
maxLength: 200 |
|
minLength: 1 |
|
WorkspaceResearcher: |
|
required: |
|
- first_name |
|
- last_name |
|
- email_address |
|
- mobilephone |
|
type: object |
|
properties: |
|
first_name: |
|
title: First name |
|
type: string |
|
minLength: 1 |
|
last_name: |
|
title: Last name |
|
type: string |
|
minLength: 1 |
|
email_address: |
|
title: Email address |
|
type: string |
|
minLength: 1 |
|
mobilephone: |
|
title: Mobilephone |
|
type: string |
|
minLength: 1 |
|
WorkspaceStorage: |
|
required: |
|
- type |
|
- location |
|
- username |
|
- password |
|
- path |
|
type: object |
|
properties: |
|
type: |
|
title: Type |
|
type: string |
|
minLength: 1 |
|
location: |
|
title: Location |
|
type: string |
|
minLength: 1 |
|
username: |
|
title: Username |
|
type: string |
|
minLength: 1 |
|
password: |
|
title: Password |
|
type: string |
|
minLength: 1 |
|
path: |
|
title: Path |
|
type: string |
|
minLength: 1 |
|
Workspace: |
|
required: |
|
- role |
|
- status |
|
type: object |
|
properties: |
|
id: |
|
title: Id |
|
type: integer |
|
readOnly: true |
|
study: |
|
$ref: "#/definitions/WorkspaceStudy" |
|
researcher: |
|
$ref: "#/definitions/WorkspaceResearcher" |
|
role: |
|
title: Role |
|
type: string |
|
minLength: 1 |
|
mount: |
|
$ref: "#/definitions/WorkspaceStorage" |
|
type: |
|
title: Type |
|
type: string |
|
readOnly: true |
|
minLength: 1 |
|
disk: |
|
title: Disk |
|
type: integer |
|
readOnly: true |
|
memory: |
|
title: Memory |
|
type: integer |
|
readOnly: true |
|
gpu: |
|
title: Gpu |
|
type: integer |
|
readOnly: true |
|
request_date: |
|
title: Request date |
|
type: string |
|
format: date-time |
|
readOnly: true |
|
start_date: |
|
title: Start date |
|
type: string |
|
format: date-time |
|
readOnly: true |
|
end_data: |
|
title: End data |
|
type: string |
|
format: date-time |
|
readOnly: true |
|
status: |
|
title: Status |
|
type: string |
|
enum: |
|
- NEW |
|
- CHANGE |
|
- DONE |
|
- ERROR |
|
- OFFLINE |
|
- DELETE |
|
- TERMINATED |
|
cloud_id: |
|
title: Cloud id |
|
type: string |
|
readOnly: true |
|
minLength: 1
|
|
|