
# 查询规则条件列表 - ListRoutingRules
#### 功能介绍
应用服务器可调用此接口查询物联网平台中设置的规则条件列表。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-iothub/iot_06_v5_0004.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-iothub/iot_06_v5_0201.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                          | 访问级别 | 资源类型（\*为必须） | 条件键                   | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | iotda:routingrules:queryList | List | app \*      | -                     | -  | -      |
  | iotda:routingrules:queryList | List | -           | g:EnterpriseProjectId | -  | -      |
     
  
 
#### URI
GET /v5/iot/{project_id}/routing-rule/rules
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                               |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数说明** ：项目ID。获取方法请参见 [获取项目ID](https://support.huaweicloud.com/api-iothub/iot_06_v5_1001.html)。 |
   
表2Query参数 
| 参数        | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| resource  | 否    | String  | **参数说明**：订阅的资源名称。 **取值范围**： - device：设备。   - device.property：设备属性。   - device.message：设备消息。   - device.message.status：设备消息状态。   - device.status：设备状态。   - batchtask：批量任务。   - product：产品。   - device.command.status：设备异步命令状态。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| event     | 否    | String  | **参数说明**：订阅的资源事件。 **取值范围**：与资源有关，不同的资源，事件不同。 event需要与resource关联使用，具体的"resource：event"映射关系如下： - device：create（设备添加）   - device：delete（设备删除）   - device：update（设备更新）   - device.status：update （设备状态变更）   - device.property：report（设备属性上报）   - device.message：report（设备消息上报）   - device.message.status：update（设备消息状态变更）   - batchtask：update （批量任务状态变更）   - product：create（产品添加）   - product：delete（产品删除）   - product：update（产品更新）   - device.command.status：update（设备异步命令状态更新）。    |
| app_type  | 否    | String  | **参数说明**：租户规则的生效范围。 **取值范围**： - GLOBAL：生效范围为租户级。   - APP：生效范围为资源空间级。如果类型为APP，可携带app_id查询指定资源空间下的规则动作列表，不携带app_id则查询[默认资源空间](https://support.huaweicloud.com/usermanual-iothub/iot_01_0006.html#section0)下的规则列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| app_id    | 否    | String  | **参数说明** ：资源空间ID。此参数为非必选参数，携带app_id查询指定资源空间下的规则动作列表，不携带app_id则查询[默认资源空间](https://support.huaweicloud.com/usermanual-iothub/iot_01_0006.html#section0)下的规则动作列表。 **取值范围**：长度不超过36，只允许字母、数字、下划线（_）、连接符（-）的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| rule_name | 否    | String  | **参数说明**：用户自定义的规则名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| active    | 否    | Boolean | **参数说明**：规则条件的状态是否为激活。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| limit     | 否    | Integer | **参数说明**：分页查询时每页显示的记录数。默认每页10条记录，最大设定每页50条记录。 **取值范围**：1-50的整数，默认值为10。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| marker    | 否    | String  | **参数说明**：上一次分页查询结果中最后一条记录的ID，在上一次分页查询时由物联网平台返回获得。分页查询时物联网平台是按marker也就是记录ID降序查询的，越新的数据记录ID也会越大。若填写marker，则本次只查询记录ID小于marker的数据记录。若不填写，则从记录ID最大也就是最新的一条数据开始查询。如果需要依次查询所有数据，则每次查询时必须填写上一次查询响应中的marker值。 **取值范围**：长度为24的十六进制字符串，默认值为ffffffffffffffffffffffff。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| offset    | 否    | Integer | **参数说明**：表示从marker后偏移offset条记录开始查询。默认为0，取值范围为0-500的整数。当offset为0时，表示从marker后第一条记录开始输出。 - 限制offset最大值是出于API性能考虑，您可以搭配marker使用该参数实现翻页，例如每页50条记录，1-11页内都可以直接使用offset跳转到指定页，但到11页后，由于offset限制为500，您需要使用第11页返回的marker作为下次查询的marker，以实现翻页到12-22页。 **取值范围**：0-500的整数，默认为0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
#### 请求参数
表3请求Header参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                          |
|:---|:---|:---|:---|
| Instance-Id | 否    | String | **参数说明**：实例ID。物理多租下各实例的唯一标识，一般租户无需携带该参数，仅在物理多租场景下从管理面访问API时需要携带该参数。您可以在IoTDA管理控制台界面，选择左侧导航栏"总览"页签查看当前实例的ID。 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数     | 参数类型                                                                                                             | 描述                               |
|:---|:---|:---|
| rules  | Array of [RoutingRule] objects | 规则条件信息列表。                        |
| count  | Integer                                                                                                          | 满足查询条件的记录总数。                     |
| marker | String                                                                                                           | 本次分页查询结果中最后一条记录的ID，可在下一次分页查询时使用。 |
   
 表5RoutingRule 
| 参数          | 参数类型                                                                                                                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|
| rule_id     | String                                                                                                               | 规则触发条件ID，用于唯一标识一个规则触发条件，在创建规则条件时由物联网平台分配获得。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| rule_name   | String                                                                                                               | 用户自定义的规则名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| description | String                                                                                                               | 用户自定义的规则描述。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| subject     | [RoutingRuleSubject] object | 资源事件信息，即资源变化事件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| app_type    | String                                                                                                               | 租户规则的生效范围，取值如下： - GLOBAL：生效范围为租户级   - APP：生效范围为资源空间级。    |
| app_id      | String                                                                                                               | 资源空间ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| select      | String                                                                                                               | 用户自定义sql select语句，最大长度2500，该参数仅供标准版和企业版用户使用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| where       | String                                                                                                               | 用户自定义sql where语句，最大长度2500，该参数仅供标准版和企业版用户使用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| active      | Boolean                                                                                                              | 规则条件的状态是否为激活。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
 表6RoutingRuleSubject 
| 参数       | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| resource | String | **参数说明**：资源名称。 **取值范围**： - device：设备。   - device.property：设备属性。   - device.message：设备消息。   - device.message.status：设备消息状态。   - device.status：设备状态。   - batchtask：批量任务。   - product：产品。   - device.command.status：设备异步命令状态。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| event    | String | **参数说明**：资源事件。 **取值范围**：与资源有关，不同的资源，事件不同。event需要与resource关联使用，具体的"resource：event"映射关系如下： - device：create（设备添加）   - device：delete（设备删除）   - device：update（设备更新）   - device.status：update （设备状态变更）   - device.property：report（设备属性上报）   - device.message：report（设备消息上报）   - device.message.status：update（设备消息状态变更）   - batchtask：update （批量任务状态变更）   - product：create（产品添加）   - product：delete（产品删除）   - product：update（产品更新）   - device.command.status：update（设备异步命令状态更新）    |
   
#### 请求示例
列表查询数据流转规则。
```
GET https://{endpoint}/v5/iot/{project_id}/routing-rule/rules
```
#### 响应示例
**状态码：200**
Successful response
```
{
  "rules" : [ {
    "rule_id" : "5bcaddda-75bf-4623-8c8d-26175c41fcca",
    "app_type" : "GLOBAL",
    "select" : "*",
    "rule_name" : "rulename",
    "subject" : {
      "resource" : "device",
      "event" : "create"
    },
    "description" : "description",
    "active" : true,
    "where" : "product_id='d89c-44dd-8265-b1653d951ce0'",
    "app_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce0"
  } ],
  "count" : 10,
  "marker" : "5c90fa7d3c4e4405e8525079"
}
```
#### SDK代码示例
SDK代码示例如下。
- [Java]
  ```
  package com.huaweicloud.sdk.test;
  import com.huaweicloud.sdk.core.auth.ICredential;
  import com.huaweicloud.sdk.core.auth.AbstractCredentials;
  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.core.region.Region;
  import com.huaweicloud.sdk.iotda.v5.*;
  import com.huaweicloud.sdk.iotda.v5.model.*;
  public class ListRoutingRulesSolution {
      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");
          // ENDPOINT：请在控制台的"总览"界面的"平台接入地址"中查看“应用侧”的https接入地址。
          String iotdaEndpoint = "<YOUR ENDPOINT>";
          String projectId = "{project_id}";
          ICredential auth = new BasicCredentials()
                  .withProjectId(projectId)
                  // 标准版/企业版需要使用衍生算法，基础版请删除配置"withDerivedPredicate";
                  .withDerivedPredicate(AbstractCredentials.DEFAULT_DERIVED_PREDICATE) // Used in derivative ak/sk authentication scenarios
                  .withAk(ak)
                  .withSk(sk);
          IoTDAClient client = IoTDAClient.newBuilder()
                  .withCredential(auth)
                  // 标准版/企业版：需自行创建Region对象，基础版：请使用IoTDARegion的region对象，如"withRegion(IoTDARegion.CN_NORTH_4)"
                  .withRegion(new Region("cn-north-4", iotdaEndpoint))
                  .build();
          ListRoutingRulesRequest request = new ListRoutingRulesRequest();
          try {
              ListRoutingRulesResponse response = client.listRoutingRules(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 huaweicloudsdkcore.auth.credentials import DerivedCredentials
  from huaweicloudsdkcore.region.region import Region as coreRegion
  from huaweicloudsdkcore.exceptions import exceptions
  from huaweicloudsdkiotda.v5 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"]
      # ENDPOINT：请在控制台的"总览"界面的"平台接入地址"中查看“应用侧”的https接入地址，下面创建Client时需要使用自行创建的Region对象，基础版：请选择IoTDAClient中的Region对象 如： IoTDAClient.new_builder().with_region(IoTDARegion.CN_NORTH_4)
      endpoint = "<YOUR ENDPOINT>";
      projectId = "{project_id}"
      credentials = BasicCredentials(ak, sk, projectId).with_derived_predicate(DerivedCredentials.get_default_derived_predicate())
      client = IoTDAClient.new_builder() \
          .with_credentials(credentials) \
          .with_region(coreRegion(id="cn-north-4", endpoint=endpoint)) \
          .build()
      try:
          request = ListRoutingRulesRequest()
          response = client.list_routing_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"
      iotda "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/iotda/v5"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/iotda/v5/model"
      region "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/region"
      core_auth "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth"
  )
  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")
      // endpoint：请在控制台的"总览"界面的"平台接入地址"中查看"应用侧"的https接入地址
      endpoint := "<YOUR ENDPOINT>"
      projectId := "{project_id}"
      auth, err := basic.NewCredentialsBuilder().
          WithAk(ak).
          WithSk(sk).
          WithProjectId(projectId).
          // 企业版/标准版需要使用衍生算法，基础版请删除该配置"WithDerivedPredicate"
          WithDerivedPredicate(core_auth.GetDefaultDerivedPredicate()). // Used in derivative ak/sk authentication scenarios
          SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      hcClient, err := iotda.IoTDAClientBuilder().
           // 标准版/企业版需要自行创建region，基础版使用IoTDARegion中的region对象
           WithRegion(region.NewRegion("cn-north-4", endpoint)).
           WithCredential(auth).
           SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      client := iotda.NewIoTDAClient(hcClient)
      request := &model.ListRoutingRulesRequest{}
  response, err := client.ListRoutingRules(request)
  if err == nil {
          fmt.Printf("%+v\n", response)
      } else {
          fmt.Println(err)
      }
  }
  ```
- [更多]
  更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IoTDA/sdk?api=ListRoutingRules)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | Successful response   |
| 400 | Bad Request           |
| 401 | Unauthorized          |
| 403 | Forbidden             |
| 404 | Not Found             |
| 500 | Internal Server Error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-iothub/ErrorCode.html)。
