Sample code for 30+ languages & platforms
B4X 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 B4X Downloads

B4X
Dim success As Boolean = False

'  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>
'  
'  {}

Dim rest As ChilkatRest
rest.Initialize("rest")

'  Connect to the Amazon AWS REST server.
'  such as https://secretsmanager.us-west-2.amazonaws.com/
Dim bTls As Boolean = True
Dim port As Int = 443
Dim bAutoReconnect As Boolean = True
success = rest.Connect("secretsmanager.us-west-2.amazonaws.com", port, bTls, bAutoReconnect)

'  Provide AWS credentials for the REST call.
Dim authAws As ChilkatAuthAws
authAws.Initialize
authAws.AccessKey = "AWS_ACCESS_KEY"
authAws.SecretKey = "AWS_SECRET_KEY"
'  the region should match our URL above..
authAws.Region = "us-west-2"
authAws.ServiceName = "secretsmanager"

rest.SetAuthAws(authAws)

rest.AddHeader("Content-Type", "application/x-amz-json-1.1")
rest.AddHeader("X-Amz-Target", "secretsmanager.ListSecrets")

Dim strResponse As String = rest.FullRequestString("POST", "/", "{}")
If rest.LastMethodSuccess = False Then
    Log(rest.LastErrorText)
    Return
End If


Dim respStatusCode As Int = rest.ResponseStatusCode
Log("response status code = " & respStatusCode)

Dim jResp As ChilkatJsonObject
jResp.Initialize
jResp.EmitCompact = False
jResp.Load(strResponse)

If respStatusCode >= 400 Then
    Log("Response Status Code = " & respStatusCode)
    Log("Response Header:")
    Log(rest.ResponseHeader)
    Log("Response Body:")
    Log(jResp.Emit)
    Return
End If


Log("Response Body:")
Log(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"]
'        }
'      }
'    ]
'  }

Dim ARN As String
Dim Description As String
Dim LastChangedDate As String
Dim Name As String
Dim strVal As String

Dim json2 As ChilkatJsonObject
json2.Initialize
Dim jarr As ChilkatJsonArray
jarr.Initialize

Dim i As Int = 0
Dim count_i As Int = jResp.SizeOfArray("SecretList")
Do While i < count_i
    jResp.I = i
    ARN = jResp.StringOf("SecretList[i].ARN")
    Description = jResp.StringOf("SecretList[i].Description")
    LastChangedDate = jResp.StringOf("SecretList[i].LastChangedDate")
    Name = jResp.StringOf("SecretList[i].Name")

    jResp.ObjectOf2("SecretList[i].SecretVersionsToStages", json2)
    Dim count As Int = json2.Size
    Dim j As Int = 0
    Do While j < count
        Dim versionName As String = json2.NameAt(j)
        json2.ArrayOf2(versionName, jarr)
        Dim stage As String = jarr.StringAt(0)
        Log("versionName = " & versionName)
        Log("stage = " & stage)
        j = j + 1
    Loop

    i = i + 1
Loop