
# 变更云服务器规格（按需） - ResizePostPaidServer
#### 功能介绍
当您创建的弹性云服务器规格无法满足业务需要时，可以变更云服务器规格，升级vCPU、内存。具体接口的使用，请参见本节内容。
本接口为异步接口，当前变更弹性云服务器规格请求下发成功后会返回job_id，此时变更弹性云服务器规格并没有立即完成，需要通过调用[查询任务的执行状态 - ShowJob](https://support.huaweicloud.com/api-ecs/ecs_02_0901.html)查询job状态，当Job状态为 SUCCESS 时代表云服务器规格变更成功。
变更规格时，部分规格的之间不能互相变更。您可以参见[查询云服务器规格变更支持列表 - ListResizeFlavors](https://support.huaweicloud.com/api-ecs/ecs_02_0402.html)查询支持列表。
#### 接口约束
- "XEN实例"变更为"KVM实例"时，需先手动配置弹性云服务器，安装对应的驱动，然后再变更规格，否则会变更失败。安装驱动的具体操作，请参见《弹性云服务器用户指南》的"变更规格 \> [XEN实例变更为KVM实例（Windows）](https://support.huaweicloud.com/usermanual-ecs/ecs_03_0161.html)、[XEN实例变更为KVM实例（Linux-自动配置）](https://support.huaweicloud.com/usermanual-ecs/ecs_03_0162.html)、[XEN实例变更为KVM实例（Linux-手动配置）](https://support.huaweicloud.com/usermanual-ecs/ecs_03_0163.html)"章节。
- 该接口不支持对包年/包月云服务器的规格进行变更操作，包年/包月云服务器规格变更请参考 [变更云服务器规格 - ResizeServer](https://support.huaweicloud.com/api-ecs/ecs_02_0209.html) 。
- 竞价实例不支持变更规格。
 
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=ECS&api=ResizePostPaidServer)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-ecs/ecs_06_0000.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
 
| 授权项                     | 访问级别  | 资源类型（\*为必须） | 条件键          | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| ecs:cloudServers:resize | write | instance \* | ecs:FlavorId | -  | -      |
   
#### URI
POST /v1/{project_id}/cloudservers/{server_id}/resize
参数说明请参见[表1]。
 表1参数说明 
| 参数         | 是否必选 | 描述                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|
| project_id | 是    | **参数解释：** 项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-ecs/ecs_01_0016.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| server_id  | 是    | **参数解释：** 云服务器ID。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                      |
   
#### 请求消息
请求参数如[表2]所示。
 表2请求参数 
| 参数      | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| resize  | 是    | Object  | **参数解释：** 标记为云服务器变更规格操作，详情请参见[表3]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                          |
| dry_run | 否    | Boolean | **参数解释** **：** 是否预检此次请求。配置为预检时，此次请求不会变更规格。 **约束限制：** 不涉及 **取值范围：** - true：预检此次请求，检查项包括是否填写了必需参数、请求格式等。 - 如果检查不通过，则返回对应错误。  - 如果检查通过，则返回202状态码。      - false：发送正常请求，不对请求体做预检。   **默认取值：** false |
   
 表3resize数据结构说明 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| flavorRef   | 是    | String | **参数解释：** 变更后的云服务器规格ID。 可能通过 [查询云服务器规格变更支持列表 - ListResizeFlavors](https://support.huaweicloud.com/api-ecs/ecs_02_0402.html) 接口查询允许变更的规格列表。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| mode        | 否    | String | **参数解释：** 支持开机状态下变更规格。 **约束限制：** 不涉及 **取值范围：** mode取值为withStopServer时，对开机状态的云服务器执行变更规格操作，系统自动对云服务器先执行关机，再变更规格，变更成功后再执行开机。 **默认取值：** 不涉及                                                                         |
| cpu_options | 否    | Object | **参数解释：** 自定义CPU选项。 详情请参见[表4]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                       |
   
 表4cpu_options数据结构说明 
| 参数             | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| hw:cpu_threads | 否    | Integer | **参数解释：** 用于控制CPU是否开启超线程。 **约束限制：** 需要同时满足如下条件，才能设置为"关闭超线程"： - 只能在实例创建或者resize时指定。  - 只有目标flavor的os_extra_specs参数： - 存在"hw:cpu_policy"并取值为"dedicated"。  - 存在"hw:cpu_threads"并取值为"2"。   os_extra_specs参数详情可通过调用[查询规格详情和规格扩展信息列表 - ListFlavors](https://support.huaweicloud.com/api-ecs/zh-cn_topic_0020212656.html)接口进行查询。    **取值范围：** - 1: 关闭超线程。  - 2: 打开超线程。   **默认取值：** 1: 关闭超线程 |
   
#### 响应消息
响应参数如[表5]所示。
 表5响应参数 
| 参数     | 参数类型   | 描述                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| job_id | String | **参数解释：** 提交任务成功后返回的任务ID，用户可以使用该ID对任务执行情况进行查询。如何根据job_id来查询Job的执行状态，请参考[查询Job状态](https://support.huaweicloud.com/api-ecs/ecs_02_0900.html)。 **取值范围：** 不涉及 |
   
异常响应请参考[响应（任务类）](https://support.huaweicloud.com/api-ecs/ecs_07_0005.html)，异常响应要素说明。
#### 请求示例
变更云服务器的规格为"c3.15xlarge.2"。
```
POST https://{endpoint}/v1/{project_id}/cloudservers/{server_id}/resize
{
    "resize": {
        "flavorRef": "c3.15xlarge.2"
    }
}
```
#### 响应示例
```
{      
    "job_id": "ff80808288d41e1b018990260955686a" 
}
```
#### 返回值
请参考[通用请求返回值](https://support.huaweicloud.com/api-ecs/ecs_07_0001.html)。
#### 错误码
请参考[错误码](https://support.huaweicloud.com/api-ecs/ecs_07_0002.html)。
