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 Name | Type | Description | Required | 
|---|---|---|---|
| meta | NotebookMeta | Meta data of the notebook. | o | 
| environment | EnvironmentSpec | Environment of the experiment template. | o | 
| spec | NotebookPodSpec | Spec of the notebook pods. | o | 
NotebookMetaβ
| Field Name | Type | Description | Required | 
|---|---|---|---|
| name | String | Notebook name. | o | 
| namespace | String | Notebook namespace. | o | 
| ownerId | String | User id. | o | 
EnvironmentSpecβ
See more details in environment api.
NotebookPodSpecβ
| Field Name | Type | Description | Required | 
|---|---|---|---|
| envVars | Map<String, String> | Environmental variables. | x | 
| resources | String | Resourecs 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 Name | Type | In | Description | Required | 
|---|---|---|---|---|
| id | String | query | User 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 Name | Type | In | Description | Required | 
|---|---|---|---|---|
| id | String | path | Notebook 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 Name | Type | In | Description | Required | 
|---|---|---|---|---|
| id | String | path | Notebook 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":{}
}