Querying Resources by Tag

Function

Query DNS resources by tag.

Resources are sorted by creation time in descending order.

URI

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

For details, see Table 1.

Table 1 Parameters in the URI

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID. You can obtain it in Obtaining a Project ID.

resource_type

Yes

String

Resource type.

  • DNS-public_zone

  • DNS-private_zone

  • DNS-public_recordset

  • DNS-private_recordset

  • DNS-ptr_record

Request

  • Parameter description

    Table 2 Parameters in the request

    Parameter

    Mandatory

    Type

    Description

    tags

    No

    Array of tags objects

    Includes specified tags. For details, see Table 3.

    The structure body is mandatory. A maximum of 20 tag keys are allowed in each query operation. The tag key cannot be left blank or set to the empty string. One tag key can have up to 20 tag values. Each tag key must be unique, and the tag values of one key must also be unique.

    tags_any

    No

    Array of tags objects

    Includes any of the specified tags. For details, see Table 3.

    The structure body is mandatory. A maximum of 20 tag keys are allowed in each query operation. The tag key cannot be left blank or set to the empty string. One tag key can have up to 20 tag values. Each tag key must be unique, and the tag values of one key must also be unique.

    not_tags

    No

    Array of tags objects

    Excludes specified tags. For details, see Table 3.

    The structure body is mandatory. A maximum of 20 tag keys are allowed in each query operation. The tag key cannot be left blank or set to the empty string. One tag key can have up to 20 tag values. Each tag key must be unique, and the tag values of one key must also be unique.

    not_tags_any

    No

    Array of tags objects

    Excludes any of the specified tags. For details, see Table 3.

    The structure body is mandatory. A maximum of 20 tag keys are allowed in each query operation. The tag key cannot be left blank or set to the empty string. One tag key can have up to 20 tag values. Each tag key must be unique, and the tag values of one key must also be unique.

    limit

    No

    Integer

    Number of resources on each page

    The value range is 1-1000.

    • If action is set to filter, the default value is 1000.

    • If action is set to count, this parameter does not take effect.

    offset

    No

    Integer

    Start offset of pagination query. The query will start from the next resource of the offset value.

    The value ranges from 0 to 2147483647.

    The default value is 0.

    • You do not need to specify this parameter when querying resources on the first page.

    • When you query resources on subsequent pages, set the value of offset to the location returned in the response body for the previous query.

    • If action is set to filter, this parameter takes effect. Its value can be 0 (default) or a positive integer.

    • If action is set to count, this parameter does not take effect.

    action

    Yes

    String

    Operation to be performed

    The value can be:

    • filter: queries resources in pages by filter condition.

    • count: queries the total number of resources.

    matches

    No

    Array of matches objects

    Field to be matched. For details, see Table 4.

    This parameter specifies the key-value pair to be matched in the query.

    If value is left blank, exact matching will work. Otherwise, fuzzy matching will work.

    Table 3 Parameters in the tags field

    Parameter

    Mandatory

    Type

    Description

    key

    Yes

    String

    Tag key

    A key can contain up to 36 Unicode characters. The key cannot be empty.

    values

    Yes

    Array of strings

    Tag value

    Each value can contain up to 43 Unicode characters and can be an empty string.

    Table 4 Parameters in the matches field

    Parameter

    Mandatory

    Type

    Description

    key

    Yes

    String

    Key to be matched. It can only be resource_name.

    value

    Yes

    String

    Value to be matched. It contains a maximum of 255 Unicode characters and cannot contain underscores (_) and percent sign (%).

  • Example request

    Query DNS resources by tag.

    POST https://{DNS_Endpoint}/v2/{project_id}/DNS-private_zone/resource_instances/action
    

    The following is a request example 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"
                ]
            }
        ]
    }
    

    The following is a request example 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"
            }
        ]
    }
    

Response

  • Parameter description

    Table 5 Parameters in the response

    Parameter

    Type

    Description

    resources

    Array of resource objects

    Resource list For details, see Table 6.

    total_count

    Integer

    Number of resources that meet the filter criteria. The number is irrelevant to limit or offset.

    Table 6 Parameters in the resources field

    Parameter

    Type

    Description

    resource_id

    String

    Resource ID

    resource_detail

    Object

    Resource details. This field is reserved for subsequent extension, and its value defaults to an empty string.

    tags

    Array of tag objects

    List of queried tags. If no tag is matched, an empty array is returned. For details, see Table 7.

    resource_name

    String

    Resource name. If no resource name is matched, the value is left blank.

    Table 7 Description of the tag field

    Parameter

    Type

    Description

    key

    String

    Tag key

    A key can contain up to 36 Unicode characters. The key cannot be empty.

    value

    String

    Tag value

    Each value can contain up to 43 Unicode characters and can be an empty string.

  • Example response

    The following is a request example 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
    }
    

    The following is a request example when action is set to count:

    {
        "total_count": 1000
    }
    

Returned Value

If a 2xx status code is returned, for example, 200, 202, or 204, the request is successful.

For details, see Status Code.