Sample code for 30+ languages & platforms
DataFlex

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

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoRest
    Boolean iBTls
    Integer iPort
    Boolean iBAutoReconnect
    Variant vAuthAws
    Handle hoAuthAws
    String sStrResponse
    Integer iRespStatusCode
    Handle hoJResp
    String sARN
    String sDescription
    String sLastChangedDate
    String sName
    String sStrVal
    Variant vJson2
    Handle hoJson2
    Variant vJarr
    Handle hoJarr
    Integer i
    Integer iCount_i
    Integer iCount
    Integer j
    String sVersionName
    String sStage
    String sTemp1
    Boolean bTemp1

    Move False To iSuccess

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

    Get Create (RefClass(cComChilkatRest)) To hoRest
    If (Not(IsComObjectCreated(hoRest))) Begin
        Send CreateComObject of hoRest
    End

    // Connect to the Amazon AWS REST server.
    // such as https://secretsmanager.us-west-2.amazonaws.com/
    Move True To iBTls
    Move 443 To iPort
    Move True To iBAutoReconnect
    Get ComConnect Of hoRest "secretsmanager.us-west-2.amazonaws.com" iPort iBTls iBAutoReconnect To iSuccess

    // Provide AWS credentials for the REST call.
    Get Create (RefClass(cComChilkatAuthAws)) To hoAuthAws
    If (Not(IsComObjectCreated(hoAuthAws))) Begin
        Send CreateComObject of hoAuthAws
    End
    Set ComAccessKey Of hoAuthAws To "AWS_ACCESS_KEY"
    Set ComSecretKey Of hoAuthAws To "AWS_SECRET_KEY"
    // the region should match our URL above..
    Set ComRegion Of hoAuthAws To "us-west-2"
    Set ComServiceName Of hoAuthAws To "secretsmanager"

    Get pvComObject of hoAuthAws to vAuthAws
    Get ComSetAuthAws Of hoRest vAuthAws To iSuccess

    Get ComAddHeader Of hoRest "Content-Type" "application/x-amz-json-1.1" To iSuccess
    Get ComAddHeader Of hoRest "X-Amz-Target" "secretsmanager.ListSecrets" To iSuccess

    Get ComFullRequestString Of hoRest "POST" "/" "{}" To sStrResponse
    Get ComLastMethodSuccess Of hoRest To bTemp1
    If (bTemp1 = False) Begin
        Get ComLastErrorText Of hoRest To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComResponseStatusCode Of hoRest To iRespStatusCode
    Showln "response status code = " iRespStatusCode

    Get Create (RefClass(cComChilkatJsonObject)) To hoJResp
    If (Not(IsComObjectCreated(hoJResp))) Begin
        Send CreateComObject of hoJResp
    End
    Set ComEmitCompact Of hoJResp To False
    Get ComLoad Of hoJResp sStrResponse To iSuccess

    If (iRespStatusCode >= 400) Begin
        Showln "Response Status Code = " iRespStatusCode
        Showln "Response Header:"
        Get ComResponseHeader Of hoRest To sTemp1
        Showln sTemp1
        Showln "Response Body:"
        Get ComEmit Of hoJResp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln "Response Body:"
    Get ComEmit Of hoJResp To sTemp1
    Showln sTemp1

    // 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"]
    //       }
    //     }
    //   ]
    // }

    Get Create (RefClass(cComChilkatJsonObject)) To hoJson2
    If (Not(IsComObjectCreated(hoJson2))) Begin
        Send CreateComObject of hoJson2
    End
    Get Create (RefClass(cComChilkatJsonArray)) To hoJarr
    If (Not(IsComObjectCreated(hoJarr))) Begin
        Send CreateComObject of hoJarr
    End

    Move 0 To i
    Get ComSizeOfArray Of hoJResp "SecretList" To iCount_i
    While (i < iCount_i)
        Set ComI Of hoJResp To i
        Get ComStringOf Of hoJResp "SecretList[i].ARN" To sARN
        Get ComStringOf Of hoJResp "SecretList[i].Description" To sDescription
        Get ComStringOf Of hoJResp "SecretList[i].LastChangedDate" To sLastChangedDate
        Get ComStringOf Of hoJResp "SecretList[i].Name" To sName

        Get pvComObject of hoJson2 to vJson2
        Get ComObjectOf2 Of hoJResp "SecretList[i].SecretVersionsToStages" vJson2 To iSuccess
        Get ComSize Of hoJson2 To iCount
        Move 0 To j
        While (j < iCount)
            Get ComNameAt Of hoJson2 j To sVersionName
            Get pvComObject of hoJarr to vJarr
            Get ComArrayOf2 Of hoJson2 sVersionName vJarr To iSuccess
            Get ComStringAt Of hoJarr 0 To sStage
            Showln "versionName = " sVersionName
            Showln "stage = " sStage
            Move (j + 1) To j
        Loop

        Move (i + 1) To i
    Loop



End_Procedure