# 添加策略
#### 功能介绍
添加 AI 护栏策略
#### URI
POST /v1/{project_id}/aiguard/policies
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释：** 项目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参数 
| 参数   | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| name | 是    | String | **参数解释：** 策略名称，用于标识AI护栏策略的名称 **约束限制：** 字符串类型，长度1\~64字符 **取值范围：** 只能由英文字母、数字、中文及"_"、"-"组成 **默认取值：** 不涉及 |
   
#### 响应参数
**状态码：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字符 |
   
#### 请求示例
```
{
  "name" : "策略1"
}
```
#### 响应示例
**状态码：200**
操作成功
```
{
  "id" : "50d6d179c041409b905f53d948d10693",
  "name" : "策略1"
}
```
#### 状态码
| 状态码 | 描述      |
|:---|:---|
| 200 | 操作成功    |
| 400 | 参数错误    |
| 500 | 服务端内部错误 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-waf/ErrorCode.html)。
