# 修改弹性伸缩策略（V2版本） - UpdateScalingV2Policy
#### 功能介绍
修改指定弹性伸缩策略。
修改弹性伸缩策略V2版本与V1版本的区别在于，V2版本支持修改伸缩资源类型。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/AS/doc?api=UpdateScalingV2Policy)中调试该接口。
#### URI
PUT /autoscaling-api/v2/{project_id}/scaling_policy/{scaling_policy_id}
表1参数说明 
| 参数             | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| project_id        | 是    | String | **参数解释：** 项目ID。获取方式请参见[获取项目ID](https://support.huaweicloud.com/api-as/as_04_0106.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                    |
| scaling_policy_id | 是   | String   | **参数解释：** 伸缩策略ID，可参考[查询资源绑定的伸缩策略 （V2版本） - ListScalingV2Policies](https://support.huaweicloud.com/api-as/as_06_0406.html)获取。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
#### 请求参数
表2请求参数 
| 参数                      | 是否必选 | 参数类型                                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| scaling_policy_name    | 否   | String                                                                      | **参数解释：** 伸缩策略名称。 **约束限制：** 不涉及 **取值范围：** 1-64个字符，只能包含中文、字母、数字、下划线或中划线。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| scaling_policy_type      | 否     | String                                                                       | **参数解释：** 策略类型 **约束限制：** 不涉及 **取值范围：** - 告警策略：ALARM(与alarm_id对应)  - 定时策略：SCHEDULED(与scheduled_policy对应)  - 周期策略：RECURRENCE(与scheduled_policy对应)   **默认取值：** 不涉及                                                                                                                                                                                                   |
| scaling_resource_id     | 否     | String                                                                      | **参数解释：** 伸缩资源ID，伸缩组唯一标识或带宽唯一标识。伸缩组ID可通过[查询弹性伸缩组列表 - ListScalingGroups](https://support.huaweicloud.com/api-as/as_06_0102.html)获取，带宽ID可通过[查询带宽列表](https://support.huaweicloud.com/api-eip/eip_apiBandwidth_0002.html)获取。 - 如果scaling_resource_type为SCALING_GROUP，对应伸缩组唯一标识即伸缩组ID。  - 如果scaling_resource_type为BANDWIDTH，对应带宽唯一标识即带宽ID。   **约束限制：** 弹性伸缩不支持对包年包月的带宽进行调整。 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| scaling_resource_type   | 否   | string                                                                        | **参数解释：** 伸缩资源类型 **约束限制：** 不涉及 **取值范围：** - 伸缩组：SCALING_GROUP  - 带宽：BANDWIDTH   **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                 |
| alarm_id               | 否   | String                                                                      | **参数解释：** 告警ID，即告警规则的ID。修改成功后，会自动为该告警ID对应的告警规则的alarm_actions字段增加类型为autoscaling的告警触发动作。 告警ID通过查询云监控告警规则列表获取，请参考《云监控API参考》的"[查询告警规则列表](https://support.huaweicloud.com/zh-cn/api-ces/ces_03_0027.html)"。 **约束限制：** 当scaling_policy_type为ALARM时该项必选，此时scheduled_policy不生效。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                               |
| scheduled_policy         | 否    | [scheduled_policy] object | **参数解释：** 定时、周期任务策略。详情请见[表 scheduled_policy字段数据结构说明]。 **约束限制：** 当scaling_policy_type为SCHEDULED或RECURRENCE时该项必选，此时alarm_id不生效。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                 |
| scaling_policy_action   | 否   | [scaling_policy_action] object              | **参数解释：** 策略执行具体动作。详情请见[表 scaling_policy_action字段数据结构说明]。 **约束限制：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| interval_alarm_actions | 否   | Array of [interval_alarm_actions] objects     | **参数解释：** 伸缩策略告警区间。详情请见[表 interval_alarm_actions字段数据结构说明]。 **约束限制：** 当scaling_policy_type为INTERVAL_ALARM时，该参数生效且必填。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| cool_down_time         | 否   | Integer                                                                        | **参数解释：** 冷却时间，单位是秒。 **约束限制：** 伸缩组在冷却时间内，会拒绝告警策略的触发，其他类型的伸缩策略（如定时策略和周期策略）及手动触发不受限制。 **取值范围：** 0-86400秒 **默认取值：** 300                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| description             | 否       | String                                                                          | **参数解释：** 伸缩策略描述。 **约束限制：** 不涉及 **取值范围：** 1-256个字符 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
 表3scheduled_policy字段数据结构说明 
| 参数              | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| launch_time    | 是  | String  | **参数解释：** 触发时间，遵循UTC时间。 **约束限制：** - 如果scaling_policy_type为SCHEDULED，则格式为：YYYY-MM-DDThh:mmZ。  - 如果scaling_policy_type为RECURRENCE，则格式为：hh:mm。   **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                           |
| recurrence_type | 否   | String | **参数解释：** 周期触发类型。 **约束限制：** scaling_policy_type为RECURRENCE时该项必选。 **取值范围：** - Daily：每天执行一次  - Weekly：每周指定天执行一次。  - Monthly：每月指定天执行一次。   **默认取值：** 不涉及                                                                                                    |
| recurrence_value | 否    | String    | **参数解释：** 周期触发任务数值。 **约束限制：** scaling_policy_type为RECURRENCE时该项必选。 **取值范围：** - 类型为Daily时，该字段为null，表示每天执行  - 类型为Weekly时，该字段取值范围为1-7，1表示星期日，以此类推，以","分隔，例如：1,3,5。  - 类型为Monthly时，该字段取值范围为1-31，分别表示每月的日期，以","分隔，例如：1,10,13,28。   **默认取值：** 不涉及 |
| start_time       | 否  | String  | **参数解释：** 周期策略重复执行开始时间，遵循UTC时间。 格式为：YYYY-MM-DDThh:mmZ。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 默认为当前时间。                                                                                                                                                                                                                                                                                                     |
| end_time        | 否     | String   | **参数解释：** 周期策略重复执行结束时间，遵循UTC时间。 格式为：YYYY-MM-DDThh:mmZ。 **约束限制：** - scaling_policy_type为RECURRENCE时该项必选。  - 当为周期类型策略时，不得早于当前时间和开始时间。   **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                             |
   
 表4scaling_policy_action字段数据结构说明 
| 参数          | 是否必选 | 参数类型     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| operation | 否    | String   | **参数解释：** 操作选项。 **约束限制：** 不涉及 **取值范围：** - 当scaling_resource_type为SCALING_GROUP，支持如下操作： - ADD：增加  - REMOVE/REDUCE：减少  - SET：设置为    - 当scaling_resource_type为BANDWIDTH，支持如下操作： - ADD：增加  - REDUCE：减少  - SET：设置为     **默认取值：** 默认为ADD。 |
| size         | 否   | Integer   | **参数解释：** 操作大小。 **约束限制：** - 只有操作为SET时取值可以为0，其余操作取值均不能为0。  - 当scaling_resource_type为SCALING_GROUP时，size和percentage参数只能选其中一个进行配置。   **取值范围：** - 当scaling_resource_type为SCALING_GROUP时，size为实例个数，取值范围为0到300的整数，默认为1。  - 当scaling_resource_type为BANDWIDTH时，size表示带宽大小，单位为Mbit/s，取值范围为1到300的整数，默认为1。   **默认取值：** 默认为1。                                                                                                                                                                                                                                                                                                                                                        |
| percentage   | 否      | Integer | **参数解释：** 操作百分比。 **约束限制：** - 当scaling_resource_type为SCALING_GROUP时，size和percentage参数只能选其中一个进行配置，如果size和percentage参数均无配置，则size默认为1。  - 当scaling_resource_type为BANDWIDTH时，不支持配置percentage参数。   **取值范围：** - 操作为ADD或REMOVE/REDUCE时取值范围为1到20000的整数。  - 操作为SET时取值范围为0到20000的整数。   **默认取值：** 默认为1。                                                                                                                                                                                                                                                                                                                                                                                |
| limits      | 否     | Integer    | **参数解释：** 操作限制。 - 当operation为ADD时，limits表示带宽可调整的上限；  - 当operation为REDUCE时，limits表示带宽可调整的下限。   **约束限制：** 当scaling_resource_type为BANDWIDTH，且operation不为SET时，limits参数生效，单位为Mbit/s。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
 表5interval_alarm_actions字段数据结构说明 
| 参数           | 是否必选 | 参数类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| lower_bound    | 否       | double   | **参数解释：** 区间下限。 **约束限制：** - 区间下限为空时，区间上限必须小于等于0。  - 区间下限最小值为-1.174271E108。   **取值范围：** 不涉及 **默认取值：** 默认为空。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| upper_bound | 否      | double    | **参数解释：** 区间上限。 **约束限制：** - 区间上限为空时，区间下限必须大于等于0。  - 区间上限最大值为1.174271E108。   **取值范围：** 不涉及 **默认取值：** 默认为空。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| operation     | 否    | String      | **参数解释：** 操作选项。 **约束限制：** 不涉及 **取值范围：** - 当scaling_resource_type为SCALING_GROUP，支持如下操作： - ADD：增加  - REMOVE/REDUCE：减少  - SET：设置为    - 当scaling_resource_type为BANDWIDTH，支持如下操作： - ADD：增加  - REDUCE：减少  - SET：设置为     **默认取值：** 默认为ADD。 |
| size        | 否    | Integer  | **参数解释：** 操作大小。 **约束限制：** - 只有操作为SET时，取值可以为0，其余操作取值均不能为0。  - 当scaling_resource_type为SCALING_GROUP时，size和percentage参数只能选其中一个进行配置。   **取值范围：** - 当scaling_resource_type为SCALING_GROUP时，size为实例个数，取值范围为0到300的整数，默认为1。  - 当scaling_resource_type为BANDWIDTH时，size表示带宽大小，单位为Mbit/s，取值范围为1到300的整数，默认为1。   **默认取值：** 默认为1。                                                                                                                                                                                                                                                                                                                                                    |
| percentage  | 否     | Integer | **参数解释：** 操作百分比。 **约束限制：** - 当scaling_resource_type为SCALING_GROUP时，size和percentage参数只能选其中一个进行配置，若size和percentage参数均无配置，则size默认为1。  - 当scaling_resource_type为BANDWIDTH时，不支持配置percentage参数。   **取值范围：** - 操作为ADD或REMOVE或REDUCE时，取值范围为1到20000的整数。  - 操作为SET时，取值范围为0到20000的整数。   **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                               |
| limits    | 否     | Integer | **参数解释：** 操作限制。 - 当operation为ADD时，limits表示带宽可调整的上限；    - 当operation为REDUCE时，limits表示带宽可调整的下限。   **约束限制：** 当scaling_resource_type为BANDWIDTH，且operation不为SET时，limits参数生效，单位为Mbit/s。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   
#### 请求示例
修改一个ID为0h327883-324n-4dzd-9c61-68d03ee191dd的伸缩策略，策略名称修改为hth_aspolicy_1，告警ID修改为al1513822380493GvlJKZwA8，冷却时间修改为900秒，策略执行具体动作修改为增加1Mbit/s，且上限为10Mbit/s。
```
PUT https://{Endpoint}/autoscaling-api/v2/{project_id}/scaling_policy/0h327883-324n-4dzd-9c61-68d03ee191dd
{
    "alarm_id": "al1513822380493GvlJKZwA8",
    "cool_down_time": 900,
    "scaling_policy_action": {
           "size": 1,
           "operation": "ADD",
           "limits": 10
    },
    "scaling_policy_name": "hth_aspolicy_1",
    "scaling_policy_type": "ALARM"
}
```
#### 响应参数
表6响应参数 
| 参数                | 参数类型 | 描述                                                                                                                    |
|:---|:---|:---|
| scaling_policy_id | String | **参数解释：** 伸缩策略ID。 **取值范围：** 不涉及 |
   
#### 响应示例
```
{ 
     "scaling_policy_id": "0h327883-324n-4dzd-9c61-68d03ee191dd"  
}
```
#### 返回值
- 正常 200
  
- 异常
  
  | 返回值                               | 说明                             |
  |:---|:---|
  | 400 Bad Request                    | 服务器未能处理请求。                    |
  | 401 Unauthorized                 | 被请求的页面需要用户名和密码。                |
  | 403 Forbidden                      | 对被请求的页面访问禁止。                  |
  | 404 Not Found                     | 服务器无法找到被请求的页面。              |
  | 405 Method Not Allowed              | 请求中指定的方法不被允许。                |
  | 406 Not Acceptable               | 服务器生成的响应无法被客户端所接受。           |
  | 407 Proxy Authentication Required | 用户必须首先使用代理服务器进行验证，这样请求才会被处理。 |
  | 408 Request Timeout                 | 请求超出了服务器的等待时间。              |
  | 409 Conflict                      | 由于冲突，请求无法被完成。                |
  | 500 Internal Server Error        | 请求未完成。服务异常。                   |
  | 501 Not Implemented              | 请求未完成。服务器不支持所请求的功能。            |
  | 502 Bad Gateway                  | 请求未完成。服务器从上游服务器收到一个无效的响应。      |
  | 503 Service Unavailable            | 请求未完成。系统暂时异常。                |
  | 504 Gateway Timeout               | 网关超时。                        |
     
  
 
#### 错误码
请参考[错误码](https://support.huaweicloud.com/api-as/as_07_0102.html)。
