
# 查询资源实例 - ListResourceByTags
#### 功能介绍
使用标签过滤实例
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IEF/doc?api=ListResourceByTags)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-ief/ief_02_1003.html)。
#### URI
POST /v2/{project_id}/{resource_type}/resource_instances/action
表1路径参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                   |
|:---|:---|:---|:---|
| project_id    | 是    | String | 项目ID                                                                 |
| resource_type | 是    | String | 资源类型 - ief-edge_node - ief-deployment - ief-application - ief-device |
#### 请求参数
表2请求Header参数 
| 参数              | 是否必选 | 参数类型   | 描述                                                        |
|:---|:---|:---|:---|
| Content-Type    | 是    | String | 消息体的类型（格式），默认取值为"application/json"。                       |
| X-Auth-Token    | 是    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
| ief-instance-id | 否    | String | 企业版实例ID，专业版实例为空值。                                         |
   
表3请求Body参数 
| 参数           | 是否必选 | 参数类型                                                             | 描述                                                                                                                                                                                          |
|:---|:---|:---|:---|
| tags         | 否    | Array of [Tag] objects         | 包含标签，最多包含20个key，每个key下面的value最多10个，每个key对应的value可以为空数组但结构体不能缺失。Key不能重复，同一个key中values不能重复。结果返回包含所有标签的资源列表，key之间是与的关系，key-value结构中value是或的关系。如tags_any和tags字段同时存在，则去重后返回两者并集。无tag过滤条件时返回全量数据。 |
| tags_any     | 否    | Array of [Tag] objects         | 包含任意标签，最多包含20个key，每个key下面的value最多10个。Key不能重复，同一个key中values不能重复。结果返回包含标签的资源列表，key之间是或的关系，key-value结构中value是或的关系。如tags_any和tags字段同时存在，则去重后返回两者并集。无过滤条件时返回全量数据。                                |
| not_tags     | 否    | Array of [Tag] objects         | 不包含标签，最多包含20个key，每个key下面的value最多10个。Key不能重复，同一个key中values不能重复。结果返回不包含标签的资源列表，key之间是与的关系，key-value结构中value是或的关系。无过滤条件时返回全量数据。                                                                |
| not_tags_any | 否    | Array of [Tag] objects         | 不包含任意标签，最多包含20个key，每个key下面的value最多10个。Key不能重复，同一个key中values不能重复。结果返回不包含标签的资源列表，key之间是或的关系，key-value结构中value是或的关系。无过滤条件时返回全量数据。                                                              |
| limit        | 否    | String                                                           | 查询记录数（action为count时无此参数）如果action为filter默认为1000，limit最多为1000,不能为负数，最小值为1                                                                                                                     |
| offset       | 否    | String                                                           | 索引位置，偏移量（action为count时无此参数）从第一条数据偏移offset条数据后开始查询，如果action为filter默认为0（偏移0条数据，表示从第一条数据开始查询）,必须为数字，不能为负数                                                                                      |
| action       | 是    | String                                                           | 操作标识（仅限于filter，count）：filter（过滤），count(查询总条数) 如果是filter就按照过滤条件查询，如果是count，只需要返回总条数，禁止返回其他字段。                                                                                                |
| matches      | 否    | Array of [Matches] objects | 搜索字段,key为要匹配的字段，如resource_name等。value为匹配的值。key为固定字典值，不能包含重复的key或不支持的key。根据key的值确认是否需要模糊匹配，如resource_name默认为模糊搜索（不区分大小写，不支持\*，支持字符串匹配），如果value为空字符串则返回空列表（IEF服务不存在资源名称为空的情况，因此这类情况返回空列表）。    |
| console      | 否    | Boolean                                                          | 确认是否请求源是否为console，通过该字段来判断是否返回resource_detail内容，如果为true则返回，如果为false或者不带该参数则返回空列表。                                                                                                           |
| sorted       | 否    | [Sorted] object             | 按标签过滤资源后返回结果的排序方式                                                                                                                                                                           |
   
 表4Tag 
| 参数     | 是否必选 | 参数类型             | 描述                                           |
|:---|:---|:---|:---|
| key    | 是    | String           | 标签key值，长度取值范围为1\~36， 仅允许大小写英文字母、数字、下划线、中划线   |
| values | 否    | Array of strings | 标签value值，长度取值范围为0\~43， 仅允许大小写英文字母、数字、下划线、中划线 |
   
 表5Matches 
| 参数    | 是否必选 | 参数类型   | 描述                              |
|:---|:---|:---|:---|
| key   | 是    | String | 键。限定为resource_name,后续扩展。        |
| value | 否    | String | 值。每个值最大长度64个unicode字符。不校验字符集范围。 |
   
 表6Sorted 
| 参数      | 是否必选 | 参数类型    | 描述             |
|:---|:---|:---|:---|
| key     | 否    | String  | 按key值对请求内容进行排序 |
| reverse | 否    | Boolean | 是否采用倒序         |
   
#### 响应参数
**状态码：200**
表7响应Body参数 
| 参数          | 参数类型                                                                | 描述   |
|:---|:---|:---|
| resources   | Array of [Resource] objects | 资源实例 |
| total_count | Integer                                                             | 总记录数 |
   
 表8Resource 
| 参数            | 参数类型                                                                      | 描述                   |
|:---|:---|:---|
| resource_id   | String                                                                    | 资源ID                 |
| tags          | Array of [ResourceTag] objects | 标签列表，没有标签默认为空数组      |
| resource_name | String                                                                    | 资源名称，资源没有名称时默认为空字符串。 |
   
 表9ResourceTag 
| 参数    | 参数类型   | 描述                                                                                                   |
|:---|:---|:---|
| key   | String | 键。最大长度36个unicode字符。 不能为空，只能包含大小写字母，数字，中划线"-"，下划线"_"。                                                 |
| value | String | 值。每个值最大长度43个unicode字符，删除时如果value有值按照key/value删除，如果value没值，则按照key删除。 不能为空，只能包含大小写字母，数字，中划线"-"，下划线"_"。 |
   
#### 请求示例
查询资源实例，按照过滤条件查询，搜索字段为"resource_name"，标签键值为"test"，值为"value1,value2"。
```
{
  "action" : "filter",
  "limit" : "10",
  "offset" : "0",
  "matches" : [ {
    "key" : "resource_name",
    "value" : "q"
  } ],
  "tags" : [ {
    "key" : "test",
    "values" : [ "value1", "value2" ]
  } ]
}
```
#### 响应示例
**状态码：200**
ok
```
{
  "total_count" : 2,
  "resources" : [ {
    "tags" : [ {
      "value" : "",
      "key" : "testtest"
    }, {
      "value" : "value2",
      "key" : "test"
    } ],
    "resource_name" : "node_test_0108_1",
    "resource_id" : "e25307d4-bd25-4c29-ba7f-176376ed2f99"
  }, {
    "tags" : [ {
      "value" : "value1",
      "key" : "key1"
    }, {
      "value" : "",
      "key" : "test"
    } ],
    "resource_name" : "node_test-0109_1",
    "resource_id" : "fc3aeee8-24e1-4912-bf7a-54854251d0e5"
  } ]
}
```
#### 状态码
| 状态码 | 描述 |
|:---|:---|
| 200 | ok |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-ief/ErrorCode.html)。
