Updated on 2024-04-16 GMT+08:00

Querying VPCs by Tag

Function

This API is used to query VPCs by tag.

URI

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

Table 1 describes the parameters.

Table 1 Parameter description

Name

Mandatory

Description

project_id

Yes

Specifies the project ID. For details about how to obtain a project ID, see Obtaining a Project ID.

Request Parameters

Table 2 Request parameter

Parameter

Type

Mandatory

Description

tags

Array of tag objects

No

Specifies the included tags. A maximum of 10 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 tag field

Name

Mandatory

Type

Description

key

Yes

String

Specifies the tag key. The value can contain a maximum of 128 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 values. 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.

Resources that match any value can be found. For example, if resource A has a tag value of val1 and resource B has a tag value of val2, resources A and B can be found by using values={val1,val2}.

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

  • Filter VPCs by setting action to filter. The query starts from the first record. A maximum of 100 records can be returned for each query. You can use matches and tags to filter VPCs.
    POST https://{Endpoint}/v2.0/{project_id}/vpcs/resource_instances/action
    
    {
        "offset": "0",
        "limit": "100",
        "action": "filter",
        "matches": [
            {
                "key": "resource_name",
                "value": "resource1"
            }
        ],
        "tags": [
            {
                "key": "key1",
                "values": [
                    "*value1",
                    "value2"
                ]
            }
        ]
    }
  • Count VPCs by setting action to count. Use matches and tags to filter and count VPCs.
    POST https://{Endpoint}/v2.0/{project_id}/vpcs/resource_instances/action
    
    {
        "action": "count",
        "tags": [
            {
                "key": "key1",
                "values": [
                    "value1",
                    "value2"
                ]
            },
            {
                "key": "key2",
                "values": [
                    "value1",
                    "value2"
                ]
            }
        ],
        "matches": [
            {
                "key": "resource_name",
                "value": "resource1"
            }
        ]
    }

Response Parameters

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 tag 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 tag field

Name

Mandatory

Type

Description

key

Yes

String

Specifies the tag key. The value can contain a maximum of 128 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.

Resources that match any value can be found. For example, if resource A has a tag value of val1 and resource B has a tag value of val2, resources A and B can be found by using values={val1,val2}.

Example Response

  • When action is set 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
    }
     
  • When action is set to count:
    {
           "total_count": 1000
    }

Status Code

See Status Codes.

Error Code

See Error Codes.