Querying Resources by Tag
Function
This API is used to query resources of a tenant by tag.
Calling Method
For details, see Calling APIs.
URI
POST /v1/{project_id}/{resource_type}/resource_instances/action
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Project ID. Minimum: 1 Maximum: 64 |
resource_type |
Yes |
String |
Specifies the resource type. The type is endpoint_service or endpoint. |
Request 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 |
No |
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. Default: application/json |
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. Array Length: 1 - 10 |
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. Array Length: 1 - 10 |
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. Array Length: 1 - 10 |
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. Array Length: 1 - 10 |
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. |
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: 128 |
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. Maximum: 255 Array Length: 1 - 1000 |
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
Parameter |
Type |
Description |
---|---|---|
resources |
Array of ResourceInstance objects |
Specifies the resource details. |
total_count |
Integer |
Specifies the total number of records. Minimum: 1 |
Parameter |
Type |
Description |
---|---|---|
resource_id |
String |
Indicates the resource ID, endpoint service ID, or endpoint ID. Minimum: 1 Maximum: 64 |
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. Minimum: 0 Maximum: 128 |
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: 128 |
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. Maximum: 255 |
Example Requests
-
Querying VPC endpoints by tag
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" ] } ] }
-
Querying the total number of VPC endpoint services
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_id": "cdfs_cefs_wesas_12_dsad", "resource_name": "resource1", "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value1" } ] } ], "total_count": 1000 }
SDK Sample Code
The SDK sample code is as follows.
-
Querying VPC endpoints by tag
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.vpcep.v1.region.VpcepRegion; import com.huaweicloud.sdk.vpcep.v1.*; import com.huaweicloud.sdk.vpcep.v1.model.*; public class ListResourceInstancesSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); ICredential auth = new BasicCredentials() .withAk(ak) .withSk(sk); VpcepClient client = VpcepClient.newBuilder() .withCredential(auth) .withRegion(VpcepRegion.valueOf("<YOUR REGION>")) .build(); ListResourceInstancesRequest request = new ListResourceInstancesRequest(); try { ListResourceInstancesResponse response = client.listResourceInstances(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } }
-
Querying the total number of VPC endpoint services
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.vpcep.v1.region.VpcepRegion; import com.huaweicloud.sdk.vpcep.v1.*; import com.huaweicloud.sdk.vpcep.v1.model.*; public class ListResourceInstancesSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); ICredential auth = new BasicCredentials() .withAk(ak) .withSk(sk); VpcepClient client = VpcepClient.newBuilder() .withCredential(auth) .withRegion(VpcepRegion.valueOf("<YOUR REGION>")) .build(); ListResourceInstancesRequest request = new ListResourceInstancesRequest(); try { ListResourceInstancesResponse response = client.listResourceInstances(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } }
-
Querying VPC endpoints by tag
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkvpcep.v1.region.vpcep_region import VpcepRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkvpcep.v1 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] credentials = BasicCredentials(ak, sk) client = VpcepClient.new_builder() \ .with_credentials(credentials) \ .with_region(VpcepRegion.value_of("<YOUR REGION>")) \ .build() try: request = ListResourceInstancesRequest() response = client.list_resource_instances(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
-
Querying the total number of VPC endpoint services
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkvpcep.v1.region.vpcep_region import VpcepRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkvpcep.v1 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] credentials = BasicCredentials(ak, sk) client = VpcepClient.new_builder() \ .with_credentials(credentials) \ .with_region(VpcepRegion.value_of("<YOUR REGION>")) \ .build() try: request = ListResourceInstancesRequest() response = client.list_resource_instances(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
-
Querying VPC endpoints by tag
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" vpcep "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := vpcep.NewVpcepClient( vpcep.VpcepClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.ListResourceInstancesRequest{} response, err := client.ListResourceInstances(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
-
Querying the total number of VPC endpoint services
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" vpcep "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := vpcep.NewVpcepClient( vpcep.VpcepClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.ListResourceInstancesRequest{} response, err := client.ListResourceInstances(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.
Status Codes
Status Code |
Description |
---|---|
200 |
The server has successfully processed the request. |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot