Lua Requires Chilkat v11.1.0+
Lua
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 Lua Downloads
local chilkat = require("chilkat")
-- 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>
--
-- {}
local rest = chilkat.Rest.new()
-- Connect to the Amazon AWS REST server.
-- such as https://secretsmanager.us-west-2.amazonaws.com/
local bTls = true
local port = 443
local bAutoReconnect = true
local success = rest:connect("secretsmanager.us-west-2.amazonaws.com", port, bTls, bAutoReconnect)
-- Provide AWS credentials for the REST call.
local authAws = chilkat.AuthAws.new()
authAws.access_key = "AWS_ACCESS_KEY"
authAws.secret_key = "AWS_SECRET_KEY"
-- the region should match our URL above..
authAws.region = "us-west-2"
authAws.service_name = "secretsmanager"
rest:set_auth_aws(authAws)
rest:add_header("Content-Type", "application/x-amz-json-1.1")
rest:add_header("X-Amz-Target", "secretsmanager.ListSecrets")
local strResponse = rest:full_request_string("POST", "/", "{}")
if not rest.last_method_success then
print(rest.last_error_text)
return
end
local respStatusCode = rest.response_status_code
print("response status code = " .. respStatusCode)
local jResp = chilkat.JsonObject.new()
jResp.emit_compact = false
jResp:load(strResponse)
if respStatusCode >= 400 then
print("Response Status Code = " .. respStatusCode)
print("Response Header:")
print(rest.response_header)
print("Response Body:")
print(jResp:emit())
return
end
print("Response Body:")
print(jResp:emit())
-- 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"]
-- }
-- }
-- ]
-- }
local ARN = ""
local Description = ""
local LastChangedDate = ""
local Name = ""
local strVal = ""
local json2 = chilkat.JsonObject.new()
local jarr = chilkat.JsonArray.new()
local i = 0
local count_i = jResp:size_of_array("SecretList")
while i < count_i do
jResp.i = i
ARN = jResp:string_of("SecretList[i].ARN")
Description = jResp:string_of("SecretList[i].Description")
LastChangedDate = jResp:string_of("SecretList[i].LastChangedDate")
Name = jResp:string_of("SecretList[i].Name")
jResp:object_of2("SecretList[i].SecretVersionsToStages", json2)
local count = json2.size
local j = 0
while j < count do
local versionName = json2:name_at(j)
json2:array_of2(versionName, jarr)
local stage = jarr:string_at(0)
print("versionName = " .. versionName)
print("stage = " .. stage)
j = j + 1
end
i = i + 1
end