Backend.AI REST API Reference
- GET /acl
Preconditions:
User privilege required.
Manager status required: RUNNING
- Status Codes
200 OK – Successful response
- GET /config/resource-slots/details
- Query Parameters
sgroup (string) –
- Status Codes
200 OK – Successful response
- GET /config/docker-registries
Returns the list of all registered docker registries.
Preconditions:
Superadmin privilege required.
- Status Codes
200 OK – Successful response
- POST /config/get
A raw access API to read key-value pairs from the etcd.
Warning
When reading the keys with
prefix=True
, it uses a simple string-prefix matching over the flattened keys (with the delimiter “/”). Thus, it may return additional keys that you may not want.For example, reading “some/key1” will fetch all of the following keys:
some/key1 some/key1/field1 some/key1/field2 some/key12 some/key12/field1 some/key12/field2
To avoid this issue, developers must use dedicated CRUD APIs instead of relying on the etcd raw access APIs whenever possible.
Preconditions:
Superadmin privilege required.
- Request JSON Object
key (string, required) –
prefix (boolean, required) –
- Status Codes
200 OK – Successful response
- POST /config/set
A raw access API to write key-value pairs into the etcd.
Preconditions:
Superadmin privilege required.
- Request JSON Object
key (string, required) –
value (string, required) –
- Status Codes
200 OK – Successful response
- POST /config/delete
A raw access API to delete key-value pairs from the etcd.
Warning
When deleting the keys with
prefix=True
, it uses a simple string-prefix matching over the flattened keys (with the delimiter “/”). This may result in unexpected deletion of sibling keys.For example, deleting “some/key1” will DELETE all of the following keys:
some/key1 some/key1/field1 some/key1/field2 some/key12 some/key12/field1 some/key12/field2
To avoid this issue, developers must use dedicated CRUD APIs instead of relying on the etcd raw access APIs whenever possible.
Preconditions:
Superadmin privilege required.
- Request JSON Object
key (string, required) –
prefix (boolean, required) –
- Status Codes
200 OK – Successful response
- GET /events/background-task
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
task_id (string:uuid, required) –
- Status Codes
200 OK – Successful response
- GET /events/session
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
name (string, required) –
ownerAccessKey (string) –
sessionId (string:uuid) –
group (string, required) –
scope (string:enum, required) –
- Status Codes
200 OK – Successful response
- GET /auth
Preconditions:
User privilege required.
- Query Parameters
echo (string, required) –
- Status Codes
200 OK – Successful response
- POST /auth
Preconditions:
User privilege required.
- Request JSON Object
echo (string, required) –
- Status Codes
200 OK – Successful response
- GET /auth/test
Preconditions:
User privilege required.
- Query Parameters
echo (string, required) –
- Status Codes
200 OK – Successful response
- POST /auth/test
Preconditions:
User privilege required.
- Request JSON Object
echo (string, required) –
- Status Codes
200 OK – Successful response
- POST /auth/authorize
- Request JSON Object
type (string:enum, required) –
domain (string, required) –
username (string, required) –
password (string, required) –
- Status Codes
200 OK – Successful response
- GET /auth/role
Preconditions:
User privilege required.
- Query Parameters
group (string:uuid) –
- Status Codes
200 OK – Successful response
- POST /auth/signup
- Request JSON Object
domain (string, required) –
email (string, required) –
password (string, required) –
- Status Codes
200 OK – Successful response
- POST /auth/signout
Preconditions:
User privilege required.
- Request JSON Object
email (string, required) –
password (string, required) –
- Status Codes
200 OK – Successful response
- POST /auth/update-password-no-auth
Update user’s password without any authorization to allows users to update passwords that have expired because it’s been too long since a user changed the password.
- Request JSON Object
domain (string, required) –
username (string, required) –
current_password (string, required) –
new_password (string, required) –
- Status Codes
200 OK – Successful response
- POST /auth/update-password
Preconditions:
User privilege required.
- Request JSON Object
old_password (string, required) –
new_password (string, required) –
new_password2 (string, required) –
- Status Codes
200 OK – Successful response
- POST /auth/update-full-name
Preconditions:
User privilege required.
- Request JSON Object
email (string, required) –
full_name (string, required) –
- Status Codes
200 OK – Successful response
- GET /auth/ssh-keypair
Preconditions:
User privilege required.
- Status Codes
200 OK – Successful response
- PATCH /auth/ssh-keypair
Preconditions:
User privilege required.
- Status Codes
200 OK – Successful response
- POST /auth/ssh-keypair
Preconditions:
User privilege required.
- Request JSON Object
pubkey (string, required) –
privkey (string, required) –
- Status Codes
200 OK – Successful response
- POST /folders
Preconditions:
User privilege required.
Manager status required: RUNNING
- Request JSON Object
name (string, required) –
host (string) –
usage_mode (string:enum) –
permission (string:enum) –
unmanaged_path (string) –
group (string:uuid) –
quota (string) – Size in binary format (e.g. 2KB, 3M, 4GiB)
cloneable (boolean, required) –
- Status Codes
200 OK – Successful response
- GET /folders
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
all (boolean, required) –
group_id –
owner_user_email (string:email) –
- Status Codes
200 OK – Successful response
- DELETE /folders
Preconditions:
Superadmin privilege required.
Manager status required: RUNNING
- Query Parameters
id (string:uuid, required) –
- Status Codes
200 OK – Successful response
- GET /folders/{name}
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
name (string, required) –
- Status Codes
200 OK – Successful response
- DELETE /folders/{name}
Preconditions:
User privilege required.
Manager status required: RUNNING
- Parameters
name (string, required) –
- Status Codes
200 OK – Successful response
- GET /folders/_/hosts
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
group_id –
- Status Codes
200 OK – Successful response
- GET /folders/_/all-hosts
Preconditions:
Superadmin privilege required.
Manager status required: FROZEN
- Status Codes
200 OK – Successful response
- GET /folders/_/allowed-types
Preconditions:
User privilege required.
Manager status required: FROZEN
- Status Codes
200 OK – Successful response
- GET /folders/_/all_hosts
Preconditions:
Superadmin privilege required.
Manager status required: FROZEN
- Status Codes
200 OK – Successful response
- GET /folders/_/allowed_types
Preconditions:
User privilege required.
Manager status required: FROZEN
- Status Codes
200 OK – Successful response
- GET /folders/_/perf-metric
Preconditions:
Superadmin privilege required.
Manager status required: FROZEN
- Query Parameters
folder_host (string, required) –
- Status Codes
200 OK – Successful response
- POST /folders/{name}/rename
Preconditions:
User privilege required.
Manager status required: RUNNING
- Parameters
name (string, required) –
- Request JSON Object
new_name (string, required) –
- Status Codes
200 OK – Successful response
- POST /folders/{name}/update-options
Preconditions:
User privilege required.
Manager status required: RUNNING
- Parameters
name (string, required) –
- Request JSON Object
cloneable (boolean) –
permission (string:enum) –
- Status Codes
200 OK – Successful response
- POST /folders/{name}/mkdir
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
name (string, required) –
- Request JSON Object
path (string, required) –
parents (boolean, required) –
exist_ok (boolean, required) –
- Status Codes
200 OK – Successful response
- POST /folders/{name}/request-upload
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
name (string, required) –
- Request JSON Object
path (string, required) –
size (integer, required) –
- Status Codes
200 OK – Successful response
- POST /folders/{name}/request-download
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
name (string, required) –
- Request JSON Object
path (string, required) –
archive (boolean, required) –
- Status Codes
200 OK – Successful response
- POST /folders/{name}/move-file
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
name (string, required) –
- Request JSON Object
src (string, required) –
dst (string, required) –
- Status Codes
200 OK – Successful response
- POST /folders/{name}/rename-file
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
name (string, required) –
- Request JSON Object
target_path (string, required) –
new_name (string, required) –
is_dir (boolean, required) –
- Status Codes
200 OK – Successful response
- DELETE /folders/{name}/delete-files
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
name (string, required) –
- Query Parameters
files (array, required) –
recursive (boolean, required) –
- Status Codes
200 OK – Successful response
- POST /folders/{name}/rename_file
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
name (string, required) –
- Request JSON Object
target_path (string, required) –
new_name (string, required) –
is_dir (boolean, required) –
- Status Codes
200 OK – Successful response
- DELETE /folders/{name}/delete_files
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
name (string, required) –
- Query Parameters
files (array, required) –
recursive (boolean, required) –
- Status Codes
200 OK – Successful response
- GET /folders/{name}/files
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
name (string, required) –
- Query Parameters
path (string, required) –
- Status Codes
200 OK – Successful response
- POST /folders/{name}/invite
Preconditions:
User privilege required.
Manager status required: RUNNING
- Parameters
name (string, required) –
- Request JSON Object
perm (string:enum, required) –
emails[] (string) –
- Status Codes
200 OK – Successful response
- POST /folders/{name}/leave
Leave a shared vfolder.
Cannot leave a group vfolder or a vfolder that the requesting user owns.
Preconditions:
User privilege required.
Manager status required: RUNNING
- Parameters
name (string, required) –
- Request JSON Object
shared_user_uuid (string) –
- Status Codes
200 OK – Successful response
Preconditions:
Admin privilege required.
Manager status required: RUNNING
- Parameters
name (string, required) –
- Request JSON Object
permission (string:enum, required) –
emails[] (string) –
- Status Codes
200 OK – Successful response
Unshare a group folder from users.
Preconditions:
Admin privilege required.
Manager status required: RUNNING
- Parameters
name (string, required) –
- Query Parameters
emails (array, required) –
- Status Codes
200 OK – Successful response
- POST /folders/{name}/clone
Preconditions:
User privilege required.
Manager status required: RUNNING
- Parameters
name (string, required) –
- Request JSON Object
cloneable (boolean, required) –
target_name (string, required) –
target_host (string) –
usage_mode (string:enum) –
permission (string:enum) –
- Status Codes
200 OK – Successful response
- GET /folders/invitations/list-sent
Preconditions:
User privilege required.
Manager status required: FROZEN
- Status Codes
200 OK – Successful response
- GET /folders/invitations/list_sent
Preconditions:
User privilege required.
Manager status required: FROZEN
- Status Codes
200 OK – Successful response
- POST /folders/invitations/update/{inv_id}
Update sent invitation’s permission. Other fields are not allowed to be updated.
Preconditions:
User privilege required.
Manager status required: RUNNING
- Parameters
inv_id (string, required) –
- Request JSON Object
perm (string:enum, required) –
- Status Codes
200 OK – Successful response
- GET /folders/invitations/list
Preconditions:
User privilege required.
Manager status required: FROZEN
- Status Codes
200 OK – Successful response
- POST /folders/invitations/accept
Accept invitation by invitee.
* `inv_ak` parameter is removed from 19.06 since virtual folder's ownership is moved from keypair to a user or a group. :param inv_id: ID of vfolder_invitations row.
Preconditions:
User privilege required.
Manager status required: RUNNING
- Request JSON Object
inv_id (string, required) –
- Status Codes
200 OK – Successful response
- DELETE /folders/invitations/delete
Preconditions:
User privilege required.
Manager status required: RUNNING
- Query Parameters
inv_id (string, required) –
- Status Codes
200 OK – Successful response
List shared vfolders.
Not available for group vfolders.
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
vfolder_id (string:uuid) –
- Status Codes
200 OK – Successful response
Update permission for shared vfolders.
If params[‘perm’] is None, remove user’s permission for the vfolder.
Preconditions:
User privilege required.
Manager status required: RUNNING
- Request JSON Object
vfolder (string:uuid, required) –
user (string:uuid, required) –
perm (string:enum) –
- Status Codes
200 OK – Successful response
- GET /folders/_/fstab
Return the contents of
/etc/fstab
file.Preconditions:
Superadmin privilege required.
Manager status required: FROZEN
- Query Parameters
fstab_path (string) –
agent_id (string) –
- Status Codes
200 OK – Successful response
- GET /folders/_/mounts
List all mounted vfolder hosts in vfroot.
All mounted hosts from connected (ALIVE) agents are also gathered. Generally, agents should be configured to have same hosts structure, but newly introduced one may not.
Preconditions:
Superadmin privilege required.
Manager status required: FROZEN
- Status Codes
200 OK – Successful response
- POST /folders/_/mounts
Mount device into vfolder host.
Mount a device (eg: nfs) located at
fs_location
into<vfroot>/name
in the host machines (manager and all agents).fs_type
can be specified by requester, which fallbaks to ‘nfs’.If
scaling_group
is specified, try to mount for agents in the scaling group.Preconditions:
Superadmin privilege required.
Manager status required: RUNNING
- Request JSON Object
fs_location (string, required) –
name (string, required) –
fs_type (string, required) –
options (string) –
scaling_group (string) –
fstab_path (string) –
edit_fstab (boolean, required) –
- Status Codes
200 OK – Successful response
- DELETE /folders/_/mounts
Unmount device from vfolder host.
Unmount a device (eg: nfs) located at
<vfroot>/name
from the host machines (manager and all agents).If
scaling_group
is specified, try to unmount for agents in the scaling group.Preconditions:
Superadmin privilege required.
Manager status required: RUNNING
- Query Parameters
name (string, required) –
scaling_group (string) –
fstab_path (string) –
edit_fstab (boolean, required) –
- Status Codes
200 OK – Successful response
- POST /folders/_/change-ownership
Change the ownership of vfolder For now, we only provide changing the ownership of user-folder
Preconditions:
Superadmin privilege required.
Manager status required: RUNNING
- Request JSON Object
vfolder (string:uuid, required) –
user_email (string, required) –
- Status Codes
200 OK – Successful response
- GET /folders/_/quota
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
folder_host (string, required) –
id (string:uuid, required) –
- Status Codes
200 OK – Successful response
- POST /folders/_/quota
Preconditions:
User privilege required.
Manager status required: RUNNING
- Request JSON Object
folder_host (string, required) –
id (string:uuid, required) –
input (object, required) – Mapping(String => Any)
- Status Codes
200 OK – Successful response
- GET /folders/_/usage
Preconditions:
Superadmin privilege required.
Manager status required: FROZEN
- Query Parameters
folder_host (string, required) –
id (string:uuid, required) –
- Status Codes
200 OK – Successful response
- GET /folders/_/used-bytes
Preconditions:
Superadmin privilege required.
Manager status required: FROZEN
- Query Parameters
folder_host (string, required) –
id (string:uuid, required) –
- Status Codes
200 OK – Successful response
- POST //graphql
Preconditions:
User privilege required.
- Request JSON Object
query (string, required) –
variables (object) – Mapping(String => Any)
operation_name (string) –
- Status Codes
200 OK – Successful response
- POST //gql
Preconditions:
User privilege required.
- Request JSON Object
query (string, required) –
variables (object) – Mapping(String => Any)
operation_name (string) –
- Status Codes
200 OK – Successful response
- GET /services
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
name (string) –
- Status Codes
200 OK – Successful response
- POST /services
Preconditions:
User privilege required.
Manager status required: RUNNING
- Request JSON Object
name (string, required) –
desired_session_count (integer, required) –
image (string, required) –
arch (string, required) –
group (string, required) –
domain (string, required) –
cluster_size (integer, required) –
cluster_mode (string:enum, required) –
tag (string) –
startup_command (string) –
bootstrap_script (string) –
callback_url (string:uri) –
owner_access_key (string) –
open_to_public (boolean, required) –
config (object, required) –
config.model (string, required) –
config.model_version (string) –
config.model_mount_destination (string, required) –
config.environ (object) – Mapping(String => String)
config.scaling_group (string) –
config.resources (object) – Mapping(String => Any)
config.resource_opts (object) – Mapping(String => Any)
- Status Codes
200 OK – Successful response
- GET /services/{service_id}
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
service_id (string, required) –
- Status Codes
200 OK – Successful response
- DELETE /services/{service_id}
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
service_id (string, required) –
- Status Codes
200 OK – Successful response
- GET /services/{service_id}/errors
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
service_id (string, required) –
- Status Codes
200 OK – Successful response
- POST /services/{service_id}/errors/clear
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
service_id (string, required) –
- Status Codes
200 OK – Successful response
- POST /services/{service_id}/scale
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
service_id (string, required) –
- Request JSON Object
to (integer, required) –
- Status Codes
200 OK – Successful response
- POST /services/{service_id}/sync
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
service_id (string, required) –
- Status Codes
200 OK – Successful response
- PUT /services/{service_id}/routings/{route_id}
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
service_id (string, required) –
route_id (string, required) –
- Request JSON Object
traffic_ratio (integer, required) –
- Status Codes
200 OK – Successful response
- DELETE /services/{service_id}/routings/{route_id}
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
service_id (string, required) –
route_id (string, required) –
- Status Codes
200 OK – Successful response
- POST /services/{service_id}/token
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
service_id (string, required) –
- Request JSON Object
duration (string) – Human-readable time duration representation (e.g. 2y, 3d, 4m, 5h, 6s, …)
valid_until (integer) –
- Status Codes
200 OK – Successful response
- POST /session
Preconditions:
User privilege required.
Manager status required: RUNNING
- Request JSON Object
name (string, required) –
image (string, required) –
arch (string, required) –
type (string:enum, required) –
group (string, required) –
domain (string, required) –
cluster_size (integer, required) –
cluster_mode (string:enum, required) –
config (object, required) – Mapping(String => Any)
tag (string) –
enqueueOnly (boolean, required) –
maxWaitSeconds (integer, required) –
starts_at (string) –
reuseIfExists (boolean, required) –
startupCommand (string) –
bootstrap_script (string) –
dependencies[] (string:uuid) –
callback_url (string:uri) –
owner_access_key (string) –
- Status Codes
200 OK – Successful response
- POST /session/_/create
Preconditions:
User privilege required.
Manager status required: RUNNING
- Request JSON Object
name (string, required) –
image (string, required) –
arch (string, required) –
type (string:enum, required) –
group (string, required) –
domain (string, required) –
cluster_size (integer, required) –
cluster_mode (string:enum, required) –
config (object, required) – Mapping(String => Any)
tag (string) –
enqueueOnly (boolean, required) –
maxWaitSeconds (integer, required) –
starts_at (string) –
reuseIfExists (boolean, required) –
startupCommand (string) –
bootstrap_script (string) –
dependencies[] (string:uuid) –
callback_url (string:uri) –
owner_access_key (string) –
- Status Codes
200 OK – Successful response
- POST /session/_/create-from-template
Preconditions:
User privilege required.
Manager status required: RUNNING
- Request JSON Object
template_id (string:uuid) –
name (string) –
image (string, required) –
arch (string) –
type (string:enum) –
group (string, required) –
domain (string, required) –
cluster_size (integer, required) –
cluster_mode (string:enum, required) –
config (object, required) – Mapping(String => Any)
tag (string, required) –
enqueueOnly (boolean, required) –
maxWaitSeconds (integer, required) –
starts_at (string) –
reuseIfExists (boolean, required) –
startupCommand (string, required) –
bootstrap_script (string, required) –
dependencies[] (string:uuid) –
callback_url (string:uri, required) –
owner_access_key (string, required) –
- Status Codes
200 OK – Successful response
- POST /session/_/create-cluster
Preconditions:
User privilege required.
Manager status required: RUNNING
- Request JSON Object
clientSessionToken (string, required) –
template_id (string:uuid) –
type (string:enum, required) –
group (string, required) –
domain (string, required) –
scaling_group (string) –
tag (string) –
enqueueOnly (boolean, required) –
maxWaitSeconds (integer, required) –
owner_access_key (string) –
- Status Codes
200 OK – Successful response
- GET /session/_/match
A quick session-ID matcher API for use with auto-completion in CLI.
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
id (string, required) –
- Status Codes
200 OK – Successful response
- POST /session/_/sync-agent-registry
Preconditions:
User privilege required.
Manager status required: RUNNING
- Request JSON Object
agent (string, required) –
- Status Codes
200 OK – Successful response
- GET /session/{session_name}
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Status Codes
200 OK – Successful response
- PATCH /session/{session_name}
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Status Codes
200 OK – Successful response
- DELETE /session/{session_name}
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Query Parameters
forced (boolean, required) –
recursive (boolean, required) –
owner_access_key (string) –
- Status Codes
200 OK – Successful response
- POST /session/{session_name}
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Status Codes
200 OK – Successful response
- HEAD /session/_/logs
Preconditions:
User privilege required.
Manager status required: FROZEN
- Request JSON Object
session_name (string:uuid, required) –
- Status Codes
200 OK – Successful response
- GET /session/_/logs
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
session_name (string:uuid, required) –
- Status Codes
200 OK – Successful response
- GET /session/{session_name}/direct-access-info
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Status Codes
200 OK – Successful response
- GET /session/{session_name}/logs
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Query Parameters
owner_access_key (string) –
- Status Codes
200 OK – Successful response
- POST /session/{session_name}/rename
Preconditions:
User privilege required.
Manager status required: RUNNING
- Parameters
session_name (string, required) –
- Request JSON Object
name (string, required) –
- Status Codes
200 OK – Successful response
- POST /session/{session_name}/interrupt
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Status Codes
200 OK – Successful response
- POST /session/{session_name}/complete
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Status Codes
200 OK – Successful response
- POST /session/{session_name}/shutdown-service
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Request JSON Object
service_name (string, required) –
- Status Codes
200 OK – Successful response
- POST /session/{session_name}/upload
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Status Codes
200 OK – Successful response
- GET /session/{session_name}/download
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Query Parameters
files (array, required) –
- Status Codes
200 OK – Successful response
- GET /session/{session_name}/download_single
Download a single file from the scratch root. Only for small files.
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Query Parameters
file (string, required) –
- Status Codes
200 OK – Successful response
- GET /session/{session_name}/files
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Status Codes
200 OK – Successful response
- POST /session/{session_name}/start-service
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Request JSON Object
login_session_token (string) –
app (string, required) –
port (integer) –
envs (string) –
arguments (string) –
- Status Codes
200 OK – Successful response
- POST /session/{session_name}/commit
Preconditions:
User privilege required.
Manager status required: RUNNING
- Parameters
session_name (string, required) –
- Request JSON Object
login_session_token (string) –
filename (string) –
- Status Codes
200 OK – Successful response
- GET /session/{session_name}/commit
Preconditions:
User privilege required.
Manager status required: RUNNING
- Parameters
session_name (string, required) –
- Query Parameters
login_session_token (string) –
- Status Codes
200 OK – Successful response
- GET /session/{session_name}/abusing-report
Preconditions:
User privilege required.
Manager status required: RUNNING
- Parameters
session_name (string, required) –
- Query Parameters
login_session_token (string) –
- Status Codes
200 OK – Successful response
- GET /session/{session_name}/dependency-graph
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Status Codes
200 OK – Successful response
- GET /stream/session/{session_name}/pty
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Status Codes
200 OK – Successful response
- GET /stream/session/{session_name}/execute
WebSocket-version of gateway.kernel.execute().
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Status Codes
200 OK – Successful response
- GET /stream/session/{session_name}/apps
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Status Codes
200 OK – Successful response
- GET /stream/session/{session_name}/httpproxy
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Query Parameters
app (string, required) –
port (integer) –
envs (string) –
arguments (string) –
- Status Codes
200 OK – Successful response
- GET /stream/session/{session_name}/tcpproxy
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
session_name (string, required) –
- Query Parameters
app (string, required) –
port (integer) –
envs (string) –
arguments (string) –
- Status Codes
200 OK – Successful response
- PUT /manager/status
Preconditions:
Superadmin privilege required.
- Request JSON Object
status (string:enum, required) –
force_kill (boolean, required) –
- Status Codes
200 OK – Successful response
- POST /manager/announcement
Preconditions:
Superadmin privilege required.
- Request JSON Object
enabled (boolean, required) –
message (string) –
- Status Codes
200 OK – Successful response
- POST /manager/scheduler/operation
Preconditions:
Superadmin privilege required.
- Request JSON Object
op (string:enum, required) –
args (string, required) –
- Status Codes
200 OK – Successful response
- GET /resource/presets
Returns the list of all resource presets.
Preconditions:
User privilege required.
- Status Codes
200 OK – Successful response
- POST /resource/check-presets
Returns the list of all resource presets in the current scaling group, with additional information including allocatability of each preset, amount of total remaining resources, and the current keypair resource limits.
Preconditions:
User privilege required.
Manager status required: FROZEN
- Request JSON Object
scaling_group (string) –
group (string, required) –
- Status Codes
200 OK – Successful response
- POST /resource/recalculate-usage
Update
keypair_resource_usages
in redis andagents.c.occupied_slots
.Those two values are sometimes out of sync. In that case, calling this API re-calculates the values for running containers and updates them in DB.
Preconditions:
Superadmin privilege required.
Manager status required: FROZEN
- Status Codes
200 OK – Successful response
- GET /resource/usage/month
Return usage statistics of terminated containers for a specified month. The date/time comparison is done using the configured timezone.
- Parameters
group_ids – If not None, query containers only in those groups.
month – The year-month to query usage statistics. ex) “202006” to query for Jun 2020
Preconditions:
Superadmin privilege required.
Manager status required: FROZEN
- Query Parameters
group_ids (array) –
month (string, required) –
- Status Codes
200 OK – Successful response
- GET /resource/usage/period
Return usage statistics of terminated containers belonged to the given group for a specified period in dates. The date/time comparison is done using the configured timezone.
- Parameters
group_id – If not None, query containers only in the group.
str (end_date) – “yyyymmdd” format.
str – “yyyymmdd” format.
Preconditions:
Superadmin privilege required.
Manager status required: FROZEN
- Query Parameters
group_id (string) –
start_date (string, required) –
end_date (string, required) –
- Status Codes
200 OK – Successful response
- GET /resource/stats/user/month
Return time-binned (15 min) stats for terminated user sessions over last 30 days.
Preconditions:
User privilege required.
Manager status required: FROZEN
- Status Codes
200 OK – Successful response
- GET /resource/stats/admin/month
Return time-binned (15 min) stats for all terminated sessions over last 30 days.
Preconditions:
Superadmin privilege required.
Manager status required: FROZEN
- Status Codes
200 OK – Successful response
- GET /resource/watcher
Preconditions:
Superadmin privilege required.
Manager status required: FROZEN
- Query Parameters
agent_id (string, required) –
- Status Codes
200 OK – Successful response
- POST /resource/watcher/agent/start
Preconditions:
Superadmin privilege required.
Manager status required: FROZEN
- Request JSON Object
agent_id (string, required) –
- Status Codes
200 OK – Successful response
- POST /resource/watcher/agent/stop
Preconditions:
Superadmin privilege required.
Manager status required: FROZEN
- Request JSON Object
agent_id (string, required) –
- Status Codes
200 OK – Successful response
- POST /resource/watcher/agent/restart
Preconditions:
Superadmin privilege required.
Manager status required: FROZEN
- Request JSON Object
agent_id (string, required) –
- Status Codes
200 OK – Successful response
- GET /scaling-groups
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
group (required) –
- Status Codes
200 OK – Successful response
- GET /scaling-groups/{scaling_group}/wsproxy-version
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
scaling_group (string, required) –
- Query Parameters
group (required) –
- Status Codes
200 OK – Successful response
- POST /template/cluster
Preconditions:
User privilege required.
Manager status required: FROZEN
- Request JSON Object
group (string, required) –
domain (string, required) –
owner_access_key (string) –
payload (string, required) –
- Status Codes
200 OK – Successful response
- GET /template/cluster
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
all (boolean, required) –
group_id –
- Status Codes
200 OK – Successful response
- GET /template/cluster/{template_id}
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
template_id (string, required) –
- Query Parameters
format (string:enum) –
owner_access_key (string) –
- Status Codes
200 OK – Successful response
- PUT /template/cluster/{template_id}
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
template_id (string, required) –
- Request JSON Object
payload (string, required) –
owner_access_key (string) –
- Status Codes
200 OK – Successful response
- DELETE /template/cluster/{template_id}
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
template_id (string, required) –
- Query Parameters
owner_access_key (string) –
- Status Codes
200 OK – Successful response
- POST /template/session
Preconditions:
User privilege required.
Manager status required: FROZEN
- Request JSON Object
group (string, required) –
domain (string, required) –
owner_access_key (string) –
payload (string, required) –
- Status Codes
200 OK – Successful response
- GET /template/session
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
all (boolean, required) –
group_id –
- Status Codes
200 OK – Successful response
- GET /template/session/{template_id}
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
template_id (string, required) –
- Query Parameters
format (string:enum) –
owner_access_key (string) –
- Status Codes
200 OK – Successful response
- PUT /template/session/{template_id}
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
template_id (string, required) –
- Request JSON Object
group (string, required) –
domain (string, required) –
payload (string, required) –
owner_access_key (string) –
- Status Codes
200 OK – Successful response
- DELETE /template/session/{template_id}
Preconditions:
User privilege required.
Manager status required: FROZEN
- Parameters
template_id (string, required) –
- Query Parameters
owner_access_key (string) –
- Status Codes
200 OK – Successful response
- GET /image/import
Preconditions:
Admin privilege required.
Manager status required: FROZEN
- Status Codes
200 OK – Successful response
- POST /image/import
Import a docker image and convert it to a Backend.AI-compatible one, by automatically installing a few packages and adding image labels.
Currently we only support auto-conversion of Python-based kernels (e.g., NGC images) which has its own Python version installed.
Internally, it launches a temporary kernel in an arbitrary agent within the client’s domain, the “default” group, and the “default” scaling group. (The client may change the group and scaling group using launchOptions. If the client is a super-admin, it uses the “default” domain.)
This temporary kernel occupies only 1 CPU core and 1 GiB memory. The kernel concurrency limit is not applied here, but we choose an agent based on their resource availability. The owner of this kernel is always the client that makes the API request.
This API returns immediately after launching the temporary kernel. The client may check the progress of the import task using session logs.
Preconditions:
Admin privilege required.
Manager status required: RUNNING
- Request JSON Object
src (string, required) –
target (string, required) –
architecture (string, required) –
launchOptions (object, required) –
launchOptions.scalingGroup (string, required) –
launchOptions.group (string, required) –
brand (string, required) –
baseDistro (string:enum, required) –
minCPU (integer, required) –
minMemory (string, required) – Size in binary format (e.g. 2KB, 3M, 4GiB)
preferredSharedMemory (string, required) – Size in binary format (e.g. 2KB, 3M, 4GiB)
supportedAccelerators[] (string) –
runtimeType (string:enum, required) –
runtimePath (string, required) – POSIX path
CPUCountEnvs[] (string) –
servicePorts[] (object) –
servicePorts[].name (string, required) –
servicePorts[].protocol (string:enum, required) –
servicePorts[].ports[] (integer) –
- Status Codes
200 OK – Successful response
- POST /user-config/dotfiles
Preconditions:
User privilege required.
Manager status required: FROZEN
- Request JSON Object
data (string, required) –
path (string, required) –
permission (string, required) –
owner_access_key (string) –
- Status Codes
200 OK – Successful response
- GET /user-config/dotfiles
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
path (string) –
owner_access_key (string) –
- Status Codes
200 OK – Successful response
- PATCH /user-config/dotfiles
Preconditions:
User privilege required.
Manager status required: FROZEN
- Request JSON Object
data (string, required) –
path (string, required) –
permission (string, required) –
owner_access_key (string) –
- Status Codes
200 OK – Successful response
- DELETE /user-config/dotfiles
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
path (string, required) –
owner_access_key (string) –
- Status Codes
200 OK – Successful response
- POST /user-config/bootstrap-script
Preconditions:
User privilege required.
Manager status required: FROZEN
- Request JSON Object
script (string, required) –
- Status Codes
200 OK – Successful response
- GET /user-config/bootstrap-script
Preconditions:
User privilege required.
Manager status required: FROZEN
- Status Codes
200 OK – Successful response
- POST /domain-config/dotfiles
Preconditions:
Admin privilege required.
Manager status required: FROZEN
- Request JSON Object
domain (string, required) –
data (string, required) –
path (string, required) –
permission (string, required) –
- Status Codes
200 OK – Successful response
- GET /domain-config/dotfiles
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
domain (string, required) –
path (string) –
- Status Codes
200 OK – Successful response
- PATCH /domain-config/dotfiles
Preconditions:
Admin privilege required.
Manager status required: FROZEN
- Request JSON Object
domain (string, required) –
data (string, required) –
path (string, required) –
permission (string, required) –
- Status Codes
200 OK – Successful response
- DELETE /domain-config/dotfiles
Preconditions:
Admin privilege required.
Manager status required: FROZEN
- Query Parameters
domain (string, required) –
path (string, required) –
- Status Codes
200 OK – Successful response
- POST /group-config/dotfiles
Preconditions:
Admin privilege required.
Manager status required: FROZEN
- Request JSON Object
group (string:uuid) –
domain (string) –
data (string, required) –
path (string, required) –
permission (string, required) –
- Status Codes
200 OK – Successful response
- GET /group-config/dotfiles
Preconditions:
User privilege required.
Manager status required: FROZEN
- Query Parameters
group (required) –
domain (string) –
path (string) –
- Status Codes
200 OK – Successful response
- PATCH /group-config/dotfiles
Preconditions:
Admin privilege required.
Manager status required: FROZEN
- Request JSON Object
group (string:uuid) –
domain (string) –
data (string, required) –
path (string, required) –
permission (string, required) –
- Status Codes
200 OK – Successful response
- DELETE /group-config/dotfiles
Preconditions:
Admin privilege required.
Manager status required: FROZEN
- Query Parameters
group (required) –
domain (string) –
path (string, required) –
- Status Codes
200 OK – Successful response
- POST /logs/error
Preconditions:
User privilege required.
Manager status required: FROZEN
- Request JSON Object
severity (string:enum, required) –
source (string, required) –
message (string, required) –
context_lang (string, required) –
context_env (string, required) – JSON string
request_url (string) –
request_status (integer) –
traceback (string) –
- Status Codes
200 OK – Successful response