Sample code for 30+ languages & platforms
B4X

AWS Secrets Manager - Get Secret Value

See more AWS Secrets Manager Examples

Retrieves the contents of the encrypted fields SecretString or SecretBinary from the specified version of a secret, whichever contains content.

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.GetSecretValue
'  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>
'  
'  {
'    "SecretId": "MyTestDatabaseSecret",
'  }

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)

'  Use this online tool to generate code from sample JSON:
'  Generate Code to Create JSON

Dim json As ChilkatJsonObject
json.Initialize

json.UpdateString("SecretId", "MyTestDatabaseSecret2")

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

Dim sbRequestBody As ChilkatStringBuilder
sbRequestBody.Initialize
json.EmitSb(sbRequestBody)
Dim sbResponseBody As ChilkatStringBuilder
sbResponseBody.Initialize
success = rest.FullRequestSb("POST", "/", sbRequestBody, sbResponseBody)
If success <> True 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.LoadSb(sbResponseBody)

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:

'  {
'    "ARN":"arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
'    "CreatedDate":1.523477145713E9,
'    "Name":"MyTestDatabaseSecret",
'    "SecretString":"{\n  \"username\":\"david\",\n  \"password\":\"BnQw&XDWgaEeT9XGTT29\"\n}\n",
'    "VersionId":"EXAMPLE1-90ab-cdef-fedc-ba987SECRET1"
'  }

'  Use this online tool to generate parsing code from sample JSON: 
'  Generate Parsing Code from JSON

Dim ARN As String = jResp.StringOf("ARN")
Dim CreatedDate As String = jResp.StringOf("CreatedDate")
Dim Name As String = jResp.StringOf("Name")
Dim SecretString As String = jResp.StringOf("SecretString")
Dim VersionId As String = jResp.StringOf("VersionId")