
# 查询资源实例 - QueryinganInstancebyTag
#### 功能介绍
根据标签查询指定的数据库实例。
#### 接口约束
该接口支持如下数据库实例：
- GeminiDB Cassandra
- GeminiDB Mongo
- GeminiDB Influx
- GeminiDB Redis
一个数据库实例具有20个标签配额，且标签key唯一。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=GaussDBforNoSQL&api=ListInstancesByResourceTags)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-nosql/nosql_05_0023.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                                  | 访问级别 | 资源类型（\*为必须） | 条件键 | 别名                                                                                                                                                                                                                                                                                  | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | gaussdbfornosql::listResourcesByTags | List | -           | -   | - nosql:instance:list  - nosql:tag:list   | -      |
     
  
 
#### URI
POST /v3/{project_id}/instances/resource-instances/action
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释：** 租户在某一region下的project ID。获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-nosql/nosql_projectid.html)。 **约束限制：** 不涉及。 **取值范围：** 长度为32个字符，仅由英文字母和数字组成。 **默认取值：** 不涉及。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token。 通过调用IAM服务[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
表3请求Body参数 
| 参数      | 是否必选 | 参数类型                                                                              | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| offset  | 否    | String                                                                            | **参数解释：** 索引位置偏移量，表示从第一条数据偏移offset条数据后开始查询。 **约束限制：** - "action"值为"count"时，不传该参数。  - "action"值为"filter"时，取值必须为数字，不能为负数。默认取0值，表示从第一条数据开始查询。   **取值范围：** 大于或等于0。 **默认取值：** 0,表示从第一条数据开始查询。 |
| limit   | 否    | String                                                                            | **参数解释：** 查询记录数。 **约束限制：** - "action"值为"count"时，不传该参数。  - "action"值为"filter"时，取值范围：1\~100。   **取值范围：** 1\~100。 **默认取值：** 不传该参数时，默认查询前100条实例信息。                                          |
| action  | 是    | String                                                                            | **参数解释：** 操作标识。 **约束限制：** 不涉及。 **取值范围：** - filter：表示根据标签过滤条件查询实例。  - count：表示仅返回总记录数，禁止返回其他字段。   **默认取值：** 不涉及。                                                                        |
| matches | 否    | Array of [MatchOption] objects | **参数解释：** 搜索字段。该字段值为空时，表示不按照实例名称或实例ID查询。 **约束限制：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| tags    | 否    | Array of [TagOption] objects     | **参数解释：** 包含标签。 **约束限制：** 最多包含20个key。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   
 表4MatchOption 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| key   | 是    | String | **参数解释：** 匹配键。 **约束限制：** 不涉及。 **取值范围：** - instance_name：表示按实例名称匹配查询。  - instance_id：表示按实例ID匹配查询。   **默认取值：** 不涉及。 |
| value | 是    | String | **参数解释：** 待匹配的实例名称或实例ID。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                         |
   
 表5TagOption 
| 参数     | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| key    | 是    | String           | **参数解释：** 标签键。 **约束限制：** 最大长度36个unicode字符，key不能为空或者空字符串，不能为空格，校验和使用之前先排除前后半角空格。搜索时不对该参数做字符集校验。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| values | 是    | Array of strings | **参数解释：** 标签值列表。 **约束限制：** 每个value最大长度43个unicode字符，不能为空格，校验和使用之前先排除前后半角空格。如果values为空列表，则表示查询任意value。value之间为或的关系。                                                                                                                                                                                                       |
   
#### 响应参数
**状态码： 200**
表6响应Body参数 
| 参数          | 参数类型                                                                                     | 描述                                                                                                                                                                    |
|:---|:---|:---|
| instances   | Array of [InstanceResult] objects | **参数解释：** 实例列表。                                                                                                          |
| total_count | Integer                                                                                  | **参数解释：** 总记录数。 **取值范围：** 不涉及。 |
   
 表7InstanceResult 
| 参数            | 参数类型                                                                                           | 描述                                                                                                                                                                       |
|:---|:---|:---|
| instance_id   | String                                                                                         | **参数解释：** 实例ID。 **取值范围：** 不涉及。 |
| instance_name | String                                                                                         | **参数解释：** 实例名称。 **取值范围：** 不涉及。       |
| tags          | Array of [InstanceTagResult] objects | **参数解释：** 标签列表。如果没有标签，默认为空数组。                                                                                                |
   
 表8InstanceTagResult 
| 参数    | 参数类型   | 描述                                                                                                                                                                                                                               |
|:---|:---|:---|
| key   | String | **参数解释：** 标签键。最大长度36个unicode字符，key不能为空。字符集：0-9，A-Z，a-z，"_"，"-"，中文。 **取值范围：** 不涉及。       |
| value | String | **参数解释：** 标签值。最大长度43个unicode字符，可以为空字符串。字符集：0-9，A-Z，a-z，"_"，"."，"-"，中文。 **取值范围：** 不涉及。 |
   
#### 请求示例
- 根据实例名称查询实例，索引位置偏移量为100，查询100条数据
  ```
  POST https://{Endpoint}/v3/375d8d8fad1f43039e23d3b6c0f60a19/instances/resource-instances/action
  {
    "offset" : "100",
    "limit" : "100",
    "action" : "filter",
    "matches" : [{
      "key" : "instance_name",
      "value" : "test-single"
    }],
    "tags" : [{
      "key" : "key1",
      "values" : [ "value1", "value2" ]
    }]
  }
  ```
  
- 查询总记录数
  ```
  POST https://{Endpoint}/v3/375d8d8fad1f43039e23d3b6c0f60a19/instances/resource-instances/action
  {
    "action" : "count",
    "tags" : [ {
      "key" : "key1",
      "values" : [ "value1", "value2" ]
    }, {
      "key" : "key2",
      "values" : [ "value1", "value2" ]
    } ],
    "matches" : [ {
      "key" : "instance_name",
      "value" : "test-single"
    }, {
      "key" : "instance_id",
      "value" : "958693039f284d6ebfb177375711072ein06"
    } ]
  }
  ```
  
 
#### 响应示例
**状态码： 200**
Success
```
{
  "total_count": 1,
  "instances" : [{
    "instance_id" : "2acbf2223caf3bac3c33c6153423c3ccin06",
    "instance_name" : "test-single",
    "tags" : [ {
      "key" : "key1",
      "value" : "value1"
    }, {
      "key" : "key2",
      "value" : "value1"
    } ]
  }]
}
```
#### 状态码
请参见[状态码](https://support.huaweicloud.com/api-nosql/nosql_status_code.html)。
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-nosql/nosql_error_code.html)。
