DescribeFindings autoit Example
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
$oRest = ObjCreate("Chilkat_9_5_0.Rest")
Local $bSuccess
$oAuthAws = ObjCreate("Chilkat_9_5_0.AuthAws")
$oAuthAws.AccessKey = "AWS_ACCESS_KEY"
$oAuthAws.SecretKey = "AWS_SECRET_KEY"
; Don't forget to change the region to your particular region. (Also make the same change in the call to Connect below.)
$oAuthAws.Region = "us-west-2"
$oAuthAws.ServiceName = "inspector"
; SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
$oRest.SetAuthAws($oAuthAws)
; URL: https://inspector.us-west-2.amazonaws.com/
; Use the same region as specified above.
$bSuccess = $oRest.Connect("inspector.us-west-2.amazonaws.com",443,True,True)
If ($bSuccess <> True) Then
ConsoleWrite("ConnectFailReason: " & $oRest.ConnectFailReason & @CRLF)
ConsoleWrite($oRest.LastErrorText & @CRLF)
Exit
EndIf
; The following code creates the JSON request body.
; The JSON created by this code is shown below.
; Use this online tool to generate code from sample JSON:
; Generate Code to Create JSON
$oJson = ObjCreate("Chilkat_9_5_0.JsonObject")
$oJson.UpdateString("findingArns[0]","string")
$oJson.UpdateString("locale","string")
; The JSON request body created by the above code:
; {
; "findingArns": [
; "string"
; ],
; "locale": "string"
; }
$oRest.AddHeader("Content-Type","application/x-amz-json-1.1")
$oRest.AddHeader("X-Amz-Target","InspectorService.DescribeFindings")
$oSbRequestBody = ObjCreate("Chilkat_9_5_0.StringBuilder")
$oJson.EmitSb($oSbRequestBody)
$oSbResponseBody = ObjCreate("Chilkat_9_5_0.StringBuilder")
$bSuccess = $oRest.FullRequestSb("POST","/",$oSbRequestBody,$oSbResponseBody)
If ($bSuccess <> True) Then
ConsoleWrite($oRest.LastErrorText & @CRLF)
Exit
EndIf
Local $iRespStatusCode = $oRest.ResponseStatusCode
ConsoleWrite("response status code = " & $iRespStatusCode & @CRLF)
If ($iRespStatusCode <> 200) Then
ConsoleWrite("Response Header:" & @CRLF)
ConsoleWrite($oRest.ResponseHeader & @CRLF)
ConsoleWrite("Response Body:" & @CRLF)
ConsoleWrite($oSbResponseBody.GetAsString() & @CRLF)
Exit
EndIf
$oJResp = ObjCreate("Chilkat_9_5_0.JsonObject")
$oJResp.LoadSb($oSbResponseBody)
; The following code parses the JSON response.
; A sample JSON response is shown below the sample code.
; Use this online tool to generate parsing code from sample JSON:
; Generate Parsing Code from JSON
Local $sArn
Local $sAgentId
Local $sAmiId
Local $sAutoScalingGroup
Local $sHostname
Local $iSchemaVersion
Local $sAssetType
Local $iConfidence
Local $iCreatedAt
Local $sDescription
Local $sId
Local $indicatorOfCompromise
Local $iNumericSeverity
Local $sRecommendation
Local $iSchemaVersion
Local $service
Local $sAssessmentRunArn
Local $sRulesPackageArn
Local $iServiceAttributesSchemaVersion
Local $severity
Local $sTitle
Local $iUpdatedAt
Local $iJ
Local $iCount_j
Local $strVal
Local $sNetworkInterfaceId
Local $sPrivateDnsName
Local $sPrivateIpAddress
Local $sPublicDnsName
Local $sPublicIp
Local $subnetId
Local $sVpcId
Local $iK
Local $iCount_k
Local $sGroupId
Local $sGroupName
Local $sKey
Local $sValue
Local $sFailureCode = $oJResp.StringOf("failedItems.string.failureCode")
Local $iRetryable = $oJResp.IntOf("failedItems.string.retryable")
Local $i = 0
Local $iCount_i = $oJResp.SizeOfArray("findings")
While $i < $iCount_i
$oJResp.I = $i
$sArn = $oJResp.StringOf("findings[i].arn")
$sAgentId = $oJResp.StringOf("findings[i].assetAttributes.agentId")
$sAmiId = $oJResp.StringOf("findings[i].assetAttributes.amiId")
$sAutoScalingGroup = $oJResp.StringOf("findings[i].assetAttributes.autoScalingGroup")
$sHostname = $oJResp.StringOf("findings[i].assetAttributes.hostname")
$iSchemaVersion = $oJResp.IntOf("findings[i].assetAttributes.schemaVersion")
$sAssetType = $oJResp.StringOf("findings[i].assetType")
$iConfidence = $oJResp.IntOf("findings[i].confidence")
$iCreatedAt = $oJResp.IntOf("findings[i].createdAt")
$sDescription = $oJResp.StringOf("findings[i].description")
$sId = $oJResp.StringOf("findings[i].id")
$indicatorOfCompromise = $oJResp.IntOf("findings[i].indicatorOfCompromise")
$iNumericSeverity = $oJResp.IntOf("findings[i].numericSeverity")
$sRecommendation = $oJResp.StringOf("findings[i].recommendation")
$iSchemaVersion = $oJResp.IntOf("findings[i].schemaVersion")
$service = $oJResp.StringOf("findings[i].service")
$sAssessmentRunArn = $oJResp.StringOf("findings[i].serviceAttributes.assessmentRunArn")
$sRulesPackageArn = $oJResp.StringOf("findings[i].serviceAttributes.rulesPackageArn")
$iServiceAttributesSchemaVersion = $oJResp.IntOf("findings[i].serviceAttributes.schemaVersion")
$severity = $oJResp.StringOf("findings[i].severity")
$sTitle = $oJResp.StringOf("findings[i].title")
$iUpdatedAt = $oJResp.IntOf("findings[i].updatedAt")
$iJ = 0
$iCount_j = $oJResp.SizeOfArray("findings[i].assetAttributes.ipv4Addresses")
While $iJ < $iCount_j
$oJResp.J = $iJ
$strVal = $oJResp.StringOf("findings[i].assetAttributes.ipv4Addresses[j]")
$iJ = $iJ + 1
Wend
$iJ = 0
$iCount_j = $oJResp.SizeOfArray("findings[i].assetAttributes.networkInterfaces")
While $iJ < $iCount_j
$oJResp.J = $iJ
$sNetworkInterfaceId = $oJResp.StringOf("findings[i].assetAttributes.networkInterfaces[j].networkInterfaceId")
$sPrivateDnsName = $oJResp.StringOf("findings[i].assetAttributes.networkInterfaces[j].privateDnsName")
$sPrivateIpAddress = $oJResp.StringOf("findings[i].assetAttributes.networkInterfaces[j].privateIpAddress")
$sPublicDnsName = $oJResp.StringOf("findings[i].assetAttributes.networkInterfaces[j].publicDnsName")
$sPublicIp = $oJResp.StringOf("findings[i].assetAttributes.networkInterfaces[j].publicIp")
$subnetId = $oJResp.StringOf("findings[i].assetAttributes.networkInterfaces[j].subnetId")
$sVpcId = $oJResp.StringOf("findings[i].assetAttributes.networkInterfaces[j].vpcId")
$iK = 0
$iCount_k = $oJResp.SizeOfArray("findings[i].assetAttributes.networkInterfaces[j].ipv6Addresses")
While $iK < $iCount_k
$oJResp.K = $iK
$strVal = $oJResp.StringOf("findings[i].assetAttributes.networkInterfaces[j].ipv6Addresses[k]")
$iK = $iK + 1
Wend
$iK = 0
$iCount_k = $oJResp.SizeOfArray("findings[i].assetAttributes.networkInterfaces[j].privateIpAddresses")
While $iK < $iCount_k
$oJResp.K = $iK
$sPrivateDnsName = $oJResp.StringOf("findings[i].assetAttributes.networkInterfaces[j].privateIpAddresses[k].privateDnsName")
$sPrivateIpAddress = $oJResp.StringOf("findings[i].assetAttributes.networkInterfaces[j].privateIpAddresses[k].privateIpAddress")
$iK = $iK + 1
Wend
$iK = 0
$iCount_k = $oJResp.SizeOfArray("findings[i].assetAttributes.networkInterfaces[j].securityGroups")
While $iK < $iCount_k
$oJResp.K = $iK
$sGroupId = $oJResp.StringOf("findings[i].assetAttributes.networkInterfaces[j].securityGroups[k].groupId")
$sGroupName = $oJResp.StringOf("findings[i].assetAttributes.networkInterfaces[j].securityGroups[k].groupName")
$iK = $iK + 1
Wend
$iJ = $iJ + 1
Wend
$iJ = 0
$iCount_j = $oJResp.SizeOfArray("findings[i].assetAttributes.tags")
While $iJ < $iCount_j
$oJResp.J = $iJ
$sKey = $oJResp.StringOf("findings[i].assetAttributes.tags[j].key")
$sValue = $oJResp.StringOf("findings[i].assetAttributes.tags[j].value")
$iJ = $iJ + 1
Wend
$iJ = 0
$iCount_j = $oJResp.SizeOfArray("findings[i].attributes")
While $iJ < $iCount_j
$oJResp.J = $iJ
$sKey = $oJResp.StringOf("findings[i].attributes[j].key")
$sValue = $oJResp.StringOf("findings[i].attributes[j].value")
$iJ = $iJ + 1
Wend
$iJ = 0
$iCount_j = $oJResp.SizeOfArray("findings[i].userAttributes")
While $iJ < $iCount_j
$oJResp.J = $iJ
$sKey = $oJResp.StringOf("findings[i].userAttributes[j].key")
$sValue = $oJResp.StringOf("findings[i].userAttributes[j].value")
$iJ = $iJ + 1
Wend
$i = $i + 1
Wend
; A sample JSON response body parsed by the above code:
; {
; "failedItems": {
; "string": {
; "failureCode": "string",
; "retryable": boolean
; }
; },
; "findings": [
; {
; "arn": "string",
; "assetAttributes": {
; "agentId": "string",
; "amiId": "string",
; "autoScalingGroup": "string",
; "hostname": "string",
; "ipv4Addresses": [
; "string"
; ],
; "networkInterfaces": [
; {
; "ipv6Addresses": [
; "string"
; ],
; "networkInterfaceId": "string",
; "privateDnsName": "string",
; "privateIpAddress": "string",
; "privateIpAddresses": [
; {
; "privateDnsName": "string",
; "privateIpAddress": "string"
; }
; ],
; "publicDnsName": "string",
; "publicIp": "string",
; "securityGroups": [
; {
; "groupId": "string",
; "groupName": "string"
; }
; ],
; "subnetId": "string",
; "vpcId": "string"
; }
; ],
; "schemaVersion": number,
; "tags": [
; {
; "key": "string",
; "value": "string"
; }
; ]
; },
; "assetType": "string",
; "attributes": [
; {
; "key": "string",
; "value": "string"
; }
; ],
; "confidence": number,
; "createdAt": number,
; "description": "string",
; "id": "string",
; "indicatorOfCompromise": boolean,
; "numericSeverity": number,
; "recommendation": "string",
; "schemaVersion": number,
; "service": "string",
; "serviceAttributes": {
; "assessmentRunArn": "string",
; "rulesPackageArn": "string",
; "schemaVersion": number
; },
; "severity": "string",
; "title": "string",
; "updatedAt": number,
; "userAttributes": [
; {
; "key": "string",
; "value": "string"
; }
; ]
; }
; ]
; }