VRE Backend API and Scheduler
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.
 
 
 
 
 
Broker/doc/swagger.yaml

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