# 热更新Flink作业自动调优配置 - UpdateFlinkJobAutoscalingPolicy
#### 功能介绍
热更新Flink作业自动调优配置。此接口为异步接口，作业运行中时配置将自动应用，无需重启作业。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0003.html)。
#### URI
PUT /v2/workspaces/{workspace_id}/flink-jobs/{job_id}/autoscaling-policy
表1路径参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| workspace_id | 是    | String | **参数解释** ：工作空间ID，用于资源隔离。获取方法请参见[获取工作空间ID](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0044.html)。 **约束限制**：不涉及。 **取值范围**：只能由英文字母、数字及中划线组成，且长度为32\~36个字符。 **默认取值**：不涉及。 |
| job_id       | 是    | String | **参数解释** ：Flink作业ID，用于唯一标识一个Flink作业，可通过[查询Flink作业列表](https://support.huaweicloud.com/api-aidatalake/ListFlinkJobs.html)接口获取。 **约束限制**：不涉及。 **取值范围**：采用UUIDv7格式，固定36个字符。 **默认取值**：不涉及。   |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释** ：用户Token，用于接口认证鉴权，可通过调用[获取IAM用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取。 **约束限制**：不涉及。 **取值范围**：长度不超过65534个字符。 **默认取值**：不涉及。 |
   
表3请求Body参数 
| 参数                 | 是否必选 | 参数类型                                                                                    | 描述                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| autoscaling_policy | 是    | [AutoscalingPolicy] object | **参数解释**：自动调优配置，用于热更新Flink作业的自动调优配置。作业处于STARTING/RUNNING状态时，配置保存后立即下发生效；CREATED状态的作业在启动时生效；终态（CANCELLED/FAILED/FINISHED）作业仅保存配置。配置下发失败不会自动重试，可重新调用本接口重新下发。 **约束限制**：不涉及。 |
   
 表4AutoscalingPolicy 
| 参数                     | 是否必选 | 参数类型                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| enabled                | 否    | Boolean              | **参数解释**：自动调优开关。 **约束限制**：不涉及。 **取值范围**： - true：开启自动调优。   - false：关闭自动调优。    **默认取值**：false。 |
| vertex_max_parallelism | 否    | Integer              | **参数解释**：算子最大并行度。 **约束限制**：不涉及。 **取值范围**：1\~1000。 **默认取值**：1000。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| quota_cpu              | 否    | Integer              | **参数解释**：CPU配额（单位：毫核）。 **约束限制**：不涉及。 **取值范围**：500\~40000000。 **默认取值**：16000。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| quota_memory           | 否    | Long                 | **参数解释**：内存配额（单位：MB）。 **约束限制**：不涉及。 **取值范围**：2048\~81920000。 **默认取值**：65536。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| custom_config          | 否    | Map\<String,String\> | **参数解释**：用户自定义的自动调优配置参数，为键值对形式，传入Flink Kubernetes Operator支持的job.autoscaler.\*参数。最多支持50个参数，每个值长度为1\~1024个字符。 **约束限制**：采用全量替换模式，传入该字段时以本次传入内容为准；不传该字段时不修改自定义自动调优配置。参数名必须以job.autoscaler.开头。结构化字段同名键（job.autoscaler.enabled、job.autoscaler.vertex.max-parallelism、job.autoscaler.quota.cpu、job.autoscaler.quota.memory）配置不生效。                                                                                                                                                                                                                                                                                                                                                                                       |
   
#### 响应参数
**状态码：202**
无
**状态码：400**
表5响应Body参数 
| 参数           | 参数类型   | 描述                                                                                                    |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码，用于标识具体的错误类型。 **取值范围**：长度为1\~256个字符。   |
| error_msg    | String | **参数解释**：错误描述信息，用于说明错误原因。 **取值范围**：长度为1\~1024个字符。  |
| solution_msg | String | **参数解释**：解决建议，用于提供错误的解决方案。 **取值范围**：长度为0\~1024个字符。 |
   
**状态码：401**
表6响应Body参数 
| 参数           | 参数类型   | 描述                                                                                                    |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码，用于标识具体的错误类型。 **取值范围**：长度为1\~256个字符。   |
| error_msg    | String | **参数解释**：错误描述信息，用于说明错误原因。 **取值范围**：长度为1\~1024个字符。  |
| solution_msg | String | **参数解释**：解决建议，用于提供错误的解决方案。 **取值范围**：长度为0\~1024个字符。 |
   
**状态码：403**
表7响应Body参数 
| 参数           | 参数类型   | 描述                                                                                                    |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码，用于标识具体的错误类型。 **取值范围**：长度为1\~256个字符。   |
| error_msg    | String | **参数解释**：错误描述信息，用于说明错误原因。 **取值范围**：长度为1\~1024个字符。  |
| solution_msg | String | **参数解释**：解决建议，用于提供错误的解决方案。 **取值范围**：长度为0\~1024个字符。 |
   
**状态码：404**
表8响应Body参数 
| 参数           | 参数类型   | 描述                                                                                                    |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码，用于标识具体的错误类型。 **取值范围**：长度为1\~256个字符。   |
| error_msg    | String | **参数解释**：错误描述信息，用于说明错误原因。 **取值范围**：长度为1\~1024个字符。  |
| solution_msg | String | **参数解释**：解决建议，用于提供错误的解决方案。 **取值范围**：长度为0\~1024个字符。 |
   
**状态码：500**
表9响应Body参数 
| 参数           | 参数类型   | 描述                                                                                                    |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码，用于标识具体的错误类型。 **取值范围**：长度为1\~256个字符。   |
| error_msg    | String | **参数解释**：错误描述信息，用于说明错误原因。 **取值范围**：长度为1\~1024个字符。  |
| solution_msg | String | **参数解释**：解决建议，用于提供错误的解决方案。 **取值范围**：长度为0\~1024个字符。 |
   
#### 请求示例
开启自动调优。
```
PUT /v2/workspaces/{workspace_id}/flink-jobs/{job_id}/autoscaling-policy
{
  "autoscaling_policy" : {
    "enabled" : true,
    "vertex_max_parallelism" : 1000
  }
}
```
#### 响应示例
**状态码：202**
无
**状态码：400**
```
{
  "error_code" : "AIDataLake.01011001",
  "error_msg" : "Invalid parameter",
  "solution_msg" : "Please check the input parameters according to the documentation."
}
```
**状态码：401**
```
{
  "error_code" : "AIDataLake.01011003",
  "error_msg" : "Auth Token not exists in header",
  "solution_msg" : "Please check if auth Token is included in the request header."
}
```
**状态码：403**
```
{
  "error_code" : "AIDataLake.01011005",
  "error_msg" : "Current account has no permission",
  "solution_msg" : "Please connect administrators to add permission."
}
```
**状态码：404**
```
{
  "error_code" : "AIDataLake.01051001",
  "error_msg" : "Flink job 019f609a-e90c-xxxx-xxxx-a4ec9018e7f2 does not exist",
  "solution_msg" : "Please check if Flink job 019f609a-e90c-xxxx-xxxx-a4ec9018e7f2 is entered correctly or has been deleted."
}
```
**状态码：500**
```
{
  "error_code" : "AIDataLake.01010001",
  "error_msg" : "Internal system error",
  "solution_msg" : "Contact operations for analysis."
}
```
#### 状态码
| 状态码 | 描述          |
|:---|:---|
| 202 | 请求下发成功。     |
| 400 | 请求参数错误。     |
| 401 | 认证失败。       |
| 403 | 权限不足。       |
| 404 | Flink作业不存在。 |
| 500 | 系统内部错误。     |
   
