Querying Resources by Tag
Function
This API is used to query resources by tag.
Calling Method
For details, see Calling APIs.
Authorization Information
Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions.
- If you are using role/policy-based authorization, see Permissions Policies and Supported Actions for details on the required permissions.
- If you are using identity policy-based authorization, the following identity policy-based permissions are required.
Action
Access Level
Resource Type (*: required)
Condition Key
Alias
Dependencies
tms:resources:list
List
-
-
-
-
URI
POST /v1.0/resource-instances/filter
Request Parameters
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| X-Auth-Token | Yes | String | Definition User token. For details about how to obtain it, see Authentication. Constraints TMS is a global service. Set scope to domain when you call the IAM API to obtain a user token. Range N/A Default Value N/A |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| project_id | No | String | Definition Project ID. For details about how to obtain it, see Obtaining a Project ID. Constraints This parameter is mandatory when resource_type is set to a region-level service. Range N/A Default Value N/A |
| resource_types | Yes | Array of strings | Definition Resource type. The options include ecs, scaling_group, images, disk, vpc, security-groups, shared_bandwidth, eip, and cdn. For details about how to obtain it, see Querying Services Supported by TMS. Constraints 1 to 100 resource types are allowed. |
| tags | Yes | Array of Tag objects | Definition Tag list. Each tag contains the key and values fields. Constraints A maximum of 10 tags are allowed. |
| without_any_tag | No | Boolean | Definition Whether to query only resources without tags. Constraints N/A Range true: Querying resources without tags. false: Querying resources with and without tags. Default Value false |
| offset | No | Integer | Definition Index position. The query starts from the next piece of data indexed by this parameter. Constraints N/A Range ≥ 0 Default Value 0 |
| limit | No | Integer | Definition Number of records returned by a query. Constraints N/A Range 1–200 Default Value 10 |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| key | Yes | String | Tag key. For details, see Notes and Constraints. Constraints N/A Range N/A |
| values | Yes | Array of strings | Definition Tag value. For details, see Notes and Constraints. Constraints N/A |
Response Parameters
Status code: 200
| Parameter | Type | Description |
|---|---|---|
| resources | Array of Resources objects | Definition Resource list. Each resource object contains fields such as the project ID, project name, and resource ID. |
| errors | Array of Errors objects | Definition Error information returned when an exception occurs during the query. Each element contains the error code, error description, project ID, and resource type. |
| total_count | Integer | Definition Total number of resources queried by tag. Range N/A |
| Parameter | Type | Description |
|---|---|---|
| project_id | String | Definition Project ID. For details about how to obtain it, see Obtaining a Project ID. Range N/A |
| project_name | String | Definition Project name. Range N/A |
| resource_detail | Object | Definition Resource details. |
| resource_id | String | Definition Resource ID. Range N/A |
| resource_name | String | Definition Resource name. Range N/A |
| resource_type | String | Definition Resource type. The options include ecs, scaling_group, images, disk, vpc, security-groups, shared_bandwidth, eip, and cdn. For details about how to obtain it, see Querying Services Supported by TMS. Range N/A |
| tags | Array of FilterTagResponse objects | Definition Resource tags. Each element is a FilterTagResponse object, which contains the tag key and value. |
| Parameter | Type | Description |
|---|---|---|
| key | String | Definition Tag key. The tag key range of each cloud resource may vary. For details, see the tag documentation of the corresponding cloud service. Range N/A |
| value | String | Definition Tag value. The tag value range of each cloud resource may vary. For details, see the tag documentation of the corresponding cloud service. Range N/A |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
| project_id | String | Definition Project ID. For details about how to obtain it, see Obtaining a Project ID. Range N/A |
| resource_type | String | Definition Resource type. The options include ecs, scaling_group, images, disk, vpc, security-groups, shared_bandwidth, eip, and cdn. For details about how to obtain it, see Querying Services Supported by TMS. Range N/A |
Status code: 400
| Parameter | Type | Description |
|---|---|---|
| error | RespErrorMessage object | Definition Error message in the response. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details about the error codes of the corresponding cloud service, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
Status code: 401
| Parameter | Type | Description |
|---|---|---|
| error | RespErrorMessage object | Definition Error message in the response. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details about the error codes of the corresponding cloud service, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
Status code: 402
| Parameter | Type | Description |
|---|---|---|
| error | RespErrorMessage object | Definition Error message in the response. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details about the error codes of the corresponding cloud service, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
Status code: 403
| Parameter | Type | Description |
|---|---|---|
| error | RespErrorMessage object | Definition Error message in the response. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details about the error codes of the corresponding cloud service, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
Status code: 404
| Parameter | Type | Description |
|---|---|---|
| error | RespErrorMessage object | Definition Error message in the response. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details about the error codes of the corresponding cloud service, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
Status code: 405
| Parameter | Type | Description |
|---|---|---|
| error | RespErrorMessage object | Definition Error message in the response. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details about the error codes of the corresponding cloud service, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
Status code: 406
| Parameter | Type | Description |
|---|---|---|
| error | RespErrorMessage object | Definition Error message in the response. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details about the error codes of the corresponding cloud service, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
Status code: 407
| Parameter | Type | Description |
|---|---|---|
| error | RespErrorMessage object | Definition Error message in the response. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details about the error codes of the corresponding cloud service, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
Status code: 408
| Parameter | Type | Description |
|---|---|---|
| error | RespErrorMessage object | Definition Error message in the response. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details about the error codes of the corresponding cloud service, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
Status code: 409
| Parameter | Type | Description |
|---|---|---|
| error | RespErrorMessage object | Definition Error message in the response. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details about the error codes of the corresponding cloud service, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
Status code: 500
| Parameter | Type | Description |
|---|---|---|
| error | RespErrorMessage object | Definition Error message in the response. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details about the error codes of the corresponding cloud service, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
Status code: 501
| Parameter | Type | Description |
|---|---|---|
| error | RespErrorMessage object | Definition Error message in the response. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details about the error codes of the corresponding cloud service, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
Status code: 502
| Parameter | Type | Description |
|---|---|---|
| error | RespErrorMessage object | Definition Error message in the response. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details about the error codes of the corresponding cloud service, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
Status code: 503
| Parameter | Type | Description |
|---|---|---|
| error | RespErrorMessage object | Definition Error message in the response. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details about the error codes of the corresponding cloud service, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
Status code: 504
| Parameter | Type | Description |
|---|---|---|
| error | RespErrorMessage object | Definition Error message in the response. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. For details about the error codes of the corresponding cloud service, see Error Codes. Range N/A |
| error_msg | String | Definition Error description. Range N/A |
Example Requests
Querying resources by tag
POST https://{Endpoint}/v1.0/resource-instances/filter
{
"project_id" : "e1eb7c40cbea4c8389cde527594a306d",
"resource_types" : [ "disk", "ecs" ],
"tags" : [ {
"key" : "env",
"values" : [ "dev", "prod" ]
}, {
"key" : "test",
"values" : [ "test" ]
} ],
"offset" : 0,
"limit" : 10
} Example Responses
Status code: 200
OK
{
"resources" : [ {
"project_id" : "e1eb7c40cbea4c8389cde527594a306d",
"project_name" : "XXXX",
"resource_type" : "disk",
"resource_id" : "b621f5ae-b5c1-49d7-a660-752c445434b4",
"resource_name" : "lhj1-volume-0001",
"tags" : [ {
"key" : "ENV",
"value" : "dev"
} ]
}, {
"project_id" : "e1eb7c40cbea4c8389cde527594a306d",
"project_name" : "XXXX",
"resource_type" : "disk",
"resource_id" : "87c9edc9-f66c-48b8-a22f-372b2e22d579",
"resource_name" : "lhj2-volume-0002",
"tags" : [ {
"key" : "prod",
"value" : "disk"
} ]
} ],
"errors" : [ {
"project_id" : "e1eb7c40cbea4c8389cde527594a306d",
"resource_type" : "disk",
"error_code" : "TMS.0002",
"error_msg" : "Bad request"
} ],
"total_count" : 2
} SDK Sample Code
The SDK sample code is as follows.
Java
Querying resources 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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.GlobalCredentials; 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.tms.v1.region.TmsRegion; import com.huaweicloud.sdk.tms.v1.*; import com.huaweicloud.sdk.tms.v1.model.*; import java.util.List; import java.util.ArrayList; public class ListResourceSolution { 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 GlobalCredentials() .withAk(ak) .withSk(sk); TmsClient client = TmsClient.newBuilder() .withCredential(auth) .withRegion(TmsRegion.valueOf("<YOUR REGION>")) .build(); ListResourceRequest request = new ListResourceRequest(); ResqTagResource body = new ResqTagResource(); List<String> listTagsValues = new ArrayList<>(); listTagsValues.add("test"); List<String> listTagsValues1 = new ArrayList<>(); listTagsValues1.add("dev"); listTagsValues1.add("prod"); List<Tag> listbodyTags = new ArrayList<>(); listbodyTags.add( new Tag() .withKey("env") .withValues(listTagsValues1) ); listbodyTags.add( new Tag() .withKey("test") .withValues(listTagsValues) ); List<String> listbodyResourceTypes = new ArrayList<>(); listbodyResourceTypes.add("disk"); listbodyResourceTypes.add("ecs"); body.withLimit(10); body.withOffset(0); body.withTags(listbodyTags); body.withResourceTypes(listbodyResourceTypes); body.withProjectId("e1eb7c40cbea4c8389cde527594a306d"); request.withBody(body); try { ListResourceResponse response = client.listResource(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()); } } } |
Python
Querying resources 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 46 47 48 49 50 51 52 53 54 55 56 57 58 | # coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import GlobalCredentials from huaweicloudsdktms.v1.region.tms_region import TmsRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdktms.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 = GlobalCredentials(ak, sk) client = TmsClient.new_builder() \ .with_credentials(credentials) \ .with_region(TmsRegion.value_of("<YOUR REGION>")) \ .build() try: request = ListResourceRequest() listValuesTags = [ "test" ] listValuesTags1 = [ "dev", "prod" ] listTagsbody = [ Tag( key="env", values=listValuesTags1 ), Tag( key="test", values=listValuesTags ) ] listResourceTypesbody = [ "disk", "ecs" ] request.body = ResqTagResource( limit=10, offset=0, tags=listTagsbody, resource_types=listResourceTypesbody, project_id="e1eb7c40cbea4c8389cde527594a306d" ) response = client.list_resource(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
Go
Querying resources 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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/global" tms "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/tms/v1" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/tms/v1/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/tms/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, err := global.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). SafeBuild() if err != nil { fmt.Println(err) return } hcClient, err := tms.TmsClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). SafeBuild() if err != nil { fmt.Println(err) return } client := tms.NewTmsClient(hcClient) request := &model.ListResourceRequest{} var listValuesTags = []string{ "test", } var listValuesTags1 = []string{ "dev", "prod", } var listTagsbody = []model.Tag{ { Key: "env", Values: listValuesTags1, }, { Key: "test", Values: listValuesTags, }, } var listResourceTypesbody = []string{ "disk", "ecs", } limitResqTagResource:= int32(10) offsetResqTagResource:= int32(0) projectIdResqTagResource:= "e1eb7c40cbea4c8389cde527594a306d" request.Body = &model.ResqTagResource{ Limit: &limitResqTagResource, Offset: &offsetResqTagResource, Tags: listTagsbody, ResourceTypes: listResourceTypesbody, ProjectId: &projectIdResqTagResource, } response, err := client.ListResource(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
More
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 | OK |
| 400 | Bad Request |
| 401 | Unauthorized |
| 402 | Payment Required |
| 403 | Forbidden |
| 404 | Not Found |
| 405 | Method Not Allowed |
| 406 | Not Acceptable |
| 407 | Proxy Authentication Required |
| 408 | Request Timeout |
| 409 | Conflict |
| 500 | Internal Server Error |
| 501 | Not Implemented |
| 502 | Bad Gateway |
| 503 | Service Unavailable |
| 504 | Gateway Timeout |
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