
# 查询公网NAT网关资源实例
#### 功能介绍
使用标签过滤公网NAT网关资源实例。
标签管理服务需要提供按标签过滤公网NAT网关服务实例并汇总显示在列表中，需要公网NAT网关服务提供查询能力。
资源默认按照创建时间倒序，资源tag也按照创建时间倒序。
#### URI
- URI格式
POST /v2.0/{project_id}/nat_gateways/resource_instances/action
- 参数说明
表1参数说明 
| 参数         | 是否必选 | 参数类型   | 描述     |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目的ID。 |
   
#### 请求消息
请求参数如[表2]所示。
 表2请求参数 
| 参数           | 是否必选 | 参数类型            | 描述                                                                                                                                                                                                |
|:---|:---|:---|:---|
| tags         | 否    | Array\<Object\> | 包含标签对象列表，最多包含10个key，每个key下面的value最多10个，结构体不能缺失，key不能为空或者空字符串。Key不能重复，同一个key中values不能重复。返回包含所有标签的资源列表，key之间是与的关系，key-value结构中value是或的关系。无tag过滤条件时返回全量数据。                                           |
| tags_any     | 否    | Array\<Object\> | 包含任意标签对象列表，最多包含10个key，每个key下面的value最多10个,结构体不能缺失，key不能为空或者空字符串。Key不能重复，同一个key中values不能重复。返回包含标签的资源列表，key之间是或的关系，key-value结构中value是或的关系。无过滤条件时返回全量数据。                                              |
| not_tags     | 否    | Array\<Object\> | 不包含标签对象列表，最多包含10个key，每个key下面的value最多10个, 结构体不能缺失，key不能为空或者空字符串。Key不能重复，同一个key中values不能重复。返回不包含标签的资源列表，key之间是与的关系，key-value结构中value是或的关系。无过滤条件时返回全量数据。                                             |
| not_tags_any | 否    | Array\<Object\> | 不包含任意标签对象列表，最多包含10个key，每个key下面的value最多10个,结构体不能缺失，key不能为空或者空字符串。Key不能重复，同一个key中values不能重复。返回不包含标签的资源列表，key之间是或的关系，key-value结构中value是或的关系。无过滤条件时返回全量数据。                                            |
| limit        | 否    | String          | 查询记录数（action为count时无此参数）如果action为filter默认为1000，limit最多为1000,不能为负数，最小值为1                                                                                                                           |
| offset       | 否    | String          | （索引位置）， 从offset指定的下一条数据开始查询。查询第一页数据时，不需要传入此参数，查询后续页码数据时，将查询前一页数据时响应体中的值带入此参数（action为count时无此参数）如果action为filter默认为0,必须为数字，不能为负数                                                                    |
| action       | 是    | String          | 操作标识（仅限于filter，count）：filter（过滤），count(查询总条数) 如果是filter就是分页查询，如果是count只需按照条件将总条数返回即可。禁止返回其他字段。                                              |
| matches      | 否    | Array\<match\>  | 搜索字段列表，key为要匹配的字段，如resource_name等。value为匹配的值。此字段为固定字典值。 根据不同的字段确认是否需要模糊匹配，如resource_name默认为模糊搜索（不区分大小写），如果value为空字符串精确匹配。resource_id为精确匹配。 |
   
表3tag 字段数据结构说明 
| 参数     | 是否必选 | 参数类型            | 描述                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| key    | 是    | String          | 键。最大长度127个unicode字符。key不能为空。(搜索时不对此参数做校验) ，key不能为空或者空字符串，不能为空格，校验和使用之前先trim 前后空格。                                                                                                                                                                                                                                              |
| values | 是    | Array\<String\> | 值列表。每个值最大长度255个unicode字符，不能为空格，校验和使用之前先trim 前后空格。 \*为系统保留字符，value可为空但不可缺省。 如果里面的value是以\*开头表示按照\*后面的值全模糊匹配。 如果values为空列表，则表示any_value（查询任意value）。value之间为或的关系。 |
   
表4match字段数据结构说明 
| 参数    | 是否必须 | 参数类型   | 描述                       |
|:---|:---|:---|:---|
| key   | 是    | String | 键。限定为resource_name。      |
| value | 是    | String | 值。每个值最大长度255个unicode字符 。 |
   
#### 响应消息
响应参数如[表5]所示。
 表5响应参数 
| 参数          | 参数类型              | 描述                                                                  |
|:---|:---|:---|
| resources   | Array\<resource\> | 资源对象列表。[表6]。 |
| total_count | Integer           | 总记录数                                                                |
   
 表6resource字段数据结构说明 
| 参数              | 参数类型                  | 描述                                                                               |
|:---|:---|:---|
| resource_id     | String                | 资源ID                                                                             |
| resource_detail | Object                | 资源详情。资源对象，用于扩展。默认为空                                                              |
| tags            | Array\<resource_tag\> | 标签列表，没有标签默认为空数组。请参考[表7]。 |
| resource_name   | String                | 资源名称，没有默认为空字符串                                                                   |
   
 表7resource_tag字段数据结构说明 
| 参数    | 参数类型   | 描述                                                                |
|:---|:---|:---|
| key   | String | 键。最大长度36个unicode字符。key不能为空。不能包含非打印字符ASCII(0-31)，\*,\<,\>,\\,=     |
| value | String | 值。每个值最大长度43个unicode字符，可以为空字符串。不能包含非打印字符ASCII(0-31), \*,\<,\>,\\,= |
   
#### 示例
- 请求样例
  1. action为filter时的请求体
  
  
  ```
  POST  https://{VPC_endpoint}/v2.0/9ad601814ac94c80bf7bb9073ded66fc/nat_gateways/resource_instances/action 
  {
      "offset": "100", 
      "limit": "100", 
      "action": "filter", 
      "matches": [
          {
              "key": "resource_name", 
              "value": "nat_gateways"
          }
      ], 
      "not_tags": [
          {
              "key": "key1", 
              "values": [
                  "*value1", 
                  "value2"
              ]
          }
      ], 
      "tags": [
          {
              "key": "key2", 
              "values": [
                  "*value3", 
                  "value4"
              ]
          }
      ], 
      "tags_any": [
          {
              "key": "key3", 
              "values": [
                  "*value5", 
                  "value6"
              ]
          }
      ],
      "not_tags_any": [
          {
              "key": "key4", 
              "values": [
                  "*value7", 
                  "value8"
              ]
          }
      ]
  }
  ```
  2. action为count时的请求体
  
  
  ```
  POST  https://{VPC_endpoint}/v2.0/9ad601814ac94c80bf7bb9073ded66fc/nat_gateways/resource_instances/action        {
      "action": "count", 
      "matches": [
          {
              "key": "resource_name", 
              "value": "nat_gateways"
          }
      ], 
      "not_tags": [
          {
              "key": "key1", 
              "values": [
                  "*value1", 
                  "value2"
              ]
          }
      ], 
      "tags": [
          {
              "key": "key2", 
              "values": [
                  "*value3", 
                  "value4"
              ]
          }
      ], 
      "tags_any": [
          {
              "key": "key3", 
              "values": [
                  "*value5", 
                  "value6"
              ]
          }
      ],
      "not_tags_any": [
          {
              "key": "key4", 
              "values": [
                  "*value7", 
                  "value8"
              ]
          }
      ]
  }
  ```
  
 
- 响应样例
  1. action为filter时响应体
  
  
  ```
  { 
      "resources": [
          {
              "resource_detail": null, 
              "resource_id": "e5ad289f-9c56-4daf-b08b-2e53a983473a", 
              "resource_name": "nat_gateways", 
              "tags": [
                  {
                     "key": "key2"，
                     "value": "value4"
                  },
                  {
                     "key": "key2"，
                     "value": "value3"
                  }
              ]
          }
      ], 
      "total_count": 1000
  }
  ```
  2. action为count时响应体
  
  
  ```
  { 
      "total_count": 1000
  }
  ```
  
#### 状态码
请参考[状态码](https://support.huaweicloud.com/api-natgateway/nat_api_0038.html)。
