Help Center/ VPC Endpoint/ API Reference/ API/ Tags/ Querying Resources by Tag
Updated on 2022-12-13 GMT+08:00

Querying Resources by Tag

Function

Function This API is used to query resources using tags.

URI

POST /v1/{project_id}/{resource_type}/resource_instances/action

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID.

resource_type

Yes

String

Specifies the resource type. The type is endpoint_service or endpoint.

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

Specifies the user token. It can be obtained by calling the IAM API. The value of X-Subject-Token in the response header is the user token.

Content-Type

Yes

String

Specifies the MIME type of the request body. Default value application/json is recommended. For APIs used to upload objects or images, the MIME type varies depending on the flow type.

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

tags

No

Array of TagValuesList objects

Tags are included. A maximum of 10 tag keys are included, and each tag value can have a maximum of 10 values. Each tag value can be an empty array, but the tag structure cannot be missing. Tag keys must be unique. Values of the same tag key must be unique. Specifies all returned tags of the resource. Keys are in the AND relationship while values in the key-value structure are in the OR relationship. If no filtering condition for tags is specified, full data is returned.

tags_any

No

Array of TagValuesList objects

Any tags are included. A maximum of 10 tag keys are included, and each tag key can have a maximum of 10 values. Values of each tag key can be an empty array, but the tag structure cannot be missing. Both tag keys and values of the same tag key must be unique. Specifies resources including tags returned. Keys and values in the key-value structure are in the OR relationship. If no filtering condition is specified, full data is returned.

not_tags

No

Array of TagValuesList objects

Tags are excluded, a maximum of 10 tag keys are included, and each tag value can have a maximum of 10 values. Each tag value can be an empty array, but the tag structure cannot be missing. Tag keys must be unique. Values of the same tag key must be unique. Specifies resources excluding tags returned. Keys are in the AND relationship while values in the key-value structure are in the OR relationship. If no filtering condition is specified, full data is returned.

not_tags_any

No

Array of TagValuesList objects

Any tags are excluded, a maximum of 10 tag keys are included, and each tag value can have a maximum of 10 values. Each tag value can be an empty array, but the tag structure cannot be missing. Tag keys must be unique. Values of the same tag key must be unique. Specifies resources excluding tags returned. Keys are in the AND relationship while values in the key-value structure are in the OR relationship. If no filtering condition is specified, full data is returned.

sys_tags

No

Array of TagValuesList objects

Specifies the system tags.

limit

No

String

Specifies the number of records to be queried. This parameter is unavailable when action is set to count. If action is set to filter, the default value is 1000. The maximum value of limit is 1000 and the minimum value is 1.

offset

No

String

Specifies the index position and offset. The query starts from the data after the first data offset. This parameter is unavailable when action is set to count. If action is set to filter, the default value is 0 which indicates that the query starts from the first data. The value must be a non-negative number.

action

Yes

String

Specifies the action, which only can be filter and count. If this parameter is set to filter, the query is performed based on the filter criteria. If the parameter is set to count, only the total number of resources need to be returned.

matches

No

Array of Match objects

Specifies the search field. The tag key is the field to be matched, for example, resource_name. The tag value indicates the matched value. The tag key is a fixed dictionary value and cannot be a duplicate key or an unsupported key. Specifies whether fuzzy match is required based on the value of the tag key. For example, if the tag key is resource_name, fuzzy search (case-insensitive) is used by default. If value is an empty string, exact match is used. An empty list is returned because the resource_name for most services cannot be left blank. If the tag key is resource_id, exact match is used. Only resource_name for key is supported. Other key values will be available later.

without_any_tag

No

Boolean

The default value is false. The value can be true or false. When withoutAnyTag is set to true, ignore parameter verification on the tags, tagsAny, notTags, and notTagsAny.

Table 4 TagValuesList

Parameter

Mandatory

Type

Description

key

Yes

String

Specifies the tag key. It contains a maximum of 127 Unicode characters. A tag key cannot be left blank. (The character set of this parameter is not verified during the search.) The tag key cannot be left blank, empty strings, or spaces. Before you verify and use it, delete spaces at the beginning and end of the tag key.

Minimum: 1

Maximum: 36

values

Yes

Array of strings

Specifies the tag values. Each tag value contains a maximum of 255 Unicode characters. Before you verify and use it, delete spaces at the beginning and end of the tag value. The tag value can be an empty array but cannot be left blank. If values is left blank, it indicates any_value (querying any value). Values are in the OR relationship. The system does not verify the character set of values when searching for resources, but only verifies the length.

Table 5 Match

Parameter

Mandatory

Type

Description

key

Yes

String

Indicates the tag key. Only resource_name for key is supported. Other key values will be available later.

Minimum: 1

Maximum: 36

value

Yes

String

Value. Each value can contain a maximum of 255 Unicode characters. The character set of value is not verified.

Minimum: 1

Maximum: 43

Response Parameters

Status code: 200

Table 6 Response body parameters

Parameter

Type

Description

resources

Array of ResourceInstance objects

Resource Instance Details

total_count

Integer

Specifies the total number of query records.

Minimum: 1

Table 7 ResourceInstance

Parameter

Type

Description

resource_id

String

Indicates the resource ID, endpoint service ID, or endpoint ID.

tags

Array of TagList objects

Indicates the list of tags.

resource_name

String

Resource name. If the resource does not have a name, the ID is returned.

Table 8 TagList

Parameter

Type

Description

key

String

Specifies the tag key. A tag key contains a maximum of 36 Unicode characters. It cannot be left blank. It cannot contain equal signs (=), asterisks (*), less than signs (<), greater than signs (>), backslashes (), commas (,), vertical bars (|), and slashes (/), and the first and last characters cannot be spaces.

Minimum: 1

Maximum: 36

value

String

Specifies the tag key. A tag value contains a maximum of 43 Unicode characters and can be an empty string. It cannot contain equal signs (=), asterisks (*), less than signs(<), greater than signs (>), backslashes (), commas (,), vertical bars (|), and slashes (/), and the first and last characters cannot be spaces.

Minimum: 1

Maximum: 43

Status code: 400

Table 9 Response body parameters

Parameter

Type

Description

error

Error object

Specifies the error message returned when a task submission exception occurs.

Table 10 Error

Parameter

Type

Description

message

String

Task error description

code

String

Error code of a task exception.

Status code: 401

Table 11 Response body parameters

Parameter

Type

Description

error

Error object

Specifies the error message returned when a task submission exception occurs.

Table 12 Error

Parameter

Type

Description

message

String

Task error description

code

String

Error code of a task exception.

Status code: 403

Table 13 Response body parameters

Parameter

Type

Description

error

Error object

Specifies the error message returned when a task submission exception occurs.

Table 14 Error

Parameter

Type

Description

message

String

Task error description

code

String

Error code of a task exception.

Status code: 404

Table 15 Response body parameters

Parameter

Type

Description

error

Error object

Specifies the error message returned when a task submission exception occurs.

Table 16 Error

Parameter

Type

Description

message

String

Task error description

code

String

Error code of a task exception.

Status code: 405

Table 17 Response body parameters

Parameter

Type

Description

error

Error object

Specifies the error message returned when a task submission exception occurs.

Table 18 Error

Parameter

Type

Description

message

String

Task error description

code

String

Error code of a task exception.

Status code: 406

Table 19 Response body parameters

Parameter

Type

Description

error

Error object

Specifies the error message returned when a task submission exception occurs.

Table 20 Error

Parameter

Type

Description

message

String

Task error description

code

String

Error code of a task exception.

Status code: 407

Table 21 Response body parameters

Parameter

Type

Description

error

Error object

Specifies the error message returned when a task submission exception occurs.

Table 22 Error

Parameter

Type

Description

message

String

Task error description

code

String

Error code of a task exception.

Status code: 408

Table 23 Response body parameters

Parameter

Type

Description

error

Error object

Specifies the error message returned when a task submission exception occurs.

Table 24 Error

Parameter

Type

Description

message

String

Task error description

code

String

Error code of a task exception.

Status code: 409

Table 25 Response body parameters

Parameter

Type

Description

error

Error object

Specifies the error message returned when a task submission exception occurs.

Table 26 Error

Parameter

Type

Description

message

String

Task error description

code

String

Error code of a task exception.

Status code: 500

Table 27 Response body parameters

Parameter

Type

Description

error

Error object

Specifies the error message returned when a task submission exception occurs.

Table 28 Error

Parameter

Type

Description

message

String

Task error description

code

String

Error code of a task exception.

Status code: 501

Table 29 Response body parameters

Parameter

Type

Description

error

Error object

Specifies the error message returned when a task submission exception occurs.

Table 30 Error

Parameter

Type

Description

message

String

Task error description

code

String

Error code of a task exception.

Status code: 502

Table 31 Response body parameters

Parameter

Type

Description

error

Error object

Specifies the error message returned when a task submission exception occurs.

Table 32 Error

Parameter

Type

Description

message

String

Task error description

code

String

Error code of a task exception.

Status code: 503

Table 33 Response body parameters

Parameter

Type

Description

error

Error object

Specifies the error message returned when a task submission exception occurs.

Table 34 Error

Parameter

Type

Description

message

String

Task error description

code

String

Error code of a task exception.

Status code: 504

Table 35 Response body parameters

Parameter

Type

Description

error

Error object

Specifies the error message returned when a task submission exception occurs.

Table 36 Error

Parameter

Type

Description

message

String

Task error description

code

String

Error code of a task exception.

Example Requests

  • POST https://{endpoint}/v1/{project_id}/endpoint/resource_instances/action
    
    When action is set to filter:    "offset": "100",
        "limit": "100",
        "action": "filter",
        "matches": [
            {
                "key": "resource_name",
                "value": "resource1"
            }
        ],
        "not_tags": [
            {
                "key": "key1",
                "values": [
                    "*value1",
                    "value2"
                ]
            }
        ],
        "tags": [
            {
                "key": "key1",
                "values": [
                    "*value1",
                    "value2"
                ]
            }
        ],
        "tags_any": [
            {
                "key": "key1",
                "values": [
                    "value1",
                    "value2"
                ]
            }
        ],
        "not_tags_any": [
            {
                "key": "key1",
                "values": [
                    "value1",
                    "value2"
                ]
            }
        ]
    }
  • https://{endpoint}/v1/{project_id}/endpoint_service/ resource_instances/action
    
    When action is set to count:
    {
        "action": "count",
        "not_tags": [
            {
                "key": "key1",
                "values": [
                    "value1",
                    "*value2"
                ]
            }
        ],
        "tags": [
            {
                "key": "key1",
                "values": [
                    "value1",
                    "value2"
                ]
            },
            {
                "key": "key2",
                "values": [
                    "value1",
                    "value2"
                ]
            }
        ],
        "tags_any": [
            {
                "key": "key1",
                "values": [
                    "value1",
                    "value2"
                ]
            }
        ],
        "not_tags_any": [
            {
                "key": "key1",
                "values": [
                    "value1",
                    "value2"
                ]
            }
        ],
        "matches": [
            {
                "key": "resource_name",
                "value": "resource1"
            }
        ]
    }

Example Responses

Status code: 200

The server has successfully processed the request.

- When action is set to filter:
{
"resources": [
{
"resource_detail": null,
"resource_id": "cdfs_cefs_wesas_12_dsad",
"resource_name": "resource1",
"tags": [
{
"key": "key1","value": "value1"
},
{
"key": "key2","value": "value1"
}
]
}
],
"total_count": 1000
}
- When action is set to be count:
{
"total_count": 1000
}

Status Codes

Status Code

Description

200

The server has successfully processed the request.

400

The request could not be understood by the server due to malformed syntax.

401

The requested page requires a user name and password.

403

The server understood the request, but is refusing to fulfill it.

404

The requested page was not found.

405

The method specified in the request line is not allowed for the resource identified by the request URI.

406

The resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request.

407

The client must first authenticate itself with the proxy.

408

The client did not produce a request within the time that the server was prepared to wait.

409

The request could not be completed due to a conflict with the current state of the resource.

500

Failed to complete the request. Service abnormality.

501

Failed to complete the request. The server does not support the requested function.

502

Failed to complete the request. because the server has received an invalid response.

503

Failed to complete the request. because the system is unavailable.

504

Gateway Timeout

Error Codes

See Error Codes.