# Querying EIPs by Tag

#### Function

This API is used to query EIPs by tag.

#### URI

POST /v2.0/{project_id}/publicips/resource_instances/action

Table 1 describes the parameters.

Table 1 Parameter description
Name | Mandatory | Description
--- | --- | ---
project_id | Yes | Specifies the project ID.

#### Request Message

- Request parameter

  Table 2 Request parameter
  Parameter | Type | Mandatory | Description
  --- | --- | --- | ---
  tags | Array of tags objects | No | Specifies the included tags. A maximum of 20 tag keys are allowed for each query operation. Each tag key can have up to 10 tag values. The structure body must be included. The tag key cannot be left blank or set to an empty string. Each tag key must be unique, and each tag value in a tag must be unique.
  limit | Integer | No | Sets the page size. This parameter is not available when action is set to count. The default value is 1000 when action is set to filter. The maximum value is 1000, and the minimum value is 1. The value cannot be a negative number.

  offset

  Integer

  No

  Specifies the index position. The query starts from the next piece of data indexed by this parameter. This parameter is not required when you query data on the first page. The value in the response returned for querying data on the previous page will be included in this parameter for querying data on subsequent pages. This parameter is not available when action is set to count. If action is set to filter, the value must be a number, and the default value is 0. The value cannot be a negative number.

  action | String | Yes | Specifies the operation to perform. The value can only be filter (filtering) or count (querying the total number). The value filter indicates pagination query. The value count indicates that the total number of query results meeting the search criteria will be returned.
  matches | Array of match objects | No | Specifies the search criteria. The tag key is the field to match. Currently, only resource_name is supported. The tag value indicates the matched value. This field is a fixed dictionary value.

  Table 3 Description of the tags field
  Name | Mandatory | Type | Description
  --- | --- | --- | ---
  key | Yes | String | Specifies the tag key. The value can contain a maximum of 127 Unicode characters. The tag key cannot be left blank. (This parameter is not verified during the search process.)
  values | Yes | Array of strings | Specifies the tag value list. Each value can contain a maximum of 255 Unicode characters. An empty list for values indicates any value. The values are in the OR relationship.

  Table 4 Description of the match field
  Name | Mandatory | Type | Description
  --- | --- | --- | ---
  key | Yes | String | Specifies the tag key. Currently, the tag key can only be the resource name.
  value | Yes | String | Specifies the tag value. Each value can contain a maximum of 255 Unicode characters.

- Example request 1: Setting action to filter

      POST https://{Endpoint}/v2.0/{project_id}/publicips/resource_instances/action

      {
          "offset": "0",
          "limit": "100",
          "action": "filter",
          "matches": [
              {
                  "key": "resource_name",
                  "value": "resource1"
              }
          ],
          "tags": [
              {
                  "key": "key1",
                  "values": [
                      "*value1",
                      "value2"
                  ]
              }
          ]
      }

- Example request 2: Setting action to count

      {
          "action": "count",
          "tags": [
              {
                  "key": "key1",
                  "values": [
                      "value1",
                      "value2"
                  ]
              },
              {
                  "key": "key2",
                  "values": [
                      "value1",
                      "value2"
                  ]
              }
          ],
          "matches": [
              {
                  "key": "resource_name",
                  "value": "resource1"
              }
          ]
      }

#### Response Message

- Response parameter

  Table 5 Response parameter
  Name | Type | Description
  --- | --- | ---
  resources | Array of resource objects | Specifies the resource object list. For details, see Table 6.
  total_count | Integer | Specifies the total number of query records.

  Table 6 resource objects
  Name | Type | Description
  --- | --- | ---
  resource_id | String | Specifies the resource ID.
  resource_detail | Object | Specifies the resource details. Resource details are used for extension. This parameter is left blank by default.
  tags | Array of tags objects | Specifies the tag list. This parameter is an empty array by default if there is no tag. For details, see Table 7.
  resource_name | String | Specifies the resource name. This parameter is an empty string by default if there is no resource name.

  Table 7 Description of the tags field
  Name | Mandatory | Type | Description
  --- | --- | --- | ---
  key | Yes | String | Specifies the tag key. The value can contain a maximum of 127 Unicode characters. The tag key cannot be left blank. (This parameter is not verified during the search process.)
  value | Yes | String | Specifies the tag value list. Each value can contain a maximum of 255 Unicode characters. An empty list for values indicates any value. The values are in the OR relationship.

- Example response 1: Setting action to filter

      {
            "resources": [
               {
                  "resource_detail": null,
                  "resource_id": "cdfs_cefs_wesas_12_dsad",
                  "resource_name": "resouece1",
                  "tags": [
                      {
                         "key": "key1",
                         "value": "value1"
                      },
                      {
                         "key": "key2",
                         "value": "value1"
                      }
                   ]
               }
             ],
            "total_count": 1000
      }

- Example response 2: Setting action to count

      {
             "total_count": 1000
      }

#### Status Code

See Status Codes.

#### Error Code

See Error Codes.

Parent topic: EIP Tag Management