Tcl
Tcl
AWS KMS List Keys
See more AWS KMS Examples
Gets a list of all KMS keys in the caller's AWS account and Region.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set rest [new_CkRest]
# Connect to the Amazon AWS REST server.
# Make sure to use the region that is correct for you.
# such as https://kms.us-west-2.amazonaws.com/
set bTls 1
set port 443
set bAutoReconnect 1
set success [CkRest_Connect $rest "kms.us-west-2.amazonaws.com" $port $bTls $bAutoReconnect]
# Provide AWS credentials for the REST call.
set authAws [new_CkAuthAws]
CkAuthAws_put_AccessKey $authAws "AWS_ACCESS_KEY"
CkAuthAws_put_SecretKey $authAws "AWS_SECRET_KEY"
# the region should match our URL above..
CkAuthAws_put_Region $authAws "us-west-2"
CkAuthAws_put_ServiceName $authAws "kms"
CkRest_SetAuthAws $rest $authAws
CkRest_AddHeader $rest "X-Amz-Target" "TrentService.ListKeys"
CkRest_AddHeader $rest "Content-Type" "application/x-amz-json-1.1"
set strJson [CkRest_fullRequestString $rest "POST" "/" "{}"]
if {[CkRest_get_LastMethodSuccess $rest] != 1} then {
puts [CkRest_lastErrorText $rest]
delete_CkRest $rest
delete_CkAuthAws $authAws
exit
}
# A successful response will have a status code equal to 200.
if {[CkRest_get_ResponseStatusCode $rest] != 200} then {
puts "response status code = [CkRest_get_ResponseStatusCode $rest]"
puts "response status text = [CkRest_responseStatusText $rest]"
puts "response header: [CkRest_responseHeader $rest]"
puts "response body: $strJson"
delete_CkRest $rest
delete_CkAuthAws $authAws
exit
}
# Examine the successful JSON response (shown below)
set json [new_CkJsonObject]
CkJsonObject_Load $json $strJson
CkJsonObject_put_EmitCompact $json 0
puts [CkJsonObject_emit $json]
# Sample output:
# {
# "KeyCount": 4,
# "Keys": [
# {
# "KeyArn": "arn:aws:kms:us-west-2:954491834127:key/082f8520-7afc-4a09-b703-89b7243072e5",
# "KeyId": "082f8520-7afc-4a09-b703-89b7243072e5"
# },
# {
# "KeyArn": "arn:aws:kms:us-west-2:954491834127:key/17432483-ff08-4950-93d3-f46ebb5e17d1",
# "KeyId": "17432483-ff08-4950-93d3-f46ebb5e17d1"
# },
# {
# "KeyArn": "arn:aws:kms:us-west-2:954491834127:key/1b0e5b3c-0675-4510-adb6-a75b40a93da0",
# "KeyId": "1b0e5b3c-0675-4510-adb6-a75b40a93da0"
# },
# {
# "KeyArn": "arn:aws:kms:us-west-2:954491834127:key/265e3993-428b-4581-9466-b1030a53062f",
# "KeyId": "265e3993-428b-4581-9466-b1030a53062f"
# },
# ],
# "Truncated": false
# }
# Use this online tool to generate parsing code from sample JSON:
# Generate Parsing Code from JSON
set KeyCount [CkJsonObject_IntOf $json "KeyCount"]
set Truncated [CkJsonObject_BoolOf $json "Truncated"]
set i 0
set count_i [CkJsonObject_SizeOfArray $json "Keys"]
while {$i < $count_i} {
CkJsonObject_put_I $json $i
set KeyArn [CkJsonObject_stringOf $json "Keys[i].KeyArn"]
set KeyId [CkJsonObject_stringOf $json "Keys[i].KeyId"]
set i [expr $i + 1]
}
delete_CkRest $rest
delete_CkAuthAws $authAws
delete_CkJsonObject $json