
# 通过标签查询实例列表 - ListInstancesByTags
#### 功能介绍
通过标签查询实例列表
#### 接口约束
使用策略授权用户时，需要包含apig:instance:listByTags的授权项才允许调用此接口.
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-apig/apig-api-180713003.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-apig/apig-api-grant-policy_0000.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                      | 访问级别 | 资源类型（\*为必须） | 条件键       | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | apig:instance:listByTags | List | instance \* | -         | -  | -      |
  | apig:instance:listByTags | List | -           | g:TagKeys | -  | -      |
     
  
 
#### URI
POST /v2/{project_id}/apigw/resource-instances/filter
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                      |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID，获取方式请参见[获取项目ID](https://support.huaweicloud.com/api-apig/apig-api-180713009.html)。 |
   
表2Query参数 
| 参数     | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| offset | 否    | Long    | 偏移量，表示从此偏移量开始查询，偏移量小于0时，自动转换为0 缺省值：**0**                                                                                                                        |
| limit  | 否    | Integer | 每页显示的条目数量，条目数量小于等于0时，自动转换为20，条目数量大于500时，自动转换为500 最小值：**1** 最大值：**500** 缺省值：**20** |
   
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                       |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
表4请求Body参数 
| 参数              | 是否必选 | 参数类型                                                                                    | 描述                                                                                                                              |
|:---|:---|:---|:---|
| without_any_tag | 否    | Boolean                                                                                 | 不包含任意一个标签，该字段为true时查询所有不带标签的资源，此时忽略 "tags"字段。 该字段为false或者未提供该参数时，该条件不生效。                 |
| tags            | 否    | Array of [TmsKeyValues] objects             | 包含标签，最多包含20个key，每个key下面的value最多20个。无tag过滤条件时返回全量数据。 数组长度：**0 - 20**                      |
| sys_tags        | 否    | Array of [TmsKeyValues] objects             | 企业项目.仅op_service权限可以使用此字段做资源实例过滤条件. 无sys_tags时按照tag接口处理，无tag过滤条件时返回全量数据。 数组长度：**0 - 1**  |
| matches         | 否    | Array of [TmsMatchesKeyValue] objects | 搜索字段,key为要匹配的字段,当前限定为resource_name。value为匹配的值。 根据key的值确认是否需要模糊匹配，如resource_name需要实现前缀搜索。 |
   
 表5TmsKeyValues 
| 参数     | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| key    | 否    | String           | 键。 支持可用 UTF-8 格式表示的字母(包含中文)、数字和空格，以及以下字符： _ . : = + - @； _sys_开头属于系统标签，租户不能输入 最小长度：**1** 最大长度：**128** |
| values | 否    | Array of strings | 值。 支持可用 UTF-8 格式表示的字母(包含中文)、数字和空格，以及以下字符： _ . : / = + - @                                                                                                                                                                  |
   
 表6TmsMatchesKeyValue 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| key   | 否    | String | 要匹配的字段 - resource_name 表示按照APIG实例的名称去匹配    |
| value | 否    | String | 值。 支持可用 UTF-8 格式表示的字母(包含中文)、数字和空格，以及以下字符： _ . : / = + - @ 最大长度：**255**                                                                                                            |
   
#### 响应参数
**状态码：200**
表7响应Body参数 
| 参数          | 参数类型                                                                               | 描述   |
|:---|:---|:---|
| resources   | Array of [TmsResourceResp] objects | 实例列表 |
| total_count | Integer                                                                            | 总记录数 |
   
 表8TmsResourceResp 
| 参数             | 参数类型                                                                       | 描述                                                               |
|:---|:---|:---|
| resource_id    | String                                                                     | 实例编号                                                             |
| resouce_detail | String                                                                     | 实例详细描述。暂不支持                                                      |
| resource_name  | String                                                                     | 实例名称                                                             |
| tags           | Array of [TmsKeyValue] objects | 实例绑定的标签列表 数组长度：**0 - 20** |
   
 表9TmsKeyValue 
| 参数    | 参数类型   | 描述                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| key   | String | 键。 支持可用 UTF-8 格式表示的字母(包含中文)、数字和空格，以及以下字符： _ . : = + - @； _sys_开头属于系统标签，租户不能输入 最小长度：**1** 最大长度：**128** |
| value | String | 值。 支持可用 UTF-8 格式表示的字母(包含中文)、数字和空格，以及以下字符： _ . : / = + - @ 最小长度：**0** 最大长度：**255**                                                            |
   
**状态码：401**
表10响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
**状态码：403**
表11响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
**状态码：500**
表12响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
#### 请求示例
- 根据标签过滤实例列表
  ```
  {
    "without_any_tag" : false,
    "tags" : [ {
      "key" : "test-key",
      "values" : [ "test-value" ]
    } ],
    "matches" : [ {
      "key" : "resource_name",
      "value" : "test-apig"
    } ]
  }
  ```
  
- 根据企业项目id过滤实例列表
  ```
  {
    "without_any_tag" : false,
    "sys_tags" : [ {
      "key" : "_sys_enterprise_project_id",
      "values" : [ "0" ]
    } ],
    "matches" : [ {
      "key" : "resource_name",
      "value" : "test-apig"
    } ]
  }
  ```
  
 
#### 响应示例
**状态码：200**
返回的实例列表
```
{
  "resources" : [ {
    "resource_id" : "e120108ac331422cb539d8609e9a7bb2",
    "resouce_detail" : null,
    "resource_name" : "apig_instance",
    "tags" : [ {
      "key" : "test-key",
      "value" : "test-value"
    } ]
  } ],
  "total_count" : 1
}
```
**状态码：401**
Unauthorized
```
{
  "error_code" : "APIC.7102",
  "error_msg" : "Incorrect token or token resolution failed"
}
```
**状态码：403**
Forbidden
```
{
  "error_code" : "APIC.7106",
  "error_msg" : "No permissions to request for the method"
}
```
**状态码：500**
Internal Server Error
```
{
  "error_code" : "APIC.9000"
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | 返回的实例列表               |
| 401 | Unauthorized          |
| 403 | Forbidden             |
| 500 | Internal Server Error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-apig/ErrorCode.html)。
