Sample code for 30+ languages & platforms
Lua Requires Chilkat v11.1.0+

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

Lua
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