Updated on 2024-02-27 GMT+08:00

Updating an EVS Snapshot

Function

This API is used to update an EVS snapshot. Enterprise project authorization is supported.

Calling Method

For details, see Calling APIs.

URI

PUT /v2/{project_id}/cloudsnapshots/{snapshot_id}

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

The project ID. For details about how to obtain the project ID, see Obtaining a Project ID.

snapshot_id

Yes

String

The snapshot ID.

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

The user token. It can be obtained by calling the IAM API used to obtain a user token. The value of X-Subject-Token in the response header is the user token.

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

snapshot

Yes

UpdateSnapshotOption object

The snapshot information.

Table 4 UpdateSnapshotOption

Parameter

Mandatory

Type

Description

description

No

String

The snapshot description. You can enter up to 85 characters.

name

No

String

The snapshot name. You can enter up to 64 characters.

Response Parameters

Status code: 200

Table 5 Response body parameters

Parameter

Type

Description

snapshot

SnapshotDetails object

The snapshot information.

Table 6 SnapshotDetails

Parameter

Type

Description

id

String

The snapshot ID.

status

String

The snapshot status. For details, see EVS Snapshot Status.

name

String

The snapshot name.

description

String

The snapshot description.

created_at

String

The time when the snapshot was created. Time format: UTC YYYY-MM-DDTHH:MM:SS.XXXXXX

updated_at

String

The time when the snapshot was updated. Time format: UTC YYYY-MM-DDTHH:MM:SS.XXXXXX

metadata

Object

The snapshot metadata.

volume_id

String

The ID of the snapshot's source disk.

size

Integer

The snapshot size, in GiB.

os-extended-snapshot-attributes:project_id

String

The reserved field.

os-extended-snapshot-attributes:progress

String

The reserved field.

Status code: 400

Table 7 Response body parameters

Parameter

Type

Description

error

Error object

The error message returned if an error occurs. For details, seeParameters in the error field.

Table 8 Error

Parameter

Type

Description

code

String

The error code returned if an error occurs. For the error codes and their meanings, see Error Codes.

message

String

The error message returned if an error occurs.

Example Requests

Updating the name and description of a snapshot

PUT https://{endpoint}/v2/{project_id}/cloudsnapshots/{snapshot_id}

{
  "snapshot" : {
    "name" : "test_volume_1",
    "description" : "121"
  }
}

Example Responses

Status code: 200

OK

{
  "snapshot" : {
    "status" : "available",
    "description" : "Daily backup",
    "created_at" : "2013-02-25T03:56:53.081642",
    "metadata" : { },
    "volume_id" : "5aa119a8-d25b-45a7-8d1b-88e127885635",
    "size" : 1,
    "id" : "f9faf7df-fdc1-4093-9ef3-5cba06eef995",
    "name" : "snap-001",
    "updated_at" : "2013-02-25T03:56:53.081642"
  }
}

Status code: 400

Bad Request

{
  "error" : {
    "message" : "XXXX",
    "code" : "XXX"
  }
}

SDK Sample Code

The SDK sample code is as follows.

Updating the name and description of a snapshot

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.evs.v2.region.EvsRegion;
import com.huaweicloud.sdk.evs.v2.*;
import com.huaweicloud.sdk.evs.v2.model.*;


public class UpdateSnapshotSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        EvsClient client = EvsClient.newBuilder()
                .withCredential(auth)
                .withRegion(EvsRegion.valueOf("<YOUR REGION>"))
                .build();
        UpdateSnapshotRequest request = new UpdateSnapshotRequest();
        UpdateSnapshotRequestBody body = new UpdateSnapshotRequestBody();
        UpdateSnapshotOption snapshotbody = new UpdateSnapshotOption();
        snapshotbody.withDescription("121")
            .withName("test_volume_1");
        body.withSnapshot(snapshotbody);
        request.withBody(body);
        try {
            UpdateSnapshotResponse response = client.updateSnapshot(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

Updating the name and description of a snapshot

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# coding: utf-8

from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkevs.v2.region.evs_region import EvsRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkevs.v2 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.getenv("CLOUD_SDK_AK")
    sk = os.getenv("CLOUD_SDK_SK")

    credentials = BasicCredentials(ak, sk) \

    client = EvsClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(EvsRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = UpdateSnapshotRequest()
        snapshotbody = UpdateSnapshotOption(
            description="121",
            name="test_volume_1"
        )
        request.body = UpdateSnapshotRequestBody(
            snapshot=snapshotbody
        )
        response = client.update_snapshot(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Updating the name and description of a snapshot

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    evs "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/evs/v2"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/evs/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/evs/v2/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := evs.NewEvsClient(
        evs.EvsClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.UpdateSnapshotRequest{}
	descriptionSnapshot:= "121"
	nameSnapshot:= "test_volume_1"
	snapshotbody := &model.UpdateSnapshotOption{
		Description: &descriptionSnapshot,
		Name: &nameSnapshot,
	}
	request.Body = &model.UpdateSnapshotRequestBody{
		Snapshot: snapshotbody,
	}
	response, err := client.UpdateSnapshot(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

200

OK

400

Bad Request

Error Codes

See Error Codes.