# 获取AI Guard请求时间线
#### 功能介绍
获取AI Guard请求时间线数据，展示不同时间段的检测请求次数和防护类型分布。
- 支持固定时间范围（今天、昨天、近7天、近30天）和自定义时间范围查询
  
- 时间线数据支持实时粒度（按小时/分钟聚合）
  
- 数据来源：ES统计日志中的api_detection_stat结构
  
 
#### URI
GET /v1/{project_id}/aiguard/overviews/request/timeline
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释：** 项目ID，用于标识请求所属的项目。获取方式请参见[获取项目ID](https://support.huaweicloud.com/api-iam/iam_17_0002.html)。 **约束限制：** 字符串类型，长度1-64字符。 **取值范围：** 只能由英文字母、数字组成，长度为1\~64个字符。 **默认取值：** 不涉及。 |
   
表2Query参数 
| 参数          | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| from        | 否    | Long    | **参数解释：** 查询时间范围的起始时间，用于指定查询检测统计数据的开始时间点。格式为毫秒时间戳，表示自1970年1月1日00:00:00 UTC以来的毫秒数。 **约束限制：** 与to参数配合使用，from必须小于等于to，查询时间范围不超过30天，to不能超过当前时间60秒以上。若不传该参数，默认值为to减去24小时。 **取值范围：** 正整数。 **默认取值：** 不涉及（若不传则默认to减去24小时）。                                                                                                                                                                                                                                                                                                        |
| to          | 否    | Long    | **参数解释：** 查询时间范围的截止时间，用于指定查询检测统计数据的结束时间点。格式为毫秒时间戳，表示自1970年1月1日00:00:00 UTC以来的毫秒数。 **约束限制：** 与from参数配合使用，from必须小于等于to，查询时间范围不超过30天，to不能超过当前时间60秒以上。若不传该参数，默认值为当前时间。 **取值范围：** 正整数。 **默认取值：** 不涉及（若不传则默认当前时间）。                                                                                                                                                                                                                                                                                                              |
| app_id      | 否    | String  | **参数解释：** 应用ID，用于指定查询的AI应用，筛选该应用的检测统计数据。若不传该参数，则查询项目下所有应用的统计数据。 **约束限制：** 只能由英文字母、数字及"*"、"-"组成，长度为1\~36个字符。 **取值范围：** 只能由英文字母、数字及"*"、"-"组成，长度为1\~36个字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| offset      | 否    | Integer | **参数解释：** 分页偏移量，用于指定查询结果的起始位置。 **约束限制：** 非负整数。 **取值范围：** 0\~2147483647。 **默认取值：** 0。                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| limit       | 否    | Integer | **参数解释：** 每页返回的最大数据量，用于限制每个统计指标项下时间线数据点的返回数量。当limit=0时，返回所有时间线结构但num值均为0。 **约束限制：** 整数类型，取值范围0-2000。 **取值范围：** 0\~2000。 **默认取值：** 2000。                                                                                                                                                                                                                                                                                                                                                                                   |
| detect_type | 否    | String  | **参数解释：** 检测类型，用于按检测类型筛选统计数据。不传则查询所有类型。 **约束限制：** 不涉及。 **取值范围：** - text：文本检测   - image：图片检测    **默认取值：** 不涉及。 |
   
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token，用于验证请求的合法性。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 **约束限制：** 字符串类型，长度1-16384字符。 **取值范围：** 只能由英文字母、数字及"-"、"_"组成，长度为1\~16384个字符。 **默认取值：** 不涉及。 |
| Content-Type | 是    | String | **参数解释：** 内容类型，用于指定请求体的媒体类型。 **约束限制：** 固定值application/json;charset=utf-8。 **取值范围：** 固定值application/json;charset=utf-8。 **默认取值：** application/json;charset=utf-8。         |
   
#### 响应参数
**状态码：200**
表4响应Header参数 
| 参数           | 参数类型   | 描述                                                                                                                                                                                                  |
|:---|:---|:---|
| X-request-id | String | **参数解释：** 请求ID号，用于唯一标识一次请求，便于问题追踪。 **取值范围：** 字符串类型，长度1-64字符。 |
   
表5响应Body参数 
| 参数       | 参数类型                                                                                             | 描述                                           |
|:---|:---|:---|
| \[数组元素\] | Array of [AiGuardTimeLineItem] objects | AI Guard请求时间线响应，响应体为数组类型，每个元素代表一个统计指标的时间线数据。 |
   
 表6AiGuardTimeLineItem 
| 参数       | 参数类型                                                                                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| key      | String                                                                               | 统计指标类型，用于标识统计的数据类型。取值范围： - api_detection_requests：检测请求数量   - total_matched：命中规则的请求数量    |
| timeline | Array of [TimeLinePoint] objects | 时间线统计数据列表，包含该统计指标在查询时间范围内各聚合时间点的统计数据。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   
 表7TimeLinePoint 
| 参数   | 参数类型 | 描述                                                                                                                                                |
|:---|:---|:---|
| time | Long | 时间点，格式为毫秒时间戳，代表以该时间点截止的聚合时间段内的统计数据。聚合时间粒度根据查询范围自动确定：查询范围≤1天为1分钟，≤3天为5分钟，≤7天为10分钟，\>7天为1小时。 取值范围：正整数。 |
| num  | Long | 该时间点的统计数据数量。 取值范围：非负整数。                                                                              |
   
**状态码：400**
表8响应Header参数 
| 参数           | 参数类型   | 描述                                                                                                                                                                                                  |
|:---|:---|:---|
| X-request-id | String | **参数解释：** 请求ID号，用于唯一标识一次请求，便于问题追踪。 **取值范围：** 字符串类型，长度1-64字符。 |
   
表9响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                 |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码，用于表示请求失败的错误码。 **取值范围：** 字符串类型，长度1-64字符。       |
| error_msg  | String | **参数解释：** 错误信息，用于表示请求失败的错误信息。 **取值范围：** 字符串类型，长度1-2048字符。   |
| detail     | String | **参数解释：** 错误详细描述，用于表示请求失败的详细描述。 **取值范围：** 字符串类型，长度0-2048字符。 |
   
**状态码：401**
表10响应Header参数 
| 参数           | 参数类型   | 描述                                                                                                                                                                                                  |
|:---|:---|:---|
| X-request-id | String | **参数解释：** 请求ID号，用于唯一标识一次请求，便于问题追踪。 **取值范围：** 字符串类型，长度1-64字符。 |
   
表11响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                 |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码，用于表示请求失败的错误码。 **取值范围：** 字符串类型，长度1-64字符。       |
| error_msg  | String | **参数解释：** 错误信息，用于表示请求失败的错误信息。 **取值范围：** 字符串类型，长度1-2048字符。   |
| detail     | String | **参数解释：** 错误详细描述，用于表示请求失败的详细描述。 **取值范围：** 字符串类型，长度0-2048字符。 |
   
**状态码：403**
表12响应Header参数 
| 参数           | 参数类型   | 描述                                                                                                                                                                                                  |
|:---|:---|:---|
| X-request-id | String | **参数解释：** 请求ID号，用于唯一标识一次请求，便于问题追踪。 **取值范围：** 字符串类型，长度1-64字符。 |
   
表13响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                 |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码，用于表示请求失败的错误码。 **取值范围：** 字符串类型，长度1-64字符。       |
| error_msg  | String | **参数解释：** 错误信息，用于表示请求失败的错误信息。 **取值范围：** 字符串类型，长度1-2048字符。   |
| detail     | String | **参数解释：** 错误详细描述，用于表示请求失败的详细描述。 **取值范围：** 字符串类型，长度0-2048字符。 |
   
**状态码：429**
表14响应Header参数 
| 参数           | 参数类型   | 描述                                                                                                                                                                                                  |
|:---|:---|:---|
| X-request-id | String | **参数解释：** 请求ID号，用于唯一标识一次请求，便于问题追踪。 **取值范围：** 字符串类型，长度1-64字符。 |
   
表15响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                 |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码，用于表示请求失败的错误码。 **取值范围：** 字符串类型，长度1-64字符。       |
| error_msg  | String | **参数解释：** 错误信息，用于表示请求失败的错误信息。 **取值范围：** 字符串类型，长度1-2048字符。   |
| detail     | String | **参数解释：** 错误详细描述，用于表示请求失败的详细描述。 **取值范围：** 字符串类型，长度0-2048字符。 |
   
**状态码：500**
表16响应Header参数 
| 参数           | 参数类型   | 描述                                                                                                                                                                                                  |
|:---|:---|:---|
| X-request-id | String | **参数解释：** 请求ID号，用于唯一标识一次请求，便于问题追踪。 **取值范围：** 字符串类型，长度1-64字符。 |
   
表17响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                 |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码，用于表示请求失败的错误码。 **取值范围：** 字符串类型，长度1-64字符。       |
| error_msg  | String | **参数解释：** 错误信息，用于表示请求失败的错误信息。 **取值范围：** 字符串类型，长度1-2048字符。   |
| detail     | String | **参数解释：** 错误详细描述，用于表示请求失败的详细描述。 **取值范围：** 字符串类型，长度0-2048字符。 |
   
#### 请求示例
无
#### 响应示例
无
#### 状态码
| 状态码 | 描述          |
|:---|:---|
| 200 | 成功返回请求时间线数据 |
| 400 | 请求参数无效      |
| 401 | 认证失败        |
| 403 | 权限不足        |
| 429 | 请求过于频繁      |
| 500 | 服务端内部处理错误   |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-waf/ErrorCode.html)。
