This project has retired. For details please refer to its Attic page.
Notebook REST API | Apache Submarine
Skip to main content
Version: 0.7.0

Notebook REST API

caution

The Notebook API is in the alpha stage which is subjected to incompatible changes in future releases.

Create a notebook instance​

POST /api/v1/notebook

Parameters​

NotebookSpec in request body.

NotebookSpec​

Field NameTypeDescriptionRequired
metaNotebookMetaMeta data of the notebook.o
environmentEnvironmentSpecEnvironment of the experiment template.o
specNotebookPodSpecSpec of the notebook pods.o

NotebookMeta​

Field NameTypeDescriptionRequired
nameStringNotebook name.o
namespaceStringNotebook namespace.o
ownerIdStringUser id.o

EnvironmentSpec​

See more details in environment api.

NotebookPodSpec​

Field NameTypeDescriptionRequired
envVarsMap<String, String>Environmental variables.x
resourcesStringResourecs of the pod.o

Example​

Example Request
curl -X POST -H "Content-Type: application/json" -d '
{
"meta": {
"name": "test-nb",
"namespace": "default",
"ownerId": "e9ca23d68d884d4ebb19d07889727dae"
},
"environment": {
"name": "notebook-env"
},
"spec": {
"envVars": {
"TEST_ENV": "test"
},
"resources": "cpu=1,memory=1.0Gi"
}
}
' http://127.0.0.1:32080/api/v1/notebook
Example Response
{
"status":"OK",
"code":200,
"success":true,
"message":"Create a notebook instance",
"result":{
"notebookId":"notebook_1647574374688_0001",
"name":"test-nb",
"uid":"4a839fef-b4c9-483a-b4e8-c17236588118",
"url":"/notebook/default/test-nb/lab",
"status":"creating",
"reason":"The notebook instance is creating",
"createdTime":"2022-03-18T16:13:16.000+08:00",
"deletedTime":null,
"spec":{
"meta":{
"name":"test-nb",
"namespace":"default",
"ownerId":"e9ca23d68d884d4ebb19d07889727dae",
"labels":{
"notebook-owner-id":"e9ca23d68d884d4ebb19d07889727dae",
"notebook-id":"notebook_1647574374688_0001"
}
},
"environment":{
"name":"notebook-env",
"dockerImage":"apache/submarine:jupyter-notebook-0.7.0",
"kernelSpec":{
"name":"submarine_jupyter_py3",
"channels":[
"defaults"
],
"condaDependencies":[],
"pipDependencies":[]
},
"description":null,
"image":null
},
"spec":{
"envVars":{
"TEST_ENV":"test"
},
"resources":"cpu\u003d1,memory\u003d1.0Gi"
}
}
},
"attributes":{}
}

List notebook instances which belong to user​

GET /api/v1/notebook?id={user_id}

Parameters​

Field NameTypeInDescriptionRequired
idStringqueryUser id.o

Example​

Example Request
curl -X GET http://127.0.0.1:32080/api/v1/notebook?id={user_id}
Example Response
{
"status":"OK",
"code":200,
"success":true,
"message":"List all notebook instances",
"result":[
{
"notebookId":"notebook_1647574374688_0001",
"name":"test-nb",
"uid":null,
"url":"/notebook/default/test-nb/lab",
"status":"running",
"reason":"The notebook instance is running",
"createdTime":"2022-03-18T16:13:16.000+08:00",
"deletedTime":"2022-03-18T16:13:21.000+08:00",
"spec":{
"meta":{
"name":"test-nb",
"namespace":"default",
"ownerId":"e9ca23d68d884d4ebb19d07889727dae",
"labels":{
"notebook-owner-id":"e9ca23d68d884d4ebb19d07889727dae",
"notebook-id":"notebook_1647574374688_0001"
}
},
"environment":{
"name":"notebook-env",
"dockerImage":"apache/submarine:jupyter-notebook-0.7.0",
"kernelSpec":{
"name":"submarine_jupyter_py3",
"channels":[
"defaults"
],
"condaDependencies":[],
"pipDependencies":[]
},
"description":null,
"image":null
},
"spec":{
"envVars":{
"TEST_ENV":"test"
},
"resources":"cpu\u003d1,memory\u003d1.0Gi"
}
}
}
],
"attributes":{}
}

Get the notebook instance​

GET /api/v1/notebook/{id}

Parameters​

Field NameTypeInDescriptionRequired
idStringpathNotebook id.o

Example​

Example Request
curl -X GET http://127.0.0.1:32080/api/v1/notebook/{id}
Example Response
{
"status":"OK",
"code":200,
"success":true,
"message":"Get the notebook instance",
"result":{
"notebookId":"notebook_1647574374688_0001",
"name":"test-nb",
"uid":"4a839fef-b4c9-483a-b4e8-c17236588118",
"url":"/notebook/default/test-nb/lab",
"status":"running",
"reason":"The notebook instance is running",
"createdTime":"2022-03-18T16:13:16.000+08:00",
"deletedTime":"2022-03-18T16:13:21.000+08:00",
"spec":{
"meta":{
"name":"test-nb",
"namespace":"default",
"ownerId":"e9ca23d68d884d4ebb19d07889727dae",
"labels":{
"notebook-owner-id":"e9ca23d68d884d4ebb19d07889727dae",
"notebook-id":"notebook_1647574374688_0001"
}
},
"environment":{
"name":"notebook-env",
"dockerImage":"apache/submarine:jupyter-notebook-0.7.0",
"kernelSpec":{
"name":"submarine_jupyter_py3",
"channels":[
"defaults"
],
"condaDependencies":[],
"pipDependencies":[]
},
"description":null,
"image":null
},
"spec":{
"envVars":{
"TEST_ENV":"test"
},
"resources":"cpu\u003d1,memory\u003d1.0Gi"
}
}
},
"attributes":{}
}

Delete the notebook instance​

DELETE /api/v1/notebook/{id}

Parameters​

Field NameTypeInDescriptionRequired
idStringpathNotebook id.o

Example​

Example Request
curl -X DELETE http://127.0.0.1:32080/api/v1/notebook/{id}
Example Response
{
"status":"OK",
"code":200,
"success":true,
"message":"Delete the notebook instance",
"result":{
"notebookId":"notebook_1647574374688_0001",
"name":"test-nb",
"uid":"4a839fef-b4c9-483a-b4e8-c17236588118",
"url":"/notebook/default/test-nb/lab",
"status":"terminating",
"reason":"The notebook instance is terminating",
"createdTime":"2022-03-18T16:13:16.000+08:00",
"deletedTime":"2022-03-18T16:13:21.000+08:00",
"spec":{
"meta":{
"name":"test-nb",
"namespace":"default",
"ownerId":"e9ca23d68d884d4ebb19d07889727dae",
"labels":{
"notebook-owner-id":"e9ca23d68d884d4ebb19d07889727dae",
"notebook-id":"notebook_1647574374688_0001"
}
},
"environment":{
"name":"notebook-env",
"dockerImage":"apache/submarine:jupyter-notebook-0.7.0",
"kernelSpec":{
"name":"submarine_jupyter_py3",
"channels":[
"defaults"
],
"condaDependencies":[],
"pipDependencies":[]
},
"description":null,
"image":null
},
"spec":{
"envVars":{
"TEST_ENV":"test"
},
"resources":"cpu\u003d1,memory\u003d1.0Gi"
}
}
},
"attributes":{}
}