Sample code for 30+ languages & platforms
Lua

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 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.

local rest = chilkat.Rest.new()

-- 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/
local bTls = true
local port = 443
local bAutoReconnect = true
local success = rest:connect("kms.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 = "kms"

rest:set_auth_aws(authAws)

rest:add_header("X-Amz-Target", "TrentService.ListKeys")
rest:add_header("Content-Type", "application/x-amz-json-1.1")

local strJson = rest:full_request_string("POST", "/", "{}")
if not rest.last_method_success then
    print(rest.last_error_text)
    return
end

-- A successful response will have a status code equal to 200.
if rest.response_status_code ~= 200 then
    print("response status code = " .. rest.response_status_code)
    print("response status text = " .. rest.response_status_text)
    print("response header: " .. rest.response_header)
    print("response body: " .. strJson)
    return
end

-- Examine the successful JSON response (shown below)
local json = chilkat.JsonObject.new()
json:load(strJson)
json.emit_compact = false

print(json:emit())

-- 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

local KeyArn = ""
local KeyId = ""

local KeyCount = json:int_of("KeyCount")
local Truncated = json:bool_of("Truncated")
local i = 0
local count_i = json:size_of_array("Keys")
while i < count_i do
    json.i = i
    KeyArn = json:string_of("Keys[i].KeyArn")
    KeyId = json:string_of("Keys[i].KeyId")
    i = i + 1
end