Download OpenAPI specification:
Get all groups of the user.
| page | integer <int32> |
| size | integer <int32> [ 1 .. 100 ] |
| sort | string Enum: "asc" "desc" |
| sortBy | string |
{- "items": [
- {
- "id": "123e4567-e89b-12d3-a456-426614174100",
- "title": "GPU Research Group",
- "description": "Group for GPU research and experiments.",
- "isArchived": false,
- "createdAt": "2024-01-01T12:00:00Z",
- "updatedAt": "2024-10-01T12:00:00Z",
- "me": {
- "type": "membership",
- "role": {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "roleName": "Member",
- "accessLevel": "USER"
}
}
}
], - "totalPages": 10,
- "totalItems": 100,
- "currentPage": 1,
- "pageSize": 10,
- "hasNextPage": true
}Create a new group. Only admin level can reach this endpoint.
| title required | string |
| description required | string |
Array of objects (Groups.AddMemberRequest) | |
Array of objects (Groups.CreateLinkRequest) |
{- "title": "Distributed Systems Project",
- "description": "Group for the distributed systems course project.",
- "members": [
- {
- "member": "alice@university.edu",
- "roleId": "123e4567-e89b-12d3-a456-426614174000"
}
],
}{- "addedResult": {
- "addedSuccessNumber": 2,
- "addedFailureNumber": 0,
- "errors": [ ]
}, - "id": "123e4567-e89b-12d3-a456-426614174100",
- "title": "GPU Research Group",
- "description": "Group for GPU research and experiments.",
- "isArchived": false,
- "createdAt": "2024-01-01T12:00:00Z",
- "updatedAt": "2024-10-01T12:00:00Z",
- "me": {
- "type": "membership",
- "role": {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "roleName": "Member",
- "accessLevel": "USER"
}
}
}{- "links": [
- {
- "id": "123e4567-e89b-12d3-a456-426614174010",
- "title": "Lab Resources",
}
], - "id": "123e4567-e89b-12d3-a456-426614174100",
- "title": "GPU Research Group",
- "description": "Group for GPU research and experiments.",
- "isArchived": false,
- "createdAt": "2024-01-01T12:00:00Z",
- "updatedAt": "2024-10-01T12:00:00Z",
- "me": {
- "type": "membership",
- "role": {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "roleName": "Member",
- "accessLevel": "USER"
}
}
}Create a link for a group. Will reject the request from access level 'user'.
| id required | string |
| title required | string The title of the link. |
| url required | string The URL of the link. |
{- "title": "Lab Resources",
}{- "id": "123e4567-e89b-12d3-a456-426614174010",
- "title": "Lab Resources",
}Update a link for a group. Will reject the request from access level 'user'.
| id required | string |
| linkId required | string |
| title required | string The title of the link. |
| url required | string The URL of the link. |
{- "title": "Updated Lab Resources",
}{- "id": "123e4567-e89b-12d3-a456-426614174010",
- "title": "Lab Resources",
}Get all members of a group. Will reject the request from access level 'user'.
| id required | string |
| page | integer <int32> |
| size | integer <int32> [ 1 .. 100 ] |
| sort | string Enum: "asc" "desc" |
| sortBy | string |
{- "items": [
- {
- "id": "123e4567-e89b-12d3-a456-426614174001",
- "fullName": "Alice Chen",
- "email": "alice@university.edu",
- "studentId": "R12345678",
- "role": {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "roleName": "Member",
- "accessLevel": "USER"
}
}
], - "totalPages": 10,
- "totalItems": 100,
- "currentPage": 1,
- "pageSize": 10,
- "hasNextPage": true
}Add a member to a group. Will reject the request from access level 'user'.
| id required | string |
required | Array of objects (Groups.AddMemberRequest) |
{- "members": [
- {
- "member": "bob@university.edu",
- "roleId": "123e4567-e89b-12d3-a456-426614174000"
}
]
}{- "id": "123e4567-e89b-12d3-a456-426614174001",
- "fullName": "Alice Chen",
- "email": "alice@university.edu",
- "studentId": "R12345678",
- "role": {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "roleName": "Member",
- "accessLevel": "USER"
}
}Update a member's access level. Will reject the request from access level 'user'
| id required | string |
| memberId required | string |
| roleId required | string <uuid> The role id of the member. |
{- "roleId": "123e4567-e89b-12d3-a456-426614174000"
}{- "id": "123e4567-e89b-12d3-a456-426614174001",
- "fullName": "Alice Chen",
- "email": "alice@university.edu",
- "studentId": "R12345678",
- "role": {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "roleName": "Member",
- "accessLevel": "USER"
}
}Get all pending members of a group. Will reject the request from access level 'user'.
| id required | string |
| page | integer <int32> |
| size | integer <int32> [ 1 .. 100 ] |
| sort | string Enum: "asc" "desc" |
| sortBy | string |
{- "items": [
- {
- "id": "123e4567-e89b-12d3-a456-426614174002",
- "userIdentifier": "applicant@example.edu",
- "role": {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "roleName": "Member",
- "accessLevel": "USER"
}
}
], - "totalPages": 10,
- "totalItems": 100,
- "currentPage": 1,
- "pageSize": 10,
- "hasNextPage": true
}Update a pending member's access level. Will reject the request from access level 'user'
| id required | string |
| pendingId required | string |
| roleId required | string <uuid> The role id of the member. |
{- "roleId": "123e4567-e89b-12d3-a456-426614174000"
}{- "id": "123e4567-e89b-12d3-a456-426614174002",
- "userIdentifier": "applicant@example.edu",
- "role": {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "roleName": "Member",
- "accessLevel": "USER"
}
}Transfer group ownership to another member. Will reject the request from access level 'user'
| id required | string |
| identifier required | string The new owner id in UUID format. |
{- "identifier": "123e4567-e89b-12d3-a456-426614174200"
}{- "id": "123e4567-e89b-12d3-a456-426614174100",
- "title": "GPU Research Group",
- "description": "Group for GPU research and experiments.",
- "isArchived": false,
- "createdAt": "2024-01-01T12:00:00Z",
- "updatedAt": "2024-10-01T12:00:00Z",
- "me": {
- "type": "membership",
- "role": {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "roleName": "Member",
- "accessLevel": "USER"
}
}
}| short | boolean Get 10 head characters of publickey as short public key in 'publickey' field. |
[- {
- "id": "123e4567-e89b-12d3-a456-426614174300",
- "title": "workstation-key",
- "publicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3..."
}
]| title required | string The public key title set by the user. |
| publicKey required | string The public key of the user. |
{- "title": "workstation-key",
- "publicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3..."
}{- "id": "123e4567-e89b-12d3-a456-426614174300",
- "title": "workstation-key",
- "publicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3..."
}| fullName required | string The real name of the user. |
| linuxUsername required | string The computer account name of the user. |
{- "fullName": "Alice Chen",
- "linuxUsername": "alice"
}{- "fullName": "Alice Chen",
- "linuxUsername": "alice"
}| provider required | string (Auth.OAuthProviders) Enum: "google" "nycu" The OAuth2 provider to bind. |
| c required | string The callback URL of the OAuth2 login. See details |
| r | string The redirect URL for login callback. |
{- "url": "/api/bind/oauth/google?http://localhost:8080/callback/bind"
}| provider required | string (Auth.OAuthProviders) Enum: "google" "nycu" The OAuth2 provider to use for login. |
| c required | string The callback URL of the OAuth2 login. See details |
| r | string The redirect URL for login callback. |
| refreshToken required | string The refresh token to use for refreshing the access token. |
{- "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "expirationTime": 1700000000,
- "refreshToken": "rftk_1234567890abcdef"
}post new mapping between group wise role and group wise access level
| role required | string The name of the role. |
| accessLevel required | string Enum: "GROUP_OWNER" "GROUP_ADMIN" "USER" The access level of the role. |
{- "role": "project-member",
- "accessLevel": "USER"
}[- {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "roleName": "Member",
- "accessLevel": "USER"
}
]update mapping between group wise role and group wise access level
| id required | string <uuid> (uuid) |
| role required | string The name of the role. |
| accessLevel required | string Enum: "GROUP_OWNER" "GROUP_ADMIN" "USER" The access level of the role. |
{- "role": "project-member",
- "accessLevel": "USER"
}[- {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "roleName": "Member",
- "accessLevel": "USER"
}
]| name required | string |
| comment | string |
| current_working_directory required | string |
| script required | string |
| environment required | Array of strings |
| nodes | string |
| minimum_nodes | number |
| maximum_nodes | number |
| tasks required | number |
| cpus_per_task required | number |
| memory_per_cpu required | number |
| memory_per_node required | number |
| partition required | string |
| time_limit required | number |
| standard_input | string |
| standard_output | string |
| standard_error | string |
{- "name": "test-job",
- "comment": "My test job for experiments",
- "current_working_directory": "/home/<user>",
- "script": "#!/bin/bash\nhostname\necho a\n",
- "environment": [
- "HOME=/home/<user>",
- "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/bin",
- "SHELL=/bin/bash"
], - "nodes": "node[1-2]",
- "minimum_nodes": 1,
- "maximum_nodes": 2,
- "tasks": 4,
- "cpus_per_task": 2,
- "memory_per_cpu": 4096,
- "memory_per_node": 8192,
- "partition": "debug",
- "time_limit": 3600,
- "standard_input": "/dev/null",
- "standard_output": "job.out",
- "standard_error": "job.err"
}{- "id": 12345,
- "name": "test-job",
- "comment": "My test job for experiments",
- "status": "RUNNING",
- "user": "alice",
- "partition": "short",
- "resources": {
- "cpu": 8,
- "memory": 32768,
- "gpu": 0
}
}| page | integer <int32> |
| size | integer <int32> [ 1 .. 100 ] |
| sort | string Enum: "asc" "desc" |
| sortBy | string |
| filterBy | string The column to filter by. |
| filterValue | string The value to filter by. |
{- "items": [
- {
- "id": 12345,
- "name": "test-job",
- "comment": "My test job for experiments",
- "status": "RUNNING",
- "user": "alice",
- "partition": "short",
- "resources": {
- "cpu": 8,
- "memory": 32768,
- "gpu": 0
}
}
], - "totalPages": 10,
- "totalItems": 100,
- "currentPage": 1,
- "pageSize": 10,
- "hasNextPage": true
}Count jobs by status.
| status | string Enum: "RUNNING" "PENDING" "COMPLETED" "FAILED" "TIMEOUT" "CANCELLED" The status of jobs to count. If not provided, counts all statuses. |
{- "running": 0,
- "pending": 0,
- "completed": 0,
- "failed": 0,
- "timeout": 0,
- "cancelled": 0
}Search for users by a query string with prefix search.
| query required | string The search query string used to match facts and references. |
| page | integer <int32> |
| size | integer <int32> [ 1 .. 100 ] |
| sort | string Enum: "asc" "desc" |
| sortBy | string |
{- "items": [
- {
- "identifier": "R12345678"
}
], - "totalPages": 10,
- "totalItems": 100,
- "currentPage": 1,
- "pageSize": 10,
- "hasNextPage": true
}create module
| title required | string |
required | Array of objects the environment variables for the module |
{- "title": "CUDA 11.8",
- "environment": [
- {
- "key": "PATH",
- "value": "/usr/local/cuda/bin"
}
]
}{- "id": "mod-123456",
- "title": "CUDA 11.8",
- "environment": [
- {
- "key": "PATH",
- "value": "/usr/local/cuda/bin"
}
]
}update module by id
| id required | string |
| title required | string |
required | Array of objects the environment variables for the module |
{- "title": "CUDA 11.8",
- "environment": [
- {
- "key": "PATH",
- "value": "/usr/local/cuda/bin"
}
]
}{- "id": "mod-123456",
- "title": "CUDA 11.8",
- "environment": [
- {
- "key": "PATH",
- "value": "/usr/local/cuda/bin"
}
]
}