# 校验策略 - ValidatePolicy
#### 功能介绍
校验策略并返回结果列表。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IAMAccessAnalyzer/doc?api=ValidatePolicy)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号根用户具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备如下身份策略权限，更多的权限说明请参见[权限和授权项](https://support.huaweicloud.com/api-iam5/iam_02_1126.html)。
| 授权项                            | 访问级别 | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| AccessAnalyzer::validatePolicy | Read | -           | -   | -  | -      |
   
#### URI
POST /v5/policies/validate
表1Query参数 
| 参数     | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| limit  | 否    | Integer | **参数解释**： 单页最大结果数。 **约束限制**： 不涉及。 **取值范围**： 最小值为1，最大值为200。 **默认取值**： 100                                                                 |
| marker | 否    | String  | **参数解释**： 页面标记，从上一次查询响应中的next_marker字段获取，首次查询不传入。 **约束限制**： 不涉及。 **取值范围**： 最小长度为4，最大长度为400。仅支持包含大小写字母、数字及特殊字符（+、/、=、-、_）。 **默认取值**： 不涉及。 |
   
#### 请求参数
表2请求Header参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| X-Language | 否    | String | **参数解释**： 返回消息的语言。 **约束限制**： 不涉及。 **取值范围**： - zh-cn：中文   - en-us：英文    **默认取值**： zh-cn：中文。 |
   
表3请求Body参数 
| 参数                            | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| policy_document               | 是    | String | **参数解释**： 策略的JSON格式文档内容，用于校验策略语法的正确性。 **约束限制**： 不涉及。 **取值范围**： 最小长度为1，最大长度为131072。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| policy_type                   | 是    | String | **参数解释**： 要校验的策略类型。 **约束限制**： 不涉及。 **取值范围**： - identity_policy：身份策略   - resource_policy：资源策略   - service_control_policy：服务控制策略   - resource_control_policy：资源控制策略   - network_control_policy：网络控制策略    **默认取值**： 不涉及。 |
| validate_policy_resource_type | 否    | String | **参数解释**： 要附加到资源策略的资源类型。 **约束限制**： 不涉及。 **取值范围**： - iam:agency：IAM委托    **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数        | 参数类型                                                                                      | 描述                                                                                                                                                    |
|:---|:---|:---|
| findings  | Array of [ValidatePolicyFinding] objects | **参数解释**： 可用于改进策略的可操作建议。 **取值范围**： 不涉及。         |
| page_info | [PageInfo] object                                     | **参数解释**： 分页查询信息，包含当前页的项数和下一页标记。 **取值范围**： 不涉及。 |
   
 表5ValidatePolicyFinding 
| 参数              | 参数类型                                                            | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| finding_details | String                                                          | **参数解释**： 一条消息提供了如何解决该问题的指导。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| finding_type    | String                                                          | **参数解释**： 影响级别。 **取值范围**： - security_warning 安全：策略存在安全风险，可能是允许访问的权限过于宽松等导致。   - error 错误：存在策略无法运行的错误，如语法错误、参数错误等。存在错误的情况下策略无法创建。   - warning 警告：存在策略无法运行的警告，如参数取值类型不匹配等。存在警告的情况下策略可以创建。   - suggestion 建议：不影响策略运行，但策略可能不能达到预期的效果。如存在空数组、空对象条件等。    |
| issue_code      | String                                                          | **参数解释**： 问题码提供了与此校验结果关联的问题的标识符。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| learn_more_link | String                                                          | **参数解释**： 指向与此校验结果关联的相关文档的链接。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| locations       | Array of [Location] objects | **参数解释**： 策略文档中与校验结果相关的位置列表。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   
 表6Location 
| 参数   | 参数类型                                                                  | 描述                                                                                                                                                                |
|:---|:---|:---|
| path | Array of [PathElement] objects | **参数解释**： 策略中的路径，表示为路径元素的有序序列。 **取值范围**： 不涉及。               |
| span | [Span] object                         | **参数解释**： 光标在策略文本中的范围。范围由开始位置（含）和结束位置（不含）组成。 **取值范围**： 不涉及。 |
   
 表7PathElement 
| 参数        | 参数类型                                                    | 描述                                                                                                                                               |
|:---|:---|:---|
| index     | Integer                                                 | **参数解释**： 数组中的索引，从0开始。 **取值范围**： 不涉及。      |
| key       | String                                                  | **参数解释**： 对象中的键。 **取值范围**： 不涉及。            |
| substring | [Substring] object | **参数解释**： JSON反序列化后的字符串的子串。 **取值范围**： 不涉及。 |
| value     | String                                                  | **参数解释**： 与对象中给定键关联的值。 **取值范围**： 不涉及。      |
   
 表8Substring 
| 参数     | 参数类型    | 描述                                                                                                                                                      |
|:---|:---|:---|
| start  | Integer | **参数解释**： 子字符串的起始索引，从0开始。0表示第一个字符。 **取值范围**： 不涉及。 |
| length | Integer | **参数解释**： 子字符串的长度。 **取值范围**： 不涉及。                 |
   
 表9Span 
| 参数    | 参数类型                                                  | 描述                                                                                                                                     |
|:---|:---|:---|
| start | [Position] object | **参数解释**： 策略中的位置。 **取值范围**： 不涉及。 |
| end   | [Position] object | **参数解释**： 策略中的位置。 **取值范围**： 不涉及。 |
   
 表10Position 
| 参数     | 参数类型    | 描述                                                                                                                                                |
|:---|:---|:---|
| line   | Integer | **参数解释**： 位置的行号，从1开始。 **取值范围**： 不涉及。        |
| column | Integer | **参数解释**： 位置的列号，从0开始。 **取值范围**： 不涉及。        |
| offset | Integer | **参数解释**： 策略中与位置对应的偏移量，从0开始。 **取值范围**： 不涉及。 |
   
 表11PageInfo 
| 参数            | 参数类型    | 描述                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| current_count | Integer | **参数解释**： 当前页中的项数。 **取值范围**： 不涉及。                                                                                                                                      |
| next_marker   | String  | **参数解释**： 如果存在更多可用的输出，那么该值表示可用输出比当前响应中包含的更多。在后续调用此操作时，您可以在标记请求参数中使用此值，以获取输出的下一部分。您应该重复这个过程，直到next_marker返回为null。 **取值范围**： 仅支持包含字母、数字、加号（+）、斜线（/）、等号（=）、下划线（_）和中划线（-）。 |
   
#### 请求示例
校验策略并返回结果列表。
```
POST https://{hostname}/v5/policies/validate
{
  "policy_document" : "",
  "policy_type" : "identity_policy"
}
```
#### 响应示例
**状态码：200**
```
{
  "findings" : [ {
    "finding_details" : "修复索引 0 第 1 行第 0 列的 JSON 语法错误。",
    "finding_type" : "error",
    "issue_code" : "JSON_SYNTAX_ERROR",
    "learn_more_link" : "https://{endpoint}/section0",
    "locations" : [ {
      "path" : [ ],
      "span" : {
        "start" : {
          "line" : 1,
          "column" : 0,
          "offset" : 0
        },
        "end" : {
          "line" : 1,
          "column" : 1,
          "offset" : 1
        }
      }
    } ]
  } ],
  "page_info" : {
    "current_count" : 1,
    "next_marker" : null
  }
}
```
#### 状态码
| 状态码 | 描述 |
|:---|:---|
| 200 | OK |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-iam5/ErrorCode.html)。
