# 更新防护 AI 应用
#### 功能介绍
更新策略绑定的 AI 应用（支持多个，全量更新）
#### URI
POST /v1/{project_id}/aiguard/policies/{policy_id}/bind-ai-apps
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释：** 项目ID，用于关联策略所属的用户项目。 **约束限制：** 字符串类型，32位UUID。 **取值范围：** 只能由英文字母、数字组成，长度为1\~64个字符。 **默认取值：** 不涉及。 |
| policy_id  | 是    | String | **参数解释：** 策略ID，用于标识策略的唯一ID。 **约束限制：** 字符串类型，32位UUID。 **取值范围：** 只能由英文字母、数字组成，长度为1\~64个字符。 **默认取值：** 不涉及。   |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token，用于验证用户身份，确保请求的合法性。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 **约束限制：** 字符串类型，长度1\~16384个字符。 **取值范围：** 只能由英文字母、数字及"-"、"_"组成。 **默认取值：** 不涉及。 |
| Content-Type | 是    | String | **参数解释：** 内容类型，用于指定请求体的媒体类型。 **约束限制：** 固定值application/json;charset=utf-8。 **取值范围：** application/json;charset=utf-8。 **默认取值：** application/json;charset=utf-8。      |
   
表3请求Body参数 
| 参数      | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| app_ids | 否    | Array of strings | **参数解释：** 绑定的AI应用ID列表，用于更新策略绑定的AI应用。 **约束限制：** 数组类型，最多100个ID。 **取值范围：** 每个元素为32位UUID。 **默认取值：** 不涉及。 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数           | 参数类型                                                                    | 描述                                                                                                                                                                    |
|:---|:---|:---|
| id           | String                                                                  | **参数解释：** 策略ID，用于唯一标识AI护栏策略。 **取值范围：** 字符串类型，32位UUID。                       |
| name         | String                                                                  | **参数解释：** 策略名称，用于标识AI护栏策略的名称。 **取值范围：** 字符串类型，长度1\~64字符。                    |
| bind_ai_apps | Array of [AiAppBasicInfo] objects | **参数解释：** 绑定的AI应用列表，列出与策略绑定的所有AI应用信息。 **取值范围：** 数组类型，每个元素为AiAppBasicInfo对象。 |
| action       | [AiGuardPolicyAction] object | **参数解释：** 防护动作，描述策略的防护动作配置。 **取值范围：** 对象类型，包含category字段。                    |
| create_time  | Long                                                                    | **参数解释：** 创建时间，用于标识策略的创建时间。 **取值范围：** 毫秒时间戳。                                |
   
 表5AiAppBasicInfo 
| 参数   | 参数类型   | 描述                                                                                                                                                 |
|:---|:---|:---|
| id   | String | **参数解释：** AI应用ID，用于唯一标识AI应用。 **取值范围：** 字符串类型，32位UUID。    |
| name | String | **参数解释：** AI应用名称，用于标识AI应用的名称。 **取值范围：** 字符串类型，长度1\~64字符。 |
   
 表6AiGuardPolicyAction 
| 参数       | 参数类型   | 描述                                                                                                                                                |
|:---|:---|:---|
| category | String | **参数解释：** 动作分类，用于指定防护动作的类型 **取值范围：** log（仅记录）、block（拦截） |
   
**状态码：400**
表7响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                            |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码，用于标识错误类型 **取值范围：** 字符串类型，长度1\~64字符    |
| error_msg  | String | **参数解释：** 错误信息，用于描述错误详情 **取值范围：** 字符串类型，长度1\~2048字符 |
   
**状态码：500**
表8响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                            |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码，用于标识错误类型 **取值范围：** 字符串类型，长度1\~64字符    |
| error_msg  | String | **参数解释：** 错误信息，用于描述错误详情 **取值范围：** 字符串类型，长度1\~2048字符 |
   
#### 请求示例
```
{
  "app_ids" : [ "app1", "app2" ]
}
```
#### 响应示例
**状态码：200**
操作成功
```
{
  "id" : "50d6d179c041409b905f53d948d10693",
  "name" : "12389",
  "bind_ai_apps" : [ {
    "id" : "string",
    "name" : "string"
  } ],
  "action" : {
    "category" : "string"
  },
  "create_time" : 0
}
```
#### 状态码
| 状态码 | 描述      |
|:---|:---|
| 200 | 操作成功    |
| 400 | 参数错误    |
| 500 | 服务端内部错误 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-waf/ErrorCode.html)。
