Tcl
Tcl
AWS Secrets Manager - List Secrets
See more AWS Secrets Manager Examples
Lists the secrets that are stored by Secrets Manager in the AWS account. Lists the secrets that are stored by Secrets Manager in the AWS account.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.
# Sends the following sample request.
# Note: Chilkat will automatically add Content-Length, X-Amz-Date, Accept-Encoding, and Authorization
# POST / HTTP/1.1
# Host: secretsmanager.region.domain
# Accept-Encoding: identity
# X-Amz-Target: secretsmanager.ListSecrets
# Content-Type: application/x-amz-json-1.1
# X-Amz-Date: <date>
# Authorization: AWS4-HMAC-SHA256 Credential=<credentials>,SignedHeaders=<headers>, Signature=<signature>
# Content-Length: <payload-size-bytes>
#
# {}
set rest [new_CkRest]
# Connect to the Amazon AWS REST server.
# such as https://secretsmanager.us-west-2.amazonaws.com/
set bTls 1
set port 443
set bAutoReconnect 1
set success [CkRest_Connect $rest "secretsmanager.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 "secretsmanager"
CkRest_SetAuthAws $rest $authAws
CkRest_AddHeader $rest "Content-Type" "application/x-amz-json-1.1"
CkRest_AddHeader $rest "X-Amz-Target" "secretsmanager.ListSecrets"
set strResponse [CkRest_fullRequestString $rest "POST" "/" "{}"]
if {[CkRest_get_LastMethodSuccess $rest] == 0} then {
puts [CkRest_lastErrorText $rest]
delete_CkRest $rest
delete_CkAuthAws $authAws
exit
}
set respStatusCode [CkRest_get_ResponseStatusCode $rest]
puts "response status code = $respStatusCode"
set jResp [new_CkJsonObject]
CkJsonObject_put_EmitCompact $jResp 0
CkJsonObject_Load $jResp $strResponse
if {$respStatusCode >= 400} then {
puts "Response Status Code = $respStatusCode"
puts "Response Header:"
puts [CkRest_responseHeader $rest]
puts "Response Body:"
puts [CkJsonObject_emit $jResp]
delete_CkRest $rest
delete_CkAuthAws $authAws
delete_CkJsonObject $jResp
exit
}
puts "Response Body:"
puts [CkJsonObject_emit $jResp]
# Sample response body:
# {
# "SecretList":[
# {
# "ARN":"arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
# "Description":"My test database secret",
# "LastChangedDate":1.523477145729E9,
# "Name":"MyTestDatabaseSecret",
# "SecretVersionsToStages":{
# "EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE":["AWSCURRENT"]
# }
# },
# {
# "ARN":"arn:aws:secretsmanager:us-west-2:123456789012:secret:AnotherDatabaseSecret-d4e5f6",
# "Description":"Another secret created for a different database",
# "LastChangedDate":1.523482025685E9,
# "Name":"AnotherDatabaseSecret",
# "SecretVersionsToStages":{
# "EXAMPLE3-90ab-cdef-fedc-ba987EXAMPLE":["AWSCURRENT"]
# }
# }
# ]
# }
set json2 [new_CkJsonObject]
set jarr [new_CkJsonArray]
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "SecretList"]
while {$i < $count_i} {
CkJsonObject_put_I $jResp $i
set ARN [CkJsonObject_stringOf $jResp "SecretList[i].ARN"]
set Description [CkJsonObject_stringOf $jResp "SecretList[i].Description"]
set LastChangedDate [CkJsonObject_stringOf $jResp "SecretList[i].LastChangedDate"]
set Name [CkJsonObject_stringOf $jResp "SecretList[i].Name"]
CkJsonObject_ObjectOf2 $jResp "SecretList[i].SecretVersionsToStages" $json2
set count [CkJsonObject_get_Size $json2]
set j 0
while {$j < $count} {
set versionName [CkJsonObject_nameAt $json2 $j]
CkJsonObject_ArrayOf2 $json2 $versionName $jarr
set stage [CkJsonArray_stringAt $jarr 0]
puts "versionName = $versionName"
puts "stage = $stage"
set j [expr $j + 1]
}
set i [expr $i + 1]
}
delete_CkRest $rest
delete_CkAuthAws $authAws
delete_CkJsonObject $jResp
delete_CkJsonObject $json2
delete_CkJsonArray $jarr