# 查询解析器转发规则列表 - ListResolverRules
#### 功能介绍
查询解析器转发规则列表。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-dns/zh-cn_topic_0037134405.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-dns/dns_api_70000.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                   | 访问级别 | 资源类型（\*为必须）     | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | dns:resolverRule:list | List | resolverRule \* | -   | -  | -      |
     
  
 
#### URI
GET /v2.1/resolverrules
表1Query参数 
| 参数            | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| domain_name   | 否    | String  | **参数解释：** 待查询的转发规则的域名。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| name          | 否    | String  | **参数解释：** 待查询的转发规则的名称。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| endpoint_id   | 否    | String  | **参数解释：** 终端节点ID。 获取方式：通过查询终端节点列表（ListEndpoints）接口获取。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| id            | 否    | String  | **参数解释：** 转发规则ID。 获取方式：通过查询解析器转发规则列表（ListResolverRules）接口获取。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| limit         | 否    | Integer | **参数解释：** 分页查询时配置每页返回的资源个数。 **约束限制：** 不涉及。 **取值范围：** 0\~500。 **默认取值：** 500                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| offset        | 否    | Integer | **参数解释：** 分页查询起始偏移量，表示从偏移量的下一个资源开始查询。 **约束限制：** 与limit参数配合实现分页查询；当同时设置marker时，以marker为分页起始标识，offset不生效。 **取值范围：** 0\~2147483647。 **默认取值：** 0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| marker        | 否    | String  | **参数解释：** 分页查询的起始资源ID。 获取方式：从上一页查询结果中最后一个资源的ID获取。 - 查询第一页时，设置为空。   - 查询下一页时，设置为上一页最后一条资源的ID。    **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| shared_status | 否    | String  | **参数解释：** 查询共享状态的过滤条件，用于按资源归属筛选转发规则。 **约束限制：** - 当该参数传空或不传时，查询本账号创建的转发规则。   - 共享状态仅与ID一起过滤生效。   - 共享状态仅支持limit+marker分页查询。    **取值范围：** - sharedwithme：查询其他账号共享给本账号的转发规则。    **默认取值：** 不涉及。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token，用于用户身份认证，调用接口时需在请求头中携带该Token以验证用户身份。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 获取用户Token请参见[获取用户Token](https://support.huaweicloud.com/api-dns/dns_api_30003.html)。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数             | 参数类型                                                                                                                      | 描述                                                                                                                    |
|:---|:---|:---|
| resolver_rules | Array of [ListResolverRuleParam] objects | **参数解释：** 解析器转发规则列表。 该字段为数组，每个元素包含转发规则ID、名称、域名及状态等。 |
| links          | [pageLink] object                                     | **参数解释：** 指向当前页和下一页的链接。分页查询需要分页时，需要使用一个next字段指向下一页。 |
| metadata       | [metadata] object                                     | **参数解释：** 分页查询的元数据信息，包含满足查询条件的资源总数（total_count）等。   |
| page_info      | [PageInfo] object                                     | **参数解释：** 分页信息对象，包含下一页标识、上一页标识、当前页数量等信息。            |
   
 表4ListResolverRuleParam 
| 参数              | 参数类型                                                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|
| id              | String                                                                                      | **参数解释：** 转发规则的ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| name            | String                                                                                      | **参数解释：** 规则名称。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| domain_name     | String                                                                                      | **参数解释：** 域名。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| endpoint_id     | String                                                                                      | **参数解释：** 当前规则所属的终端节点ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| status          | String                                                                                      | **参数解释：** 资源状态。 **取值范围：** - ACTIVE：正常   - PENDING_CREATE：创建中   - PENDING_DELETE：删除中   - ERROR：失败    |
| rule_type       | String                                                                                      | **参数解释：** 规则类型，预留字段，当前默认为FORWARD。 **取值范围：** - FORWARD：转发规则（当前仅支持此取值）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ipaddress_count | Integer                                                                                     | **参数解释：** 当前规则下的IP地址数量。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| routers         | Array of [Router] objects | **参数解释：** 关联的VPC信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| create_time     | String                                                                                      | **参数解释：** 创建时间。 使用UTC+0时间格式，格式为yyyy-MM-dd'T'HH:mm:ss.SSS，例如：2023-01-01T12:00:00.000。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| update_time     | String                                                                                      | **参数解释：** 更新时间。 使用UTC+0时间格式，格式为yyyy-MM-dd'T'HH:mm:ss.SSS，例如：2023-01-01T12:00:00.000。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表5Router 
| 参数            | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|
| router_id     | String | **参数解释：** 关联VPC的ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| router_region | String | **参数解释：** 关联VPC所在的region。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| status        | String | **参数解释：** 资源状态。 **取值范围：** - ACTIVE：正常   - PENDING_CREATE：创建中   - PENDING_DELETE：删除中   - ERROR：失败    |
   
 表6pageLink 
| 参数   | 参数类型   | 描述                                                                                                                                                                                                                                      |
|:---|:---|:---|
| self | String | **参数解释：** 当前页面的链接。 **取值范围：** 不涉及。 |
| next | String | **参数解释：** 下一页的链接。 **取值范围：** 不涉及。  |
   
 表7metadata 
| 参数          | 参数类型    | 描述                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| total_count | Integer | **参数解释：** 满足查询条件的资源总数，不受分页（即limit、offset参数）影响。 **取值范围：** 不涉及。 |
   
 表8PageInfo 
| 参数              | 参数类型    | 描述                                                                                                                                                                                                                                         |
|:---|:---|:---|
| next_marker     | String  | **参数解释：** 下一页的页面标识。 **取值范围：** 不涉及。   |
| previous_marker | String  | **参数解释：** 上一页的页面标识。 **取值范围：** 不涉及。   |
| current_count   | Integer | **参数解释：** 当前页返回的资源数量。 **取值范围：** 不涉及。 |
   
**状态码：400**
表9响应Body参数 
| 参数      | 参数类型   | 描述                                                                                                                                                                                                                                   |
|:---|:---|:---|
| code    | String | **参数解释：** 错误码。 **取值范围：** 不涉及。  |
| message | String | **参数解释：** 错误描述。 **取值范围：** 不涉及。 |
   
**状态码：500**
表10响应Body参数 
| 参数      | 参数类型   | 描述                                                                                                                                                                                                                                   |
|:---|:---|:---|
| code    | String | **参数解释：** 错误码。 **取值范围：** 不涉及。  |
| message | String | **参数解释：** 错误描述。 **取值范围：** 不涉及。 |
   
#### 请求示例
- 查询本账号创建的解析器转发规则列表，每页返回10条。
  ```
  GET https://{Endpoint}/v2.1/resolverrules?limit=10
  ```
  
- 查询其他账号共享给本账号的解析器转发规则列表，每页返回10条。
  ```
  GET https://{Endpoint}/v2.1/resolverrules?limit=10&shared_status=sharedwithme
  ```
  
 
#### 响应示例
**状态码：200**
- 查询本账号创建的解析器转发规则列表响应示例。
  ```
  {
    "resolver_rules" : [ {
      "id" : "8a36f60a753badb401753bade3400002",
      "name" : "rule-xxx",
      "domain_name" : "www.example.com",
      "endpoint_id" : "8a36f60a753badb401753bade3400001",
      "status" : "ACTIVE",
      "rule_type" : "FORWARD",
      "ipaddress_count" : 0,
      "routers" : [ {
        "router_id" : "ff7bd47f-3f12-4f24-a078-e6064abaa670",
        "router_region" : "NetworkService",
        "status" : "ACTIVE"
      }, {
        "router_id" : "ff7bd47f-3f12-4f24-a078-e6064abaa671",
        "router_region" : "NetworkService",
        "status" : "ACTIVE"
      } ],
      "create_time" : "2020-10-18T12:27:31.448",
      "update_time" : "2020-10-18T12:27:31.448"
    } ],
    "links" : {
      "self" : "https://{Endpoint}/v2.1/resolverrules?limit=10&offset=0",
      "next" : "https://{Endpoint}/v2.1/resolverrules?limit=10&offset=10"
    },
    "metadata" : {
      "total_count" : 33
    }
  }
  ```
  
- 查询其他账号共享给本账号的解析器转发规则列表响应示例。
  ```
  {
    "resolver_rules" : [ {
      "id" : "8a36f60a753badb401753bade3400002",
      "name" : "rule-xxx",
      "domain_name" : "www.example.com",
      "endpoint_id" : "8a36f60a753badb401753bade3400001",
      "status" : "ACTIVE",
      "rule_type" : "FORWARD",
      "ipaddress_count" : 0,
      "routers" : [ {
        "router_id" : "ff7bd47f-3f12-4f24-a078-e6064abaa670",
        "router_region" : "NetworkService",
        "status" : "ACTIVE"
      }, {
        "router_id" : "ff7bd47f-3f12-4f24-a078-e6064abaa671",
        "router_region" : "NetworkService",
        "status" : "ACTIVE"
      } ],
      "create_time" : "2020-10-18T12:27:31.448",
      "update_time" : "2020-10-18T12:27:31.448"
    } ],
    "links" : {
      "self" : "https://{Endpoint}/v2.1/resolverrules",
      "next" : "https://{Endpoint}/v2.1/resolverrules?marker=8a36f60a753badb401753bade3400002"
    },
    "page_info" : {
      "next_marker" : "8a36f60a753badb401753bade3400002",
      "previous_marker" : null,
      "current_count" : 1
    }
  }
  ```
  
 
#### SDK代码示例
SDK代码示例如下。
- [Java]
  ```
  package com.huaweicloud.sdk.test;
  import com.huaweicloud.sdk.core.auth.ICredential;
  import com.huaweicloud.sdk.core.auth.BasicCredentials;
  import com.huaweicloud.sdk.core.exception.ConnectionException;
  import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
  import com.huaweicloud.sdk.core.exception.ServiceResponseException;
  import com.huaweicloud.sdk.dns.v2.region.DnsRegion;
  import com.huaweicloud.sdk.dns.v2.*;
  import com.huaweicloud.sdk.dns.v2.model.*;
  public class ListResolverRulesSolution {
      public static void main(String[] args) {
          // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
          // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
          String ak = System.getenv("CLOUD_SDK_AK");
          String sk = System.getenv("CLOUD_SDK_SK");
          ICredential auth = new BasicCredentials()
                  .withAk(ak)
                  .withSk(sk);
          DnsClient client = DnsClient.newBuilder()
                  .withCredential(auth)
                  .withRegion(DnsRegion.valueOf("<YOUR REGION>"))
                  .build();
          ListResolverRulesRequest request = new ListResolverRulesRequest();
          try {
              ListResolverRulesResponse response = client.listResolverRules(request);
              System.out.println(response.toString());
          } catch (ConnectionException e) {
              e.printStackTrace();
          } catch (RequestTimeoutException e) {
              e.printStackTrace();
          } catch (ServiceResponseException e) {
              e.printStackTrace();
              System.out.println(e.getHttpStatusCode());
              System.out.println(e.getRequestId());
              System.out.println(e.getErrorCode());
              System.out.println(e.getErrorMsg());
          }
      }
  }
  ```
- [Python]
  ```
  # coding: utf-8
  import os
  from huaweicloudsdkcore.auth.credentials import BasicCredentials
  from huaweicloudsdkdns.v2.region.dns_region import DnsRegion
  from huaweicloudsdkcore.exceptions import exceptions
  from huaweicloudsdkdns.v2 import *
  if __name__ == "__main__":
      # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
      # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
      ak = os.environ["CLOUD_SDK_AK"]
      sk = os.environ["CLOUD_SDK_SK"]
      credentials = BasicCredentials(ak, sk)
      client = DnsClient.new_builder() \
          .with_credentials(credentials) \
          .with_region(DnsRegion.value_of("<YOUR REGION>")) \
          .build()
      try:
          request = ListResolverRulesRequest()
          response = client.list_resolver_rules(request)
          print(response)
      except exceptions.ClientRequestException as e:
          print(e.status_code)
          print(e.request_id)
          print(e.error_code)
          print(e.error_msg)
  ```
- [Go]
  ```
  package main
  import (
  "fmt"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
      dns "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dns/v2"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dns/v2/model"
      region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dns/v2/region"
  )
  func main() {
      // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
      // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
      ak := os.Getenv("CLOUD_SDK_AK")
      sk := os.Getenv("CLOUD_SDK_SK")
      auth, err := basic.NewCredentialsBuilder().
          WithAk(ak).
          WithSk(sk).
          SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      hcClient, err := dns.DnsClientBuilder().
           WithRegion(region.ValueOf("<YOUR REGION>")).
           WithCredential(auth).
           SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      client := dns.NewDnsClient(hcClient)
      request := &model.ListResolverRulesRequest{}
  response, err := client.ListResolverRules(request)
  if err == nil {
          fmt.Printf("%+v\n", response)
      } else {
          fmt.Println(err)
      }
  }
  ```
- [更多]
  更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/DNS/sdk?api=ListResolverRules)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述             |
|:---|:---|
| 200 | 查询解析器转发规则列表响应。 |
| 400 | 接口错误响应。        |
| 500 | 接口错误响应。        |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-dns/ErrorCode.html)。
