Unsubscribing from Yearly/Monthly EVS Disks
Function
This API is used to unsubscribe from yearly/monthly EVS disks. It has the following constraints:
-
It cannot be used to unsubscribe from system disks and bootable disks. They must be unsubscribed from together with their servers.
-
A maximum of 60 disks can be unsubscribed from at the same time using this API.
Calling Method
For details, see Calling APIs.
URI
POST /v2/{project_id}/cloudvolumes/unsubscribe
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Definition The project ID. For details about how to obtain the project ID, see Obtaining a Project ID. Constraints N/A Range N/A Default Value N/A |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
X-Auth-Token |
Yes |
String |
Definition The user token. You can obtain it by calling the IAM API. The value of X-Subject-Token in the response header is the user token. Constraints N/A Range N/A Default Value N/A |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
volume_ids |
Yes |
Array of strings |
Definition The yearly/monthly disks to be unsubscribed from. You can obtain the disk IDs on the disk list page of the EVS console. Constraints N/A Range N/A Default Value N/A |
Response Parameters
Status code: 202
Parameter |
Type |
Description |
---|---|---|
[items] |
Array of UnsubscribeVolumeResponseBody objects |
Definition The response body of unsubscribing from a yearly/monthly disk. Range N/A |
Parameter |
Type |
Description |
---|---|---|
results |
Array of UnsubscribeVolume objects |
Definition The unsubscription result. Range N/A |
Parameter |
Type |
Description |
---|---|---|
volume_id |
String |
Definition The disk ID. Range N/A |
order_id |
String |
Definition The unsubscription order ID. This field does not appear if the disk is unsubscribed from because it is expired. Range N/A |
result |
String |
Definition The unsubscription result. Range SUCCESS or FAIL |
fail_reason |
String |
Definition The returned failure cause if result is FAIL. This field does not appear if result is SUCCESS. Range N/A |
Status code: 400
Parameter |
Type |
Description |
---|---|---|
[items] |
Array of strings |
Example Requests
Unsubscribing from yearly/monthly disks whose IDs are 8739ca48-1b86-46aa-9059-38623ee1346c and fc7d594d-e78f-49a8-ab6e-90ee6b560cb0
POST /v2/{project_id}/cloudvolumes/unsubscribe { "volume_ids" : [ "fc7d594d-e78f-49a8-ab6e-90ee6b560cb0", "8739ca48-1b86-46aa-9059-38623ee1346c" ] }
Example Responses
Status code: 202
The request is responded.
{ "results" : [ { "volume_id" : "8739ca48-1b86-46aa-9059-38623ee1346c", "order_id" : "CS23021116385NAOR", "result" : "SUCCESS" }, { "volume_id" : "fc7d594d-e78f-49a8-ab6e-90ee6b560cb0", "result" : "FAIL", "fail_reason" : "INTERNAL ERROR, please contact customer service" } ] }
Status code: 400
The disk ID transferred to the request body is incorrect and needs to be checked.
{ "error" : { "message" : "Volume id: [xxx, xxx]is not found in project: xxxx,please check.", "code" : "EVS.2203" } }
SDK Sample Code
The SDK sample code is as follows.
Java
Unsubscribing from yearly/monthly disks whose IDs are 8739ca48-1b86-46aa-9059-38623ee1346c and fc7d594d-e78f-49a8-ab6e-90ee6b560cb0
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 52 53 54 55 |
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.*; import java.util.List; import java.util.ArrayList; public class UnsubscribePostpaidVolumeSolution { 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"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); EvsClient client = EvsClient.newBuilder() .withCredential(auth) .withRegion(EvsRegion.valueOf("<YOUR REGION>")) .build(); UnsubscribePostpaidVolumeRequest request = new UnsubscribePostpaidVolumeRequest(); UnsubscribeVolumeRequestBody body = new UnsubscribeVolumeRequestBody(); List<String> listbodyVolumeIds = new ArrayList<>(); listbodyVolumeIds.add("fc7d594d-e78f-49a8-ab6e-90ee6b560cb0"); listbodyVolumeIds.add("8739ca48-1b86-46aa-9059-38623ee1346c"); body.withVolumeIds(listbodyVolumeIds); request.withBody(body); try { UnsubscribePostpaidVolumeResponse response = client.unsubscribePostpaidVolume(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()); } } } |
Python
Unsubscribing from yearly/monthly disks whose IDs are 8739ca48-1b86-46aa-9059-38623ee1346c and fc7d594d-e78f-49a8-ab6e-90ee6b560cb0
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 |
# coding: utf-8 import os 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.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) client = EvsClient.new_builder() \ .with_credentials(credentials) \ .with_region(EvsRegion.value_of("<YOUR REGION>")) \ .build() try: request = UnsubscribePostpaidVolumeRequest() listVolumeIdsbody = [ "fc7d594d-e78f-49a8-ab6e-90ee6b560cb0", "8739ca48-1b86-46aa-9059-38623ee1346c" ] request.body = UnsubscribeVolumeRequestBody( volume_ids=listVolumeIdsbody ) response = client.unsubscribe_postpaid_volume(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
Go
Unsubscribing from yearly/monthly disks whose IDs are 8739ca48-1b86-46aa-9059-38623ee1346c and fc7d594d-e78f-49a8-ab6e-90ee6b560cb0
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") projectId := "{project_id}" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := evs.NewEvsClient( evs.EvsClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.UnsubscribePostpaidVolumeRequest{} var listVolumeIdsbody = []string{ "fc7d594d-e78f-49a8-ab6e-90ee6b560cb0", "8739ca48-1b86-46aa-9059-38623ee1346c", } request.Body = &model.UnsubscribeVolumeRequestBody{ VolumeIds: listVolumeIdsbody, } response, err := client.UnsubscribePostpaidVolume(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
More
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 |
---|---|
202 |
The request is responded. |
400 |
The disk ID transferred to the request body is incorrect and needs to be checked. |
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