All Products
Search
Document Center

Elastic Compute Service:ModifyReservedInstances

Last Updated:Dec 23, 2024

Modifies the configurations of a reserved instance, such as the instance type, quantity, and zone, to split, merge, or change the scope of the reserved instance.

Operation description

This operation is an asynchronous operation. After you call this operation to modify a reserved instance, the operation starts the modification process and returns the ID of the resulting new reserved instance. The original reserved instance enters the Updating state and then the Inactive state. At the same time, the resulting new reserved instance is generated and enters the Creating state and then the Active state. You can call the DescribeReservedInstances operation to query the states of the reserved instance.

  • You can modify the configurations of a reserved instance only when the reserved instance is in the Active state.
  • Make sure that the computing power of the reserved instance remains unchanged before and after the modification. Otherwise, the modification fails.
  • You cannot split, merge, or change the scope of a reserved instance at the same time.

For more information, see Split, merge, or modify reserved instances.

Sample requests

  • Sample request to split a reserved instance: Split a regional reserved instance that is scoped to the China (Hangzhou) region and can match two pay-as-you-go instances of the ecs.g5.xlarge instance type into two regional reserved instances that are scoped to the China (Hangzhou) region and each can match one pay-as-you-go instance of the ecs.g5.large instance type:
"RegionId":"cn-hangzhou", //The ID of the region.
"ReservedInstanceId":["ecsri-bp1hd03e9uv19e75****"], //The ID of the reserved instance that you want to split.
"Configuration":[
  {
    "ReservedInstanceName":"testReservedInstanceName1", //The name of the new reserved instance.
    "InstanceType":"ecs.g5.large", //The instance type that the new reserved instance can match.
    "Scope":"Region", //The scope level of the new reserved instance, which must be the same as the scope level of the original reserved instance.
    "InstanceAmount":1 //The number of pay-as-you-go instances of the specified instance type that each new reserved instance can match.
  },
  {
    "ReservedInstanceName":"testReservedInstanceName2",
    "InstanceType":"ecs.g5.large",
    "Scope":"Region",
    "InstanceAmount":1
  }
]
  • Sample request to merge reserved instance:: Merge two zonal reserved instances that are scoped to Hangzhou Zone H and can match four pay-as-you-go instances of the ecs.g5.xlarge instance type into one zonal reserved instance that is scoped to Hangzhou Zone H and can match two pay-as-you-go instance of the ecs.g5.4xlarge instance type:
"RegionId":"cn-hangzhou", //The ID of the region.
"ReservedInstanceId":["ecsri-bp1hd03e9uv16b75****",""ecsri-bp1hd03e9uv16b76****""], //The IDs of the reserved instances that you want to merge.
"Configuration":[
  {
    "ReservedInstanceName":"testReservedInstanceName", //The name of the new reserved instance.
    "InstanceType":"ecs.g5.4xlarge", //The instance type that the new reserved instance can match.
    "Scope":"Zone", //The scope level of the new reserved instance, which must be the same as the scope level of the original reserved instances.
    "ZoneId":"cn-hangzhou-h", //
    "InstanceAmount":2 //The number of pay-as-you-go instances of the specified instance type that the new reserved instance can match.
  }
]
  • Sample request to change the scope of a reserved instance: Change a regional reserved instance that is scoped to Hangzhou Zone H and can match six pay-as-you-go instances of the ecs.g5.xlarge instance type to a regional reserved instance that is scoped to the China (Hangzhou) region and can match three pay-as-you-go instances of the ecs.g5.2xlarge instance type.
"RegionId":"cn-hangzhou", //The ID of the region.
"ReservedInstanceId":["ecsri-bp1hd03e9uv16b77****"], //The ID of the reserved instance whose scope you want to change.
"Configuration":[
  {
    "ReservedInstanceName":"testReservedInstanceName", //The name of the new reserved instance.
    "InstanceType":"ecs.g5.2xlarge", //The instance type that the new reserved instance can match.
    "Scope":"Region", //The scope level of the new reserved instance.
    "InstanceAmount":3 //The number of pay-as-you-go instances of the specified instance type that the new reserved instance can match.
  }
]

Debugging

You can run this interface directly in OpenAPI Explorer, saving you the trouble of calculating signatures. After running successfully, OpenAPI Explorer can automatically generate SDK code samples.

Authorization information

The following table shows the authorization information corresponding to the API. The authorization information can be used in the Action policy element to grant a RAM user or RAM role the permissions to call this API operation. Description:

  • Operation: the value that you can use in the Action element to specify the operation on a resource.
  • Access level: the access level of each operation. The levels are read, write, and list.
  • Resource type: the type of the resource on which you can authorize the RAM user or the RAM role to perform the operation. Take note of the following items:
    • The required resource types are displayed in bold characters.
    • If the permissions cannot be granted at the resource level, All Resources is used in the Resource type column of the operation.
  • Condition Key: the condition key that is defined by the cloud service.
  • Associated operation: other operations that the RAM user or the RAM role must have permissions to perform to complete the operation. To complete the operation, the RAM user or the RAM role must have the permissions to perform the associated operations.
OperationAccess levelResource typeCondition keyAssociated operation
ecs:ModifyReservedInstancesupdate
*ReservedInstance
acs:ecs:{#regionId}:{#accountId}:reservedinstance/{#reservedinstanceId}
    none
none

Request parameters

ParameterTypeRequiredDescriptionExample
RegionIdstringYes

The IDs of reserved instances. Valid values of N: 1 to 20.

cn-hangzhou
ReservedInstanceIdarrayYes

The IDs of reserved instances that you want to modify. You can specify up to 20 reserved instance IDs.

stringYes

The ID of the reserved instance.

ecsri-bp15xx2****
Configurationarray<object>No

The configurations of the new reserved instances. You can specify up to 100 new reserved instances.

objectNo

The configurations of the new reserved instance.

ReservedInstanceNamestringNo

The name of the new reserved instance.

The name must be 2 to 128 characters in length. The name must start with a letter and cannot start with http:// or https://. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-).

testReservedInstanceName
ZoneIdstringNo

The zone ID of the new reserved instance.

This parameter is required when you set Scope to Zone.

You can call the DescribeZones operation to query the most recent zone list.

cn-hangzhou-i
ScopestringYes

The scope level of the new reserved instance. Valid values:

  • Region
  • Zone

Default value: Region.

Zone
InstanceTypestringYes

The instance types that the new reserved instance can match.

Note The supported instance types are continuously updated. For information about the instance types supported by reserved instances, see Overview of reserved instances.
ecs.c5.4xlarge
InstanceAmountintegerYes

The number of pay-as-you-go instances of the specified instance type that the new reserved instance can match. The value of this parameter must be greater than or equal to 1.

1

Response parameters

ParameterTypeDescriptionExample
object
RequestIdstring

Details about the reserved instance.

ED9E4A5F-FF4D-4C96-BE80-6B4227060DD7
ReservedInstanceIdSetsarray

The IDs of the reserved instances.

ReservedInstanceIdstring

The ID of the reserved instance.

{"ReservedInstanceId":"ecsri-bp1cx3****","ecsri-bp15xx2****"]}

Examples

Sample success responses

JSONformat

{
  "RequestId": "ED9E4A5F-FF4D-4C96-BE80-6B4227060DD7",
  "ReservedInstanceIdSets": {
    "ReservedInstanceId": [
      "{\"ReservedInstanceId\":\"ecsri-bp1cx3****\",\"ecsri-bp15xx2****\"]}"
    ]
  }
}

Error codes

HTTP status codeError codeError messageDescription
400InvalidInstanceType.ValueUnauthorizedThe specified InstanceType is not authorized.You are not authorized to use the specified instance type.
400InvalidParameter.ConflictThe specified region and cluster do not match.The specified region and cluster do not correspond to each other.
400InvalidTagKey.MalformedThe specified Tag.n.Key is not valid.The specified Tag.N.Key parameter is invalid.
400RegionUnauthorized%s-
400Zone.NotOnSale%sThe requested resources are unavailable in the specified zone. %s is a variable. An error message is dynamically returned based on call conditions.
400InvalidPeriodUnit.ValueNotSupportedThe specified parameter PeriodUnit is not valid.The specified PeriodUnit parameter is invalid.
400InvalidTagValue.MalformedThe specified Tag.n.Value is not valid.The specified tag value is invalid.
400InvalidChargeType.ValueNotSupportedChargeType is not valid.This billing method is not supported. Select another billing method.
400OperationDeniedThe specified InstanceType or Zone is not authorized for current user.-
403OperationDenied.NoStockThe requested resource is sold out in the specified zone; try other types of resources or other regions and zones.The requested resources are insufficient.
403OperationDeniedSales of this resource are temporarily suspended in the specified region; please try again later.The requested resource is unavailable in the specified region. Try again later.
403NodeControllerUnavailableThe Node Controller is temporarily unavailable.The node controller is unavailable.
403OperationDeniedThe resource is out of usage.The instance is not in the Running state. Start the instance or check whether the specified operation is valid.
403InvalidParameter.ResourceOwnerAccountResourceOwnerAccount is Invalid.The specified ResourceOwnerAccount parameter is invalid.
403Zone.NotOpenThe specified zone is not granted to you to buy resources yet.You are not authorized to purchase resources in the specified zone.
403Zone.NotOnSaleThe specified zone is not available for purchase.The requested resources are unavailable in the specified zone. Try a different instance type or select a different region or zone.
403InvalidResourceType.NotSupported%s-
403InvalidParameter.NotMatch%sA specified parameter is invalid. Check whether parameter conflicts exist.
403Account.ArrearageYour account has been in arrears.Your account does not have enough balance. Please add funds to your account.
403InvalidReservedInstanceName.MalformedThe specified parameter ReservedInstanceName is invalid.-
403InvalidParameter.ScopeThe specified parameter 'Scope' is invalid.-
403InvalidReservedInstanceStatus.ValueNotSupportedReservedInstance status is not supported.-
403InvalidReservedInstanceOfferingType.ValueNotSupportedThe OfferingType is not supported.-
403InvalidReservedInstanceOfferingClass.ValueNotSupportedThe OfferingClass is not supported.-
403MissingParameter.ZoneIdThe specified zoneId should be not empty.-
403MissingParameter.InstanceTypeThe instanceType should be not empty.-
403MissingParameter.ReservedInstanceIdThe ids of reservedInstance can not be empty.-
403MissingParameter.ReservedInstanceConfigurationThe configurations of reservedInstance can not be empty.-
403InvalidParameter.SplitOrMergeThe Many-to-many of modification is not supported.-
403MissingParameter.InstanceTypeAndAmountBothEmptyThe instanceType and amount can not be both empty.-
403InvalidReservedInstancePlatform.ValueNotSupportedThe Platform is not supported.-
403InvalidParameter.ReservedInstanceNameThe reservedInstanceName is invalid.reservedInstanceName field value is illegal
403InvalidReservedInstanceZone.ValueNotSupportedThe zoneId is not exist.-
403InvalidParameter.ValueNotSupportedThe instanceTypeFamily of the instance to be changed must be consistent.-
403InvalidParameter.ValueNotSupportedThe expiration time of the instance to be changed must be consistent.-
403InvalidParameter.ValueNotSupportedThe factor of instanceType is not equal.-
403InvalidParameter.ValueNotSupportedThe offeringClass of instance is not same.-
403InvalidParameter.ValueNotSupportedThe offeringType of instance is not same.-
403IncorrectInstanceStatusThe status of specified reservedInstance must be active.-
403IncorrectInstanceStatusThe current status of the resource does not support this operation.The resource is in a state that does not support the current operation.
403InvalidPlatform.ValueNotSupportedThe platform of reservedInstance is invalid.-
403InvalidScope.ValueNotSupportedThe scope of reservedInstance is invalid. The valid value is Zone or Region.-
403InvalidConfiguration.ValueNotSupportedThe modification Configuration should not be empty.-
403InvalidZoneId.ValueNotSupportedThe specified zoneId should be same.-
403InvalidParameterThe parameter is invalid.Please check it.-
403InvalidInstanceAmount.ValueNotSupportedThe instanceAmount is invalid.-
403OperationDenied.OnlyModifyNameIt is not allowed to modify the ReservedInstanceName only.The reserved instance name cannot be separately modified.
403InvalidReservedInstanceId.NotFoundThe specified parameter ReservedInstanceId is invalid.-
404InvalidZoneId.NotFoundThe ZoneId provided does not exist in our records.The specified zone ID does not exist.
404InvalidZoneId.NotFoundThe specified ZoneId does not exist.The specified zone ID does not exist.
500InternalErrorThe request processing has failed due to some unknown error.An internal error has occurred. Try again later.
500InternalError%sAn internal error has occurred.

For a list of error codes, visit the Service error codes.

Change history

Change timeSummary of changesOperation
2023-07-28API Description Update. The Error code has changedView Change Details
2023-05-09The Error code has changedView Change Details