Query key instances
Function
This API is used to query a key instance. You can use tags to filter and check CMK details.
Calling Method
For details, see Calling APIs.
URI
POST /v1.0/{project_id}/kms/{resource_instances}/action
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Project ID |
resource_instances |
Yes |
String |
Resource instance. The value is resource_instances. |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
X-Auth-Token |
Yes |
String |
User token. It can be obtained by calling the IAM API used to obtain a user token. The value of X-Subject-Token in the response header is the user token. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
limit |
No |
String |
Number of records to be queried. You do not need to specify this parameter if action is set to count. If action is set to filter, the default value of this parameter is 10. The value of limit ranges from 1 to 1000. |
offset |
No |
String |
Index location. The query starts from the next data specified by offset. If action is set to count, do not specify this parameter. If action is set to filter, the default value of offset is 0. The value of offset must be a non-negative number. |
action |
No |
String |
Operation type. The value can be filter or count. filter: filtering count: total number of queried records |
tags |
No |
Array of Tag objects |
Tag list, which is the value pairs of key and value. key: Tag key. A tag key can contain up to 10 values. This parameter cannot be left empty or repeated. The value of a key must be unique and contain up to 36 characters. value: Tag value. There can be multiple values and each value can contain up to 43 characters. Each pair contains one key and one value. |
matches |
No |
Array of TagItem objects |
Search field. Possible values are as follows: key: The field to be matched, for example, resource_name. value: The value to be matched. The value can contain up to 255 characters and cannot be blank. |
sequence |
No |
String |
A 36-byte serial number of a request message, for example, 919c82d4-8046-4722-9094-35c3c6524cff |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
key |
No |
String |
Key. The value can contain up to 36 unicode characters. This parameter cannot be left empty. The following nonprintable characters are not supported: ASCII(0-31), *, <, >, , and =. |
values |
No |
Array of strings |
Tag value set. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
key |
Yes |
String |
Key. The value can contain up to 36 unicodes. This parameter cannot be left empty. The following nonprintable characters cannot be included: ASCII(0-31), *, <, >, , and =. |
value |
No |
String |
Key. The value can contain up to 43 unicodes. This parameter can be left empty. The following nonprintable characters cannot be included: ASCII(0-31), *, <, >, , and =. |
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
resources |
Array of ActionResources objects |
Resource instance list. For details, see the data structure description of the resource field. |
total_count |
Integer |
Total number of records. |
Parameter |
Type |
Description |
---|---|---|
resource_id |
String |
Resource ID. |
resource_detail |
KeyDetails object |
Key details. |
resource_name |
String |
Specifies the resource name. This parameter is an empty string by default. |
tags |
Array of TagItem objects |
Tag list. If there is no tag in the list, an empty array is returned. |
Parameter |
Type |
Description |
---|---|---|
key_id |
String |
Key ID. |
domain_id |
String |
User domain ID. |
key_alias |
String |
Key alias. |
realm |
String |
Key realm. |
key_spec |
String |
Key generation algorithm. Possible values are as follows: AES_256 SM4 RSA_2048 RSA_3072 RSA_4096 EC_P256 EC_P384 SM2 |
key_usage |
String |
Key usage. Possible values are as follows: ENCRYPT_DECRYPT SIGN_VERIFY |
key_description |
String |
Key description. |
creation_date |
String |
Time when the key was created. The timestamp indicates the total seconds past the start of the epoch date (January 1, 1970). |
scheduled_deletion_date |
String |
Time when the key was scheduled to be deleted. The timestamp indicates the total seconds past the start of the epoch date (January 1, 1970). |
key_state |
String |
Key status which matches the regular expression ^[1-5]{1}$. Possible values are as follows: 1: To be activated 2: Enabled 3: Disabled 4: To be deleted 5: To be imported |
default_key_flag |
String |
Master key identifier. The value is 1 for Default Master Keys and 0 for non-default master keys. |
key_type |
String |
Key type. |
expiration_time |
String |
Time when the key material expires. The timestamp indicates the total seconds past the start of the epoch date (January 1, 1970). |
origin |
String |
Key source. The default value is kms. Possible values are as follows: kms: The key is generated by KMS. external: The key is imported. |
key_rotation_enabled |
String |
Key rotation status. The default value is false, indicating that key rotation is disabled. |
sys_enterprise_project_id |
String |
Enterprise project ID. The default value is 0. If you have created an enterprise project, the resources are listed in the default enterprise project. If you haven't created an enterprise project, the resources are not listed in the enterprise project. |
keystore_id |
String |
Keystore ID |
Parameter |
Type |
Description |
---|---|---|
key |
String |
Key. The value can contain up to 36 unicodes. This parameter cannot be left empty. The following nonprintable characters cannot be included: ASCII(0-31), *, <, >, , and =. |
value |
String |
Key. The value can contain up to 43 unicodes. This parameter can be left empty. The following nonprintable characters cannot be included: ASCII(0-31), *, <, >, , and =. |
Status code: 400
Parameter |
Type |
Description |
---|---|---|
error |
Object |
Error message. |
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code returned by the error request |
error_msg |
String |
Error information returned by the error request |
Status code: 401
Parameter |
Type |
Description |
---|---|---|
error |
Object |
Error message. |
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code returned by the error request |
error_msg |
String |
Error information returned by the error request |
Status code: 403
Parameter |
Type |
Description |
---|---|---|
error |
Object |
Error message. |
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code returned by the error request |
error_msg |
String |
Error information returned by the error request |
Status code: 404
Parameter |
Type |
Description |
---|---|---|
error |
Object |
Error message. |
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code returned by the error request |
error_msg |
String |
Error information returned by the error request |
Status code: 500
Parameter |
Type |
Description |
---|---|---|
error |
Object |
Error message. |
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code returned by the error request |
error_msg |
String |
Error information returned by the error request |
Status code: 502
Parameter |
Type |
Description |
---|---|---|
error |
Object |
Error message. |
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code returned by the error request |
error_msg |
String |
Error information returned by the error request |
Status code: 504
Parameter |
Type |
Description |
---|---|---|
error |
Object |
Error message. |
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code returned by the error request |
error_msg |
String |
Error information returned by the error request |
Example Requests
Query the key instance whose tag key is key1 and tag value is value1 or value2. The start position is 100 and 100 results are displayed.
{ "offset" : "100", "limit" : "100", "action" : "filter", "tags" : [ { "key" : "key1", "values" : [ "value1", "value2" ] } ] }
Example Responses
Status code: 200
Request succeeded.
{ "resources" : [ { "resource_id" : "90c03e67-5534-4ed0-acfa-89780e47a535", "resource_detail" : [ { "key_id" : "90c03e67-5534-4ed0-acfa-89780e47a535", "domain_id" : "4B688Fb77412Aee5570E7ecdbeB5afdc", "key_alias" : "tagTest_xmdmi", "key_description" : "123", "creation_date" : 1521449277000, "scheduled_deletion_date" : "", "key_state" : 2, "default_key_flag" : 0, "key_type" : 1, "key_rotation_enabled" : false, "expiration_time" : "", "origin" : "kms", "sys_enterprise_project_id" : "0", "realm" : "test" } ], "resource_name" : "tagTest_xmdmi", "tags" : [ { "key" : "key", "value" : "testValue!" }, { "key" : "haha", "value" : "testValue" } ] } ], "total_count" : 1 }
SDK Sample Code
The SDK sample code is as follows.
Query the key instance whose tag key is key1 and tag value is value1 or value2. The start position is 100 and 100 results are displayed.
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 |
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.kms.v2.region.KmsRegion; import com.huaweicloud.sdk.kms.v2.*; import com.huaweicloud.sdk.kms.v2.model.*; import java.util.List; import java.util.ArrayList; public class ListKmsByTagsSolution { 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); KmsClient client = KmsClient.newBuilder() .withCredential(auth) .withRegion(KmsRegion.valueOf("<YOUR REGION>")) .build(); ListKmsByTagsRequest request = new ListKmsByTagsRequest(); ListKmsByTagsRequestBody body = new ListKmsByTagsRequestBody(); List<String> listTagsValues = new ArrayList<>(); listTagsValues.add("value1"); listTagsValues.add("value2"); List<Tag> listbodyTags = new ArrayList<>(); listbodyTags.add( new Tag() .withKey("key1") .withValues(listTagsValues) ); body.withTags(listbodyTags); body.withAction("filter"); body.withOffset("100"); body.withLimit("100"); request.withBody(body); try { ListKmsByTagsResponse response = client.listKmsByTags(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()); } } } |
Query the key instance whose tag key is key1 and tag value is value1 or value2. The start position is 100 and 100 results are displayed.
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 |
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkkms.v2.region.kms_region import KmsRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkkms.v2 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 = KmsClient.new_builder() \ .with_credentials(credentials) \ .with_region(KmsRegion.value_of("<YOUR REGION>")) \ .build() try: request = ListKmsByTagsRequest() listValuesTags = [ "value1", "value2" ] listTagsbody = [ Tag( key="key1", values=listValuesTags ) ] request.body = ListKmsByTagsRequestBody( tags=listTagsbody, action="filter", offset="100", limit="100" ) response = client.list_kms_by_tags(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
Query the key instance whose tag key is key1 and tag value is value1 or value2. The start position is 100 and 100 results are displayed.
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 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" kms "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/kms/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/kms/v2/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/kms/v2/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 := kms.NewKmsClient( kms.KmsClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.ListKmsByTagsRequest{} var listValuesTags = []string{ "value1", "value2", } keyTags:= "key1" var listTagsbody = []model.Tag{ { Key: &keyTags, Values: &listValuesTags, }, } actionListKmsByTagsRequestBody:= "filter" offsetListKmsByTagsRequestBody:= "100" limitListKmsByTagsRequestBody:= "100" request.Body = &model.ListKmsByTagsRequestBody{ Tags: &listTagsbody, Action: &actionListKmsByTagsRequestBody, Offset: &offsetListKmsByTagsRequestBody, Limit: &limitListKmsByTagsRequestBody, } response, err := client.ListKmsByTags(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 |
Request succeeded. |
400 |
Invalid request parameters. |
401 |
Username and password are required for the requested page. |
403 |
Authentication failed. |
404 |
The resource does not exist. |
500 |
Internal service error. |
502 |
Failed to complete the request. The server receives an invalid response from the upstream server. |
504 |
Gateway timed out. |
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