Sample code for 30+ languages & platforms
Xbase++

AWS Secrets Manager - Create Secret

See more AWS Secrets Manager Examples

Creates a new secret. A secret is a set of credentials, such as a user name and password, that you store in an encrypted form in Secrets Manager.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oRest
LOCAL nBTls
LOCAL nPort
LOCAL nBAutoReconnect
LOCAL oAuthAws
LOCAL oJson
LOCAL oSbRequestBody
LOCAL oSbResponseBody
LOCAL nRespStatusCode
LOCAL oJResp
LOCAL cARN
LOCAL cName
LOCAL cVersionId

nSuccess := 0

//  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.CreateSecret
//  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>
//  
//  {
//    "Name": "MyTestDatabaseSecret2",
//    "Description": "My test database secret created with the CLI",
//    "SecretString": "{\"username\":\"david\",\"password\":\"BnQw!XDWgaEeT9XGTT29\"}", "ClientRequestToken": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1"
//  }

oRest := CreateObject("Chilkat.Rest")

//  Connect to the Amazon AWS REST server.
//  such as https://secretsmanager.us-west-2.amazonaws.com/
nBTls := 1
nPort := 443
nBAutoReconnect := 1
nSuccess := oRest:Connect("secretsmanager.us-west-2.amazonaws.com", nPort, nBTls, nBAutoReconnect)

//  Provide AWS credentials for the REST call.
oAuthAws := CreateObject("Chilkat.AuthAws")
oAuthAws:AccessKey := "AWS_ACCESS_KEY"
oAuthAws:SecretKey := "AWS_SECRET_KEY"
//  the region should match our URL above..
oAuthAws:Region := "us-west-2"
oAuthAws:ServiceName := "secretsmanager"

oRest:SetAuthAws(oAuthAws)

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

oJson := CreateObject("Chilkat.JsonObject")

oJson:UpdateString("Name", "MyTestDatabaseSecret2")
oJson:UpdateString("Description", "My test database secret created with the CLI")
oJson:UpdateString("SecretString", '{"username":"david","password":"BnQw!XDWgaEeT9XGTT29"}')
oJson:UpdateString("ClientRequestToken", "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1")

oRest:AddHeader("Content-Type", "application/x-amz-json-1.1")
oRest:AddHeader("X-Amz-Target", "secretsmanager.CreateSecret")

oSbRequestBody := CreateObject("Chilkat.StringBuilder")
oJson:EmitSb(oSbRequestBody)
oSbResponseBody := CreateObject("Chilkat.StringBuilder")
nSuccess := oRest:FullRequestSb("POST", "/", oSbRequestBody, oSbResponseBody)
IF (nSuccess != 1)
    ? oRest:LastErrorText
    oRest:destroy()
    oAuthAws:destroy()
    oJson:destroy()
    oSbRequestBody:destroy()
    oSbResponseBody:destroy()
    RETURN
ENDIF

nRespStatusCode := oRest:ResponseStatusCode
? "response status code = " + Str(nRespStatusCode)

oJResp := CreateObject("Chilkat.JsonObject")
oJResp:EmitCompact := 0
oJResp:LoadSb(oSbResponseBody)

IF (nRespStatusCode >= 400)
    ? "Response Status Code = " + Str(nRespStatusCode)
    ? "Response Header:"
    ? oRest:ResponseHeader
    ? "Response Body:"
    ? oJResp:Emit()
    oRest:destroy()
    oAuthAws:destroy()
    oJson:destroy()
    oSbRequestBody:destroy()
    oSbResponseBody:destroy()
    oJResp:destroy()
    RETURN
ENDIF

? "Response Body:"
? oJResp:Emit()

//  Sample response body:

//  {
//    "ARN": "arn:aws:secretsmanager:us-west-2:954491834127:secret:MyTestDatabaseSecret2-F16Tps",
//    "Name": "MyTestDatabaseSecret2",
//    "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1"
//  }

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

cARN := oJResp:StringOf("ARN")
cName := oJResp:StringOf("Name")
cVersionId := oJResp:StringOf("VersionId")

oRest:destroy()
oAuthAws:destroy()
oJson:destroy()
oSbRequestBody:destroy()
oSbResponseBody:destroy()
oJResp:destroy()