Updating a Notebook Instance
Function
This API is used to modify the instance configurations, including its name, description, specifications, and image.
This API applies to the following scenario: When you need to modify the configuration of a notebook instance to adapt to new requirements, you can use this API to update the instance details. Before using this API, ensure that you have logged in to the system and have the permission to perform operations on the target notebook instance. In addition, the notebook instance must have been stopped. After this API is called, the system updates the configuration of the specified notebook instance. If you do not have the permission to perform operations on the specified notebook instance or the notebook instance has not been stopped, the API will return an error message. If the specified notebook instance is not found or the modification to the parameters is invalid, the API will return an error message.
Constraints
None
Debugging
You can debug this API through automatic authentication in API Explorer or use the SDK sample code generated by API Explorer.
Authorization Information
Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions.
- If you are using role/policy-based authorization, see Permissions Policies and Supported Actions for details on the required permissions.
- If you are using identity policy-based authorization, the following identity policy-based permissions are required.
URI
PUT /v1/{project_id}/notebooks/{id}
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
id |
Yes |
String |
Definition: Notebook instance ID. The ID is in the format of a Universally Unique Identifier (UUID). For details about how to obtain the ID, see Querying Notebook Instances. Constraints: N/A Range: N/A Default Value: N/A |
|
project_id |
Yes |
String |
Definition: Project ID. For details, see Obtaining a Project ID and Name. Constraints: N/A Range: N/A Default Value: N/A |
Request Parameters
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
description |
No |
String |
Definition: Instance description can be updated. Constraints: N/A Range: The value can contain up to 512 characters and cannot contain special characters (&<>"'/). Default Value: N/A |
|
endpoints |
No |
Array of EndpointsReq objects |
Definition: Only local IDE (such as PyCharm and VS Code) or SSH client can be used to access a notebook instance. Constraints: Configurations required for remotely accessing a notebook instance through SSH only on the local IDE (such as PyCharm and VS Code) or SSH client. |
|
flavor |
No |
String |
Definition: The machine specifications of the notebook instance can be changed. Specifications that can be changed. You can call the API in Querying Flavors Available for a Notebook Instance to obtain them. Constraints: N/A Range: N/A Default Value: N/A |
|
custom_spec |
No |
NotebookCustomSpec object |
Definition: Custom specifications of an instance. This parameter and the flavor field cannot be set at the same time. Constraints: This is only supported in CPU or GPU dedicated pool scenarios based on the specific node specifications of the dedicated pool. |
|
image_id |
No |
String |
Definition: Image ID can be updated. For details, see Querying Supported Images. Constraints: N/A Range: Valid image IDs obtained by calling APIs in Querying Supported Images. Default Value: N/A |
|
name |
No |
String |
Definition: Instance name can be updated. Constraints: N/A Range: The value can contain a maximum of 128 characters. Only letters, digits, hyphens (-), and underscores (_) are allowed. The name can be repeated. Default Value: N/A |
|
storage_new_size |
No |
Integer |
Definition: EVS instance capacity that can be expanded dynamically, in GB. Only scale-out is supported. Constraints: N/A Range: The capacity can be expanded to at most 4,096 GB. Default Value: N/A |
|
hooks |
No |
CustomHooks object |
Definition: The instance startup script can be updated. Constraints: N/A |
|
affinity |
No |
AffinityType object |
Definition: Affinity settings can be updated. Constraints: This parameter can be updated only when the instance is stopped or fails to be started. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
allowed_access_ips |
No |
Array of strings |
Definition: Public IP addresses that can remotely access the notebook instance. A maximum of five public IP addresses are supported. Constraints: N/A |
|
service |
No |
String |
Definition: Supported services. Constraints: N/A Range: Default Value: N/A |
|
key_pair_names |
No |
Array of strings |
Definition: Name of the SSH key pair, which can be created and viewed on the Key Pair page of the Elastic Cloud Server (ECS) console. Constraints: N/A |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
gpu |
No |
Float |
Definition: This parameter is mandatory for GPU dedicated pools. It indicates the number of GPUs requested for an instance. If no GPU needs to be scheduled, set this parameter to 0. Constraints: Do not set this parameter in the CPU dedicated pool scenario. Unit: PU. The minimum value is 0. The maximum value depends on the specifications of a single node in the GPU dedicated pool. |
|
cpu |
Yes |
Float |
Definition: This parameter is mandatory for CPU and GPU dedicated pools. It indicates the number of CPU cores requested for an instance. Constraints: Unit: core. The value must be greater than 0.3 cores. The maximum value depends on the specifications of a single node in the dedicated pool. |
|
memory |
Yes |
Float |
Definition: This parameter is mandatory in the CPU/GPU dedicated pool scenario. It indicates the memory size requested for an instance. Constraints: Unit: MiB. The value is a positive integer greater than 512 MiB. The maximum value depends on the specifications of a single node in the dedicated pool. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
container_hooks |
No |
ContainerHooks object |
Definition: Container hook configuration. Constraints: N/A |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
post_start |
No |
Config object |
Definition: Script configuration after the service is started. Constraints: N/A |
|
pre_start |
No |
Config object |
Definition: Script configuration before the service is started. Constraints: N/A |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
script |
No |
String |
Definition: Custom script (Base64 encoding) or absolute path of a script. Constraints: N/A Range: N/A Default Value: N/A |
|
type |
No |
String |
Definition: Script type. Constraints: N/A Range: Default Value: SCRIPT |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
required_during_scheduling_ignored_during_execution |
No |
Array of AffinityRule objects |
Definition: Strong affinity feature in the dedicated pool scenario. Constraints: key, values, and operator are mandatory. |
|
preferred_during_scheduling_ignored_during_execution |
No |
Array of AffinityRule objects |
Definition: Weak affinity feature in the dedicated pool scenario. Constraints: key, values, and operator are mandatory, and weight is optional. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
key |
No |
String |
Definition: Affinity description. Both default labels and custom labels are supported. For details about the default node labels, see Managing Node Labels. Constraints: Labels are key-value pairs. A valid label key consists of two segments: prefix (optional) and name, which are separated by a slash (/). Range: The name segment is mandatory and must be less than or equal to 63 characters. It must start and end with a letter or digit and only contain letters, digits, hyphens (-), underscores (_), and periods (.). The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by periods (.), with a total of no more than 253 characters, followed by a slash (/). For details, see Labels and Selectors. Default Value: N/A. |
|
operator |
No |
String |
Definition: Operator. Constraints: N/A Range: The following operators are supported: In: The label of the affinity or anti-affinity object is in the label value list (values field). NotIn: The label of the affinity or anti-affinity object is not in the label value list (values field). Exists: The affinity or anti-affinity object has a specified label key. DoesNotExist: The affinity or anti-affinity object does not have a specified label key. Gt: The label value of the scheduling node exceeds what is listed (string comparison). Lt: The label value of the scheduling node is under what is listed (string comparison). Default Value: N/A. |
|
values |
No |
Array of strings |
Definition: When configuring node affinity, enter the value of the node label. Constraints: The value must be 63 characters or fewer (can be empty). If the label value is not empty, the value must start and end with a letter or digit and can contain hyphens (-), underscores (_), periods (.), letters, or digits. For details, see Labels and Selectors. |
|
weight |
No |
Integer |
Weight value of the weak affinity node. The value ranges from 0 to 100. The value is NULL for strong affinity and optional for weak affinity. |
Response Parameters
Status code: 200
|
Parameter |
Type |
Description |
|---|---|---|
|
action_progress |
Array of JobProgress objects |
Definition: Initialization progress of the instance. |
|
description |
String |
Definition: Instance description. Range: N/A |
|
endpoints |
Array of EndpointsRes objects |
Definition: Local IDE (such as PyCharm and VS Code) or SSH client for remotely accessing a notebook instance through SSH. |
|
fail_reason |
String |
Definition: Instance failure cause. Range: N/A |
|
flavor |
String |
Definition: Instance flavor.
Range: N/A. |
|
custom_spec |
NotebookCustomSpecRep object |
Definition: Custom specifications of an instance. This parameter is returned only when a CPU or GPU dedicated pool is used and the custom specifications are used. Range: N/A. |
|
id |
String |
Definition: Instance ID. Range: N/A |
|
image |
Image object |
Definition: Instance image information. |
|
lease |
Lease object |
Definition: Countdown to auto stop of an instance. |
|
name |
String |
Definition: Instance name. Range: N/A |
|
pool |
Pool object |
Definition: Basic information about the dedicated pool, which is returned by the instance created in the dedicated pool. |
|
status |
String |
Definition: Instance status. Range: |
|
token |
String |
Description: Token used for notebook authentication. Range: N/A |
|
url |
String |
Definition: URL for accessing the instance. Range: N/A |
|
volume |
VolumeRes object |
Definition: Instance storage information. |
|
workspace_id |
String |
Definition: Workspace ID. If no workspaces are available, the default value is 0. If a workspace is created and used, use the actual value. Range: N/A |
|
feature |
String |
Definition: Instance type. Range: |
|
billing_items |
Array of strings |
Definition: Billing resource type. Range: |
|
user |
user object |
Description: Account information. |
|
affinity |
AffinityType object |
Definition: Affinity information. |
|
run_user |
RunUserInfo object |
Definition: Information about the startup user and startup user group. |
|
Parameter |
Type |
Description |
|---|---|---|
|
notebook_id |
String |
Definition: Instance ID. Range: N/A |
|
status |
String |
Definition: Job status in a specified step. Range: |
|
step |
Integer |
Definition: Job step. Range: |
|
step_description |
String |
Definition: Job description in a specified step. Range: N/A |
|
Parameter |
Type |
Description |
|---|---|---|
|
allowed_access_ips |
Array of strings |
Definition: Whitelisted public IP addresses that are allowed to access notebook instances through SSH. By default, all public IP addresses can access the notebook instances. If IP addresses are specified, only the clients with the specified IP addresses can access the notebook instances. |
|
dev_service |
String |
Definition: Method for accessing the notebook instance. Range: |
|
ssh_keys |
Array of strings |
Definition: List of SSH key pairs. You can set multiple key pairs to access an SSH instance at the same time. |
|
service |
String |
Definition: Method for accessing the notebook instance. Range: |
|
uri |
String |
Definition: Private IP address of the instance. Range: N/A |
|
Parameter |
Type |
Description |
|---|---|---|
|
gpu |
Float |
Definition: This parameter is mandatory for GPU dedicated pools. It indicates the number of GPUs requested for an instance. If no GPU needs to be scheduled, set this parameter to 0. Constraints: This field is not available in the CPU dedicated pool scenario. |
|
gpu_type |
String |
Definition: This parameter is one of the response parameters for custom specifications in the GPU dedicated pool scenario. It indicates the type of GPU accelerator cards requested for an instance. Constraints: This field is not available in the CPU dedicated pool scenario. |
|
cpu |
Float |
Definition: This parameter is mandatory for CPU and GPU dedicated pools. It indicates the number of CPU cores requested for an instance. |
|
memory |
Float |
Definition: Memory size requested for an instance. |
|
arch |
String |
Definition: This parameter is mandatory for custom specifications in the CPU/GPU dedicated pool scenario. It indicates the CPU architecture of the custom specifications requested for an instance. Constraints: The value can be x86_64 or AARCH64. |
|
category |
String |
Definition: This parameter is mandatory for custom specifications in the CPU/GPU dedicated pool scenario. It indicates the type of the custom specifications requested for an instance. Constraints: The value can be CPU orGPU. |
|
Parameter |
Type |
Description |
|---|---|---|
|
arch |
String |
Definition: Processor architecture supported by the image. Range |
|
create_at |
Long |
Definition: UTC time when the image is created, accurate to millisecond. Range: N/A |
|
description |
String |
Definition: Image description. Range: Up to 512 characters |
|
dev_services |
Array of strings |
Definition: Services supported by the image. Range: |
|
id |
String |
Definition: ID of the image used for creating notebook instances. The ID is in Universally Unique Identifier (UUID) format. For details, see Querying Supported Images. Range: N/A |
|
name |
String |
Definition: Image name. Range: The name can contain a maximum of 512 characters. Lowercase letters, digits, hyphens (-), underscores (_), and periods (.) are allowed. |
|
namespace |
String |
Definition: Organization to which the image belongs. You can create and view an organization on the Organization Management page of the SWR console. Range: N/A |
|
origin |
String |
Definition: Image source. Range: |
|
resource_categories |
Array of strings |
Definition: Flavors supported by the image. Range: |
|
service_type |
String |
Definition: Supported image types. Range: |
|
size |
Long |
Definition: Image size, in KB. Range: N/A |
|
status |
String |
Definition: Image status. Range: |
|
status_message |
String |
Definition: Build information during image saving. Range: N/A |
|
support_res_categories |
Array of strings |
Definition: Flavors supported by the image. Range: |
|
swr_path |
String |
Definition: SWR image path. Range: N/A |
|
tag |
String |
Definition: Image tag. Range: N/A |
|
type |
String |
Definition: Image type. Range: |
|
update_at |
Long |
Definition: Time (UTC) when the image was last updated, accurate to millisecond. Range: N/A |
|
visibility |
String |
Definition: Image visibility. Range: |
|
workspace_id |
String |
Definition: Workspace ID. If no workspaces are available, the default value is 0. If a workspace is created and used, use the actual value. Range: N/A |
|
flavor_type |
String |
Definition: Resource type of the image. Range: |
|
Parameter |
Type |
Description |
|---|---|---|
|
create_at |
Long |
Definition: UTC time when the instance is created, accurate to millisecond. Range: N/A |
|
duration |
Long |
Definition: Instance runtime, which is calculated based on the instance creation time. If the instance creation time plus the runtime is greater than the current time, the system automatically stops the instance. Range: N/A |
|
enable |
Boolean |
Definition: Specifies whether to enable auto stop. Range: Boolean |
|
type |
String |
Definition: Auto stop type. Range: |
|
update_at |
Long |
Definition: Time (UTC) when the instance is last updated (excluding liveness check), accurate to millisecond. Range: N/A |
|
Parameter |
Type |
Description |
|---|---|---|
|
id |
String |
Definition: Dedicated resource pool ID. Range: N/A |
|
name |
String |
Definition: Dedicated resource pool name. Range: N/A |
|
Parameter |
Type |
Description |
|---|---|---|
|
capacity |
Integer |
Definition: Storage capacity. Range: The default value is 5 GB for EVS and 50 GB for EFS. The maximum value is 4,096 GB. |
|
category |
String |
Definition: Supported storage type. For details about the differences between the storage types, see Selecting Storage in DevEnviron](tag:hk). Range: |
|
mount_path |
String |
Definition: Directory of the notebook instance to which the storage is mounted. Currently, the directory is /home/ma-user/work/. Range: N/A |
|
ownership |
String |
Definition: Resource owner. Range: |
|
status |
String |
Definition: EVS disk capacity expansion status, which is RESIZING during capacity expansion and does not affect the instance. Range: N/A |
|
Parameter |
Type |
Description |
|---|---|---|
|
domain |
domain object |
Description: Domain information of the account. |
|
id |
String |
Definition: User ID. For details, see Obtaining a Username and ID. Range: N/A. |
|
name |
String |
Definition: Username. Range: N/A. |
|
Parameter |
Type |
Description |
|---|---|---|
|
id |
String |
Definition: Account ID. Range: N/A |
|
name |
String |
Definition: Account name. Range: N/A |
|
Parameter |
Type |
Description |
|---|---|---|
|
required_during_scheduling_ignored_during_execution |
Array of AffinityRule objects |
Definition: Strong affinity feature in the dedicated pool scenario. Constraints: key, values, and operator are mandatory. |
|
preferred_during_scheduling_ignored_during_execution |
Array of AffinityRule objects |
Definition: Weak affinity feature in the dedicated pool scenario. Constraints: key, values, and operator are mandatory, and weight is optional. |
|
Parameter |
Type |
Description |
|---|---|---|
|
key |
String |
Definition: Affinity description. Both default labels and custom labels are supported. For details about the default node labels, see Managing Node Labels. Constraints: Labels are key-value pairs. A valid label key consists of two segments: prefix (optional) and name, which are separated by a slash (/). Range: The name segment is mandatory and must be less than or equal to 63 characters. It must start and end with a letter or digit and only contain letters, digits, hyphens (-), underscores (_), and periods (.). The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by periods (.), with a total of no more than 253 characters, followed by a slash (/). For details, see Labels and Selectors. Default Value: N/A. |
|
operator |
String |
Definition: Operator. Constraints: N/A Range: The following operators are supported: In: The label of the affinity or anti-affinity object is in the label value list (values field). NotIn: The label of the affinity or anti-affinity object is not in the label value list (values field). Exists: The affinity or anti-affinity object has a specified label key. DoesNotExist: The affinity or anti-affinity object does not have a specified label key. Gt: The label value of the scheduling node exceeds what is listed (string comparison). Lt: The label value of the scheduling node is under what is listed (string comparison). Default Value: N/A. |
|
values |
Array of strings |
Definition: When configuring node affinity, enter the value of the node label. Constraints: The value must be 63 characters or fewer (can be empty). If the label value is not empty, the value must start and end with a letter or digit and can contain hyphens (-), underscores (_), periods (.), letters, or digits. For details, see Labels and Selectors. |
|
weight |
Integer |
Weight value of the weak affinity node. The value ranges from 0 to 100. The value is NULL for strong affinity and optional for weak affinity. |
|
Parameter |
Type |
Description |
|---|---|---|
|
uid |
Integer |
User ID of the container startup user. |
|
gid |
Integer |
Group ID of the container startup user. |
|
user_name |
String |
Username of the container startup user. |
|
group_name |
String |
Group name of the container startup user. |
Status code: 201
Created
Example Requests
-
Update a notebook instance. The instance must be stopped or failed to be started. Update the value of either strong or weak affinity based on the input value.
{ "affinity" : { "required_during_scheduling_ignored_during_execution" : [ { "key" : "kubernetes.io/hostname", "operator" : "In", "values" : [ "192.168.1.1" ] } ], "preferred_during_scheduling_ignored_during_execution" : [ { "key" : "kubernetes.io/hostname", "operator" : "In", "values" : [ "192.168.1.1" ] } ] } } -
Select either of the values. No modification is required.
{ "affinity" : { "required_during_scheduling_ignored_during_execution" : null, "preferred_during_scheduling_ignored_during_execution" : null } } -
Disable and clear affinity settings.
{ "affinity" : { "required_during_scheduling_ignored_during_execution" : [ ], "preferred_during_scheduling_ignored_during_execution" : [ ] } } -
Update a notebook instance. No update is required.
{ "affinity" : null }
Example Responses
Status code: 200
OK
{
"affinity" : {
"required_during_scheduling_ignored_during_execution" : [ {
"key" : "kubernetes.io/hostname",
"operator" : "In",
"values" : [ "192.168.1.1" ]
} ],
"preferred_during_scheduling_ignored_during_execution" : [ {
"key" : "kubernetes.io/hostname",
"operator" : "In",
"values" : [ "192.168.1.1" ]
} ]
}
}
Status Codes
|
Status Code |
Description |
|---|---|
|
200 |
OK |
|
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot