Changes the billing method of disks that are attached to an Elastic Compute Service (ECS) instance. The billing method of up to 16 disks that are attached to the instance can be changed by calling this operation.
Operation description
After you change the billing method, any outstanding payments are automatically completed. Make sure that the balance in your account is sufficient. Otherwise, your order becomes invalid and is canceled. If your account balance is insufficient, you can set the AutoPay parameter to false to generate an unpaid order. Then, you can log on to the ECS console to pay for the order.
When you call this operation, take note of the following items:
- You can change the billing method from subscription to pay-as-you-go for disks that are attached to a subscription instance.
- You can change the billing method from pay-as-you-go to subscription for data disks that are attached to a subscription or pay-as-you-go instance.
- The instance cannot be in the Stopped state due to overdue payments.
- You can change the billing method of each disk up to three times. Up to three refunds can be made for the price differences for each disk.
- The price difference is refunded to the payment account that you used. Vouchers that have been redeemed are not refundable.
- You cannot change the billing method again within 5 minutes of a successful change.
Debugging
Authorization information
Request parameters
Parameter | Type | Required | Description | Example |
---|---|---|---|---|
InstanceId | string | Yes | The ID of the instance to which disks are attached. | i-bp1i778bq705cvx1**** |
RegionId | string | Yes | The region ID of the instance. You can call the DescribeRegions operation to query the most recent region list. | cn-hangzhou |
DiskIds | string | Yes | The disk IDs. Set this parameter to a JSON array that consists of up to 16 disk IDs. Separate the disk IDs with commas (,). | [“d-bp67acfmxazb4ph****”, “d-bp67acfmxazb4pi****”, … “d-bp67acfmxazb4pj****”] |
AutoPay | boolean | No | Specifies whether to automatically complete the payment. Valid values:
| true |
ClientToken | string | No | The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see Ensure idempotence. | 123e4567-e89b-12d3-a456-426655440000 |
DiskChargeType | string | No | The new billing method of the disk. Valid values:
| PostPaid |
Response parameters
Examples
Sample success responses
JSON
format
{
"OrderId": "1234567890",
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E"
}
Error codes
HTTP status code | Error code | Error message | Description |
---|---|---|---|
400 | InvalidInstanceType.ValueUnauthorized | The specified InstanceType is not authorized. | You are not authorized to use the specified instance type. |
400 | InvalidInstanceType.ValueNotSupported | The specified InstanceType is not supported. | The specified instance type is not supported. Try another instance type. |
400 | MissingParameter.RegionId | RegionId should not be null. | The RegionId parameter is required. |
400 | MissingParameter.InstanceIdNotSupported | InstanceId should not be null. | The InstanceId parameter is required. |
400 | ChargeTypeViolation | The operation is not permitted due to charge type of the instance. | The operation is not supported while the instance is using the current billing method. |
400 | InvalidInstanceId.Released | The specified Instance is not exist. | The specified instance does not exist. Check whether the instance ID is correct. |
400 | InvalidInstance.PurchaseNotFound | The specified Instance has no purchase. | The specified instance cannot be purchased. |
400 | InvalidInstance.UnPaidOrder | The specified Instance has unpaid order. | The specified instance has a purchase order not paid for. |
400 | InvalidClientToken.ValueNotSupported | The ClientToken provided is invalid. | The specified ClientToken parameter is invalid. |
400 | Account.Arrearage | Your account has been in arrears. | Your account does not have enough balance. Please add funds to your account. |
400 | Idempotence.SignatureMismatch | There is a idempotence signature mismatch between this and last request. | The ClientToken value is the same in the current and previous requests but the other parameters in these requests do not match. |
400 | InvalidInstanceType.ValueUnauthorized | The specified InstanceType is not Supported. | You are not authorized to use the instance type. |
400 | OrderCreationFailed | Create Order failed, please check your parameters and try it later. | - |
400 | Throttling | Request was denied due to request throttling, please try again after 5 minutes. | - |
400 | InstanceDowngrade.QuotaExceed | Quota of instance downgrade is exceed. | The maximum number of configuration downgrades allowed for the instance has been reached. |
400 | ChargeTypeViolation | The operation is not permitted due to charge type of the disk. | - |
400 | InvalidInstanceId.NotFound | The specified InstanceId does not exist. | The specified instance does not exist. |
400 | InvalidDisk.DetachedSystemDisk | The specified disk is a detached system disk, does not support this operation. | - |
400 | LastOrderProcessing | The previous order is still processing, please try again later. | The order is being processed. Try again later. |
400 | InvalidAction.WithActiveElasticUpgrade | The instance has active Elastic Upgrade. | The operation is not supported while the instance are being temporarily upgraded. The instance goes through a temporary configuration upgrade if the EndTime parameter is specified to call the ModifyPrepayInstanceSpec operation. |
400 | DISK_IN_DEDICATED_BLOCK_STORAGE_CLUSTER | The disk in dedicated block storage cluster is not allowed to do this operation. | - |
403 | Forbidden | %s | You are not authorized to use the specified resource. |
403 | InvalidAccountStatus.NotEnoughBalance | Your account does not have enough balance. | Your account balance is insufficient. Add funds to your account and try again. |
403 | InvalidInstanceChargeType.NotFound | The chargeType of the instance does not support this operation. | The operation is not supported while the instance is using the current billing method. |
403 | InvalidOperation.MultiAttachDisk | Multi attach disk does not support this operation. | Disks for which the multi-attach feature is enabled do not support the operation. |
404 | InvalidRegionId.NotFound | The RegionId provided does not exist. | The specified region does not exist. |
404 | PaymentMethodNotFound | No billing method has been registered on the account. | - |
404 | InvalidZoneId.NotFound | The ZoneId provided does not exist in our records. | The specified zone ID does not exist. |
404 | InvalidRamRole.NotFound | The specified parameter "RAMRoleName" does not exist. | - |
404 | InvalidDiskIds.NotFound | Some of the specified data disks do not exist. | Some disks specified by the DiskIds parameter do not exist. |
404 | InvalidDiskIds.NotPortable | The specified DiskId is not portable. | The specified disk is not removable. |
404 | InvalidDataDiskSize.ValueNotSupported | The specified parameter "Size" is not supported. | - |
404 | InvalidAction.NotSupported | The specified action is not supported. | The specified API operation is not supported. |
404 | InvalidInstanceStatus.NotSupported | The status of the specified instance is invalid. | The instance is in a state that does not support the current operation. |
404 | InvalidInstanceId.NOT_FOUND | The specified instance is not exist. | The specified instance does not exist. |
404 | InvalidDiskIds.NotPortable | The specified disk is not portable. | - |
500 | InternalError | The request processing has failed due to some unknown error. | An internal error has occurred. Try again later. |
For a list of error codes, visit the Service error codes.
Change history
Change time | Summary of changes | Operation |
---|