CreateElasticityAssurance

Updated at: 2025-04-17 06:16

Creates an elasticity assurance in a region. When you call this operation, you can specify parameters, such as ZoneId, InstanceType, Period, PeriodUnit, and AutoRenew, in the request.

Operation description

Elasticity Assurance provides a new method to purchase and use guaranteed resources in a flexible manner. Elasticity Assurance is a resource reservation service that provides assured access to resources for pay-as-you-go Elastic Compute Service (ECS) instances. For more information, see Overview of Elasticity Assurance.

  • After you purchase an elasticity assurance, you cannot request a refund for the elasticity assurance. For information about the billing of elasticity assurances, see Resource assurance.
  • Elasticity assurances can be used to create only pay-as-you-go ECS instances.
  • Elasticity assurances only support the unlimited mode. You can set AssuranceTimes only to Unlimited. Elasticity assurances in unlimited mode can be used for an unlimited number of times within their terms. Elasticity assurances in unlimited mode take effect immediately after creation.

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:
    • For mandatory resource types, indicate with a prefix of * .
    • 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
OperationAccess levelResource typeCondition keyAssociated operation
ecs:CreateElasticityAssurancecreate
*ElasticityAssurance
acs:ecs:{#regionId}:{#accountId}:elasticityassurance/*
    none
none

Request parameters

ParameterTypeRequiredDescriptionExample
ParameterTypeRequiredDescriptionExample
RegionIdstringYes

The ID of the region in which to create the elasticity assurance. You can call the DescribeRegions operation to query the most recent region list.

cn-hangzhou
ResourceGroupIdstringNo

The ID of the resource group to which to assign the elasticity assurance.

rg-bp67acfmxazb4p****
Tagarray<object>No

The tags to add to the elasticity assurance.

objectNo

The tag to add to the elasticity assurance.

KeystringNo

The key of tag N to add to the elasticity assurance. Valid values of N: 1 to 20. The tag key cannot be an empty string. The tag key can be up to 128 characters in length and cannot contain http:// or https://. The tag key cannot start with acs: or aliyun.

TestKey
ValuestringNo

The value of tag N to add to the elasticity assurance. Valid values of N: 1 to 20. The tag value can be an empty string. The tag value can be up to 128 characters in length and cannot start with acs:. The tag value cannot contain http:// or https://.

TestValue
PeriodintegerNo

The validity period of the elasticity assurance. The unit of the validity period is determined by the value of PeriodUnit. Valid values:

  • When the value of PeriodUnit is Month, the valid values are 1, 2, 3, 4, 5, 6, 7, 8, and 9.
  • When the value of PeriodUnit is Year, the valid values are 1, 2, 3, 4, and 5.
  • When the value of PeriodUnit is Day, the valid values are 1 to 365.

Default value: 1.

1
PeriodUnitstringNo

The unit of the validity period of the elasticity assurance. Valid values:

  • Month

  • Year

  • Day

    **

    Note If you set PeriodUnit to Day, you must specify RecurrenceRules to create a time-segmented elasticity assurance.

Default value: Year.

Year
ClientTokenstringNo

The client token that you want to use 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 How to ensure idempotence.

0c593ea1-3bea-11e9-b96b-88e9fe637760
PrivatePoolOptions.NamestringNo

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

eapTestName
DescriptionstringNo

The description of the elasticity assurance. The description must be 2 to 256 characters in length. It cannot start with http:// or https://.

This parameter is empty by default.

This is description.
PrivatePoolOptions.MatchCriteriastringNo

The type of the private pool with which you want to associate the elasticity assurance. Valid values:

  • Open: open private pool. If you use the elasticity assurance to create ECS instances, the open private pool that is associated with the elasticity assurance is automatically matched. If no capacity is available in the open private pool, resources in the public pool are automatically used to create the ECS instances.
  • Target: targeted private pool. If you use the elasticity assurance to create ECS instances, the specified private pool that is associated with the elasticity assurance is automatically matched. If no capacity is available in the private pool, the ECS instances fail to be created.

Default value: Open.

Open
AssuranceTimesstringNo

The total number of times that the elasticity assurance can be used. Set the value to Unlimited. This value specifies that the elasticity assurance can be used for an unlimited number of times within its validity period.

Default value: Unlimited.

Unlimited
InstanceAmountintegerNo

The total number of instances of an instance type for which you want to reserve capacity.

Valid values: 1 to 1000.

Note
You must specify this parameter.
2
InstanceCpuCoreCountintegerNo
Note
This parameter is no longer used.
null
StartTimestringNo

The time when the elasticity assurance takes effect. The default value is the time when the CreateElasticityAssurance operation is called to create the elasticity assurance. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. For more information, see ISO 8601.

2020-10-30T06:32:00Z
ZoneIdarrayYes

The ID of the zone in which to create the elasticity assurance. An elasticity assurance can be used to reserve resources within a single zone.

stringYes

The ID of the zone in which to create the elasticity assurance. An elasticity assurance can be used to reserve resources within a single zone.

cn-hangzhou-h
InstanceTypearrayYes

The instance type. An elasticity assurance can be created to reserve the capacity of a single instance type.

stringYes

The instance type. An elasticity assurance can be created to reserve the capacity of a single instance type.

ecs.c6.xlarge
RecurrenceRulesarray<object>No

The assurance schedules of the time-segmented elasticity assurance.

Note
Time-segmented elasticity assurances are available only in specific regions and to specific users. To use time-segmented elasticity assurances, submit a ticket.
objectNo

The assurance schedule of the time-segmented elasticity assurance.

RecurrenceTypestringNo

The type of the assurance schedule. Valid values:

  • Daily
  • Weekly
  • Monthly
Note
If you specify this parameter, you must specify RecurrenceType and RecurrenceValue.
Daily
RecurrenceValuestringNo

The days of the week or month on which the capacity reservation of the time-segmented elasticity assurance takes effect or the interval, in number of days, at which the capacity reservation takes effect.

  • If you set RecurrenceType to Daily, you can specify only one value for this parameter. Valid values: 1 to 31. The value specifies that the capacity reservation takes effect every few days.
  • If you set RecurrenceType to Weekly, you can specify multiple values for this parameter. Separate the values with commas (,). Valid values: 0, 1, 2, 3, 4, 5, and 6, which specify Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, and Saturday, respectively. Example: 1,2, which specifies that the capacity reservation takes effect on Monday and Tuesday.
  • If you set RecurrenceType to Monthly, you can specify two values in the A-B format for this parameter. Valid values of A and B: 1 to 31. B must be greater than or equal to A. Example: 1-5, which specifies that the capacity reservation takes effect every day from the first day up to the fifth day of each month.
Note
If you specify this parameter, you must specify RecurrenceType and RecurrenceValue.
1
StartHourintegerNo

The start time of the assurance period for the capacity reservation of the time-segmented elasticity assurance. Specify an on-the-hour point in time.

Note
You must specify both StartHour and EndHour. The EndHour value must be at least 4 hours later than the StartHour value.
4
EndHourintegerNo

The end time of the assurance period for the capacity reservation of the time-segmented elasticity assurance. Specify an on-the-hour point in time.

10
AutoRenewbooleanNo

Specifies whether to enable auto-renewal for the elasticity assurance. Valid values:

  • true
  • false

Default value: false.

true
AutoRenewPeriodintegerNo

The auto-renewal period. Unit: month. Valid values: 1, 2, 3, 6, 12, 24, and 36.

  • Default value when PeriodUnit is set to Month: 1.
  • Default value when PeriodUnit is set to Year: 12.
Note
If you set AutoRenew to true, you must specify this parameter.
1

Response parameters

ParameterTypeDescriptionExample
ParameterTypeDescriptionExample
object
RequestIdstring

The request ID.

473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E
PrivatePoolOptionsIdstring

The elasticity assurance ID.

eap-bp67acfmxazb4****
OrderIdstring

The order ID.

1234567890

Examples

Sample success responses

JSONformat

{
  "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E",
  "PrivatePoolOptionsId": "eap-bp67acfmxazb4****",
  "OrderId": "1234567890"
}

Error codes

HTTP status codeError codeError messageDescription
HTTP status codeError codeError messageDescription
400InvalidOperation.PeriodUnitUnsupportedTimeDivisionElasticityAssurance only supports PeriodUnit of Day.-
400InvalidParameter.RegionIdThe specified RegionId is invalid.The specified region does not exist or is unavailable.
400OperationDeniedThe specified instanceType or zone is not available or not authorized.The specified instance type or zone is unavailable or you are not authorized to use the specified instance type or access the specified zone.
400MissingParameter.RegionIdThe specified RegionId should not be null.The RegionId parameter is required.
400InvalidStartTime.NotSupportedThe specified StartTime should be within 180 calendar days from the current date, and you must specify a precision to hour.The specified StartTime value is out of range.
400InvalidStartTime.MalFormedThe specified StartTime is out of the permitted range.The specified StartTime value exceeds the maximum allowed value.
400Invalid.PrivatePoolOptionsName.MalFormedThe specified PrivatePoolOptions.Name is not valid.The specified PrivatePoolOptions.Name is invalid
400Invalid.ZoneIdThe specified ZoneId is not valid.The specified ZoneId is invalid.
400Invalid.InstanceTypeThe specified InstanceType is not valid.The specified InstanceType is illegal.
400DedicatedHostNotSupportedDedicatedHost is not supported for PrivatePool.The private pool does not support dedicated hosts.
400SpotNotSupportedSpot is not supported for PrivatePool.The private pool does not support preemptible instances.
400ClassicNetworkNotSupportedClassic network is not supported for PrivatePool.The private pool does not support instances in the classic network.
400Invalid.InstanceIdInstance does not exist.The specified instance does not exist.
400Invalid.PrivatePoolOptions.MatchCriteriaTarget mode does not support this operation.The operation is not supported while the PrivatePoolOptions.MatchCriteria parameter is set to Target.
400MissingParameter.PrivatePoolOptions.IdThe specified PrivatePoolOptions.Id should not be null.The PrivatePoolOptions.Id parameter is required.
400Invalid.PrivatePoolOptions.IdThe PrivatePool does not exist.The private pool does not exist.
400Invalid.InstanceTypeThe InstanceType does not match the PrivatePool.The instance type and the private pool do not match.
400Invalid.InstanceChargeTypeThe InstanceChargeType does not match the PrivatePool.The instance billing method and the private pool do not match.
400Invalid.ZoneIdThe ZoneId does not match the PrivatePool.The zone and the private pool do not match.
400Invalid.PrivatePoolOptions.statusThe PrivatePool status is not valid.The specified private pool state is incorrect.
400Invalid.PrivatePoolOptions.MatchCriteriaThe PrivatePoolOptions.MatchCriteria does not match the PrivatePool.The specified PrivatePoolOptions.MatchCriteria parameter does not match the private pool.
400InvalidPlatform.ValueNotSupportedThe Platform does not match the PrivatePool.The specified Platform parameter does not match the private pool.
400InvalidAliUidThe PrivatePool does not belong to the user of the Instance.The specified private pool does not belong to the user who attempted to create the instance.
400Invalid.InstanceIdThe Instance dose not attached to a PrivatePool.The instance and the private pool do not match.
400MissingParameter.PackageTypeThe specified parameter "PackageType" can not be empty.-
400MissingParameter.PrivatePoolOptions.IdsThe specified parameter "PrivatePoolOptions.Ids" can not be empty.Specifies that the parameter "PrivatePoolOptions.ids" cannot be empty.
400MissingParameter.PrivatePoolOptions.IdThe specified parameter "PrivatePoolOptions.Id" can not be empty.The specified parameter PrivatePoolOptions.Id cannot be empty.
400MissingParameter.InstanceCpuCoreCountThe specified parameter "InstanceCpuCoreCount" can not be empty.The specified parameter 'InstanceCpuCocount' cannot be empty.
400MissingParameter.InstanceAmountThe specified parameter "InstanceAmount" can not be empty.The specified parameter InstanceAmount cannot be empty.
400MissingParameter.InstanceCpuCoreCountOrInstanceAmountThe specified parameter "InstanceCpuCoreCount" and "InstanceAmount" must not be empty at the same time.The specified parameter InstanceCpuCoreCount and InstanceAmount cannot be both empty.
400Invalid.TooManyPrivatePoolOptions.IdsToo many PrivatePoolOptions.Ids in this request.The number of specified private pool IDs exceeds the upper limit.
400Invalid.TooManyZoneIdsToo many ZoneIds in the request.The number of specified zone IDs exceeds the upper limit.
400Invalid.TooManyInstanceTypesToo many InstanceTypes in the request.The number of specified instance types exceeds the upper limit.
400Invalid.TooManyUnpaidPrivatePoolToo many PrivatePools create but still unpaid.Multiple private pools are created but not paid.
400Invalid.InstanceCpuCoreCountOrInstanceAmountBoth InstanceCpuCoreCount and InstanceAmount are provided.The InstanceCpuCoreCount and InstanceAmount parameters cannot be both specified.
400Invalid.PrivatePoolOptions.IdsThe specified parameter "PrivatePoolOptions.Ids" exist invalid element Id.The specified private pool ID does not exist.
400Invalid.PackageTypeThe specified parameter "PackageType" is invalid.The specified parameter PackageType is invalid.
400Invalid.PrivatePool.PurchaseThe PrivatePool has already paid.The private pool is already paid.
400Invalid.AssuranceTimes.NotSupportedThe value of AssuranceTimes is not supported.The specified AssuranceTimes parameter is invalid.
400Invalid.TooManyInstanceTypesThe specified parameter "InstanceType" should only has one item.The specified parameter InstanceType can have only one entry.
400Invalid.PrivatePoolOptions.MatchCriteriaThe specified parameter "PrivatePoolOptions.MatchCriteria" is invalid.The specified parameter PrivatePoolOptions.MatchCriteria is invalid.
400RepeatStartPrivatePoolPrivatePool has already been started.The private pool is already started.
400Invalid.PrivatePoolOptions.IdThe specified parameter "PrivatePoolOptions.Id" should be empty.Specifies that the parameter PrivatePoolOptions.Id should be empty.
400Invalid.InstanceIdModify DedicatedHost Instance's attachment attributes is not supported.Modify DedicatedHost Instance's attachment attributes is not supported.
400Invalid.InstanceIdModify Spot Instance's attachment attributes is not supported.Modify Spot Instance's attachment attributes is not supported.
400Invalid.InstanceIdModify Classic Network Instance's attachment attributes is not supported.Modify Classic Network Instance's attachment attributes is not supported.
400Invalid.PeriodUnitOnly Month or Year is supported for PeriodUnit.Purchase duration unit value does not match.
400AccountForbidden.ProductCreationLimitedThe commodity must be officially operated by Aliyun and in pay-as-you-go billing method.-
400RegionUnauthorizedThere is no authority to create private pool in the specified region.-
400PriceNotFoundThe price of your queried resource is not available now, please try other resources.The price of the specified resource does not exist. Modify the parameter value and try again later.
400InvalidRecurrenceRules.CountLimitExceededThe count of RecurrenceRules exceeds the limit.The number of parameter RecurrenceRules exceeds the limit value.
400InvalidRecurrenceRulesStartHourEndHour.TooShortThe recurrence hour between RecurrenceRules.StartHour and RecurrenceRules.EndHour is too short.The effective time between parameter RecurrenceRules.StartHour and RecurrenceRules.EndHour is less than the minimum requirement.
400InvalidParameter.RecurrenceRulesStartHourEndHourThe specified parameter RecurrenceRules.StartHour or RecurrenceRules.EndHour is invalid.The parameter RecurrenceRules.StartHour or RecurrenceRules.EndHour specified for the RecurrenceRules does not conform to the specification.
400InvalidParameter.RecurrenceRulesRecurrenceValueMonthlyThe specified parameter RecurrenceRules.RecurrenceValue for Monthly is invalid.The parameter RecurrenceRules.RecurrenceValue specified for the RecurrenceRules.RecurrenceType = Monthly does not conform to the specification.
400InvalidParameter.RecurrenceRulesRecurrenceValueWeeklyThe specified parameter RecurrenceRules.RecurrenceValue for Weekly is invalid.The parameter RecurrenceRules.RecurrenceType specified for RecurrenceRules.RecurrenceValue = Weekly is out of specification.
400InvalidParameter.RecurrenceRulesRecurrenceValueDailyThe specified parameter RecurrenceRules.RecurrenceValue for Daily is invalid.The parameter RecurrenceRules.RecurrenceType specified for RecurrenceRules.RecurrenceValue = Daily does not conform to the specification.
400InvalidParameter.RecurrenceRulesRecurrenceTypeThe specified parameter RecurrenceRules.RecurrenceType is invalid.The specified parameter RecurrenceRules.RecurrenceType does not conform to specification.
400InvalidStartTime.NotSupportedThe StartTime of TimeDivisionElasticityAssurance cannot between any of active time ranges.The specified effective time of the time-sharing flexible guarantee cannot be within the effective period.
400InvalidAutoRenewPeriod.ValueNotSupportedThe specified autoRenewPeriod is invalid.The specified auto-renewal duration 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.
403InvalidResourceType.NotSupported%sThe specified resource combination does not exist. Change to another zone or specification.
403OperationDenied.NoStockThe resource is out of stock in the specified zone. Please try other types, or choose other regions and zones.The requested resources are unavailable in the specified zone. Try a different resource type or select a different region or zone.
403InvalidInstanceType.NotSupportedThe specified InstanceType is invalid.-
403Invalid.ZoneIdsAt least one of the specified ZoneIds are invalid.At least one of the specified ZoneIds is invalid.
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.
404InvalidZoneId.NotFoundThe specified zoneId does not exist.The specified zone ID does not exist.
404InvalidResourceGroup.NotFoundThe ResourceGroup provided does not exist in our records.The specified resource group does not exist.
500InternalErrorThe request processing has failed due to some unknown error, exception or failure.An internal error has occurred. Try again later.

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

Change history

Change timeSummary of changesOperation
Change timeSummary of changesOperation
2025-04-02The Error code has changedView Change Details
2025-02-27The Error code has changedView Change Details
2025-02-19API Description Update. The Error code has changed. The request parameters of the API has changedView Change Details
2025-02-13The Error code has changed. The request parameters of the API has changedView Change Details
  • On this page (1)
  • Operation description
  • Debugging
  • Authorization information
  • Request parameters
  • Response parameters
  • Examples
  • Error codes
  • Change history
Feedback