Chilkat Online Tools

DescribeJobDefinitions autoit Example

AWS Batch

; 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 = "batch"
; SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
$oRest.SetAuthAws($oAuthAws)

; URL: https://batch.us-west-2.amazonaws.com/
; Use the same region as specified above.
$bSuccess = $oRest.Connect("batch.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("jobDefinitionName","string")
$oJson.UpdateString("jobDefinitions[0]","string")
$oJson.UpdateInt("maxResults",123)
$oJson.UpdateString("nextToken","string")
$oJson.UpdateString("status","string")

; The JSON request body created by the above code:

; {
;   "jobDefinitionName": "string",
;   "jobDefinitions": [
;     "string"
;   ],
;   "maxResults": number,
;   "nextToken": "string",
;   "status": "string"
; }

$oRest.AddHeader("Content-Type","application/x-amz-json-1.1")
$oRest.AddHeader("X-Amz-Target","DescribeJobDefinitions")

$oSbRequestBody = ObjCreate("Chilkat_9_5_0.StringBuilder")
$oJson.EmitSb($oSbRequestBody)
$oSbResponseBody = ObjCreate("Chilkat_9_5_0.StringBuilder")
$bSuccess = $oRest.FullRequestSb("POST","/v1/describejobdefinitions",$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 $sExecutionRoleArn
Local $sPlatformVersion
Local $sImage
Local $sInstanceType
Local $sJobRoleArn
Local $iInitProcessEnabled
Local $iMaxSwap
Local $iSharedMemorySize
Local $iSwappiness
Local $sLogDriver
Local $sV_String
Local $iMemory
Local $sAssignPublicIp
Local $iPrivileged
Local $iReadonlyRootFilesystem
Local $sUser
Local $iVcpus
Local $sJobDefinitionArn
Local $sJobDefinitionName
Local $iMainNode
Local $iNumNodes
Local $sParametersString
Local $iPropagateTags
Local $iAttempts
Local $iRevision
Local $iSchedulingPriority
Local $status
Local $sTagsString
Local $iAttemptDurationSeconds
Local $sV_type
Local $iJ
Local $iCount_j
Local $strVal
Local $sName
Local $sValue
Local $sContainerPath
Local $sHostPath
Local $iK
Local $iCount_k
Local $iSize
Local $sValueFrom
Local $iReadOnly
Local $sourceVolume
Local $iHardLimit
Local $iSoftLimit
Local $sAccessPointId
Local $sIam
Local $sFileSystemId
Local $sRootDirectory
Local $sTransitEncryption
Local $iTransitEncryptionPort
Local $sSourcePath
Local $sContainerExecutionRoleArn
Local $sFargatePlatformConfigurationPlatformVersion
Local $sContainerImage
Local $sContainerInstanceType
Local $sContainerJobRoleArn
Local $iLinuxParametersInitProcessEnabled
Local $iLinuxParametersMaxSwap
Local $iLinuxParametersSharedMemorySize
Local $iLinuxParametersSwappiness
Local $sLogConfigurationLogDriver
Local $sOptionsString
Local $iContainerMemory
Local $sNetworkConfigurationAssignPublicIp
Local $iContainerPrivileged
Local $iContainerReadonlyRootFilesystem
Local $sContainerUser
Local $iContainerVcpus
Local $sTargetNodes
Local $oJson1
Local $i1
Local $iCount_i1
Local $sAuthorizationConfigAccessPointId
Local $sAuthorizationConfigIam
Local $sEfsVolumeConfigurationFileSystemId
Local $sEfsVolumeConfigurationRootDirectory
Local $sEfsVolumeConfigurationTransitEncryption
Local $iEfsVolumeConfigurationTransitEncryptionPort
Local $sHostSourcePath
Local $sAction
Local $sOnExitCode
Local $sOnReason
Local $sOnStatusReason

Local $sNextToken = $oJResp.StringOf("nextToken")
Local $i = 0
Local $iCount_i = $oJResp.SizeOfArray("jobDefinitions")
While $i < $iCount_i
    $oJResp.I = $i
    $sExecutionRoleArn = $oJResp.StringOf("jobDefinitions[i].containerProperties.executionRoleArn")
    $sPlatformVersion = $oJResp.StringOf("jobDefinitions[i].containerProperties.fargatePlatformConfiguration.platformVersion")
    $sImage = $oJResp.StringOf("jobDefinitions[i].containerProperties.image")
    $sInstanceType = $oJResp.StringOf("jobDefinitions[i].containerProperties.instanceType")
    $sJobRoleArn = $oJResp.StringOf("jobDefinitions[i].containerProperties.jobRoleArn")
    $iInitProcessEnabled = $oJResp.IntOf("jobDefinitions[i].containerProperties.linuxParameters.initProcessEnabled")
    $iMaxSwap = $oJResp.IntOf("jobDefinitions[i].containerProperties.linuxParameters.maxSwap")
    $iSharedMemorySize = $oJResp.IntOf("jobDefinitions[i].containerProperties.linuxParameters.sharedMemorySize")
    $iSwappiness = $oJResp.IntOf("jobDefinitions[i].containerProperties.linuxParameters.swappiness")
    $sLogDriver = $oJResp.StringOf("jobDefinitions[i].containerProperties.logConfiguration.logDriver")
    $sV_String = $oJResp.StringOf("jobDefinitions[i].containerProperties.logConfiguration.options.string")
    $iMemory = $oJResp.IntOf("jobDefinitions[i].containerProperties.memory")
    $sAssignPublicIp = $oJResp.StringOf("jobDefinitions[i].containerProperties.networkConfiguration.assignPublicIp")
    $iPrivileged = $oJResp.IntOf("jobDefinitions[i].containerProperties.privileged")
    $iReadonlyRootFilesystem = $oJResp.IntOf("jobDefinitions[i].containerProperties.readonlyRootFilesystem")
    $sUser = $oJResp.StringOf("jobDefinitions[i].containerProperties.user")
    $iVcpus = $oJResp.IntOf("jobDefinitions[i].containerProperties.vcpus")
    $sJobDefinitionArn = $oJResp.StringOf("jobDefinitions[i].jobDefinitionArn")
    $sJobDefinitionName = $oJResp.StringOf("jobDefinitions[i].jobDefinitionName")
    $iMainNode = $oJResp.IntOf("jobDefinitions[i].nodeProperties.mainNode")
    $iNumNodes = $oJResp.IntOf("jobDefinitions[i].nodeProperties.numNodes")
    $sParametersString = $oJResp.StringOf("jobDefinitions[i].parameters.string")
    $iPropagateTags = $oJResp.IntOf("jobDefinitions[i].propagateTags")
    $iAttempts = $oJResp.IntOf("jobDefinitions[i].retryStrategy.attempts")
    $iRevision = $oJResp.IntOf("jobDefinitions[i].revision")
    $iSchedulingPriority = $oJResp.IntOf("jobDefinitions[i].schedulingPriority")
    $status = $oJResp.StringOf("jobDefinitions[i].status")
    $sTagsString = $oJResp.StringOf("jobDefinitions[i].tags.string")
    $iAttemptDurationSeconds = $oJResp.IntOf("jobDefinitions[i].timeout.attemptDurationSeconds")
    $sV_type = $oJResp.StringOf("jobDefinitions[i].type")
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("jobDefinitions[i].containerProperties.command")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $strVal = $oJResp.StringOf("jobDefinitions[i].containerProperties.command[j]")
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("jobDefinitions[i].containerProperties.environment")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $sName = $oJResp.StringOf("jobDefinitions[i].containerProperties.environment[j].name")
        $sValue = $oJResp.StringOf("jobDefinitions[i].containerProperties.environment[j].value")
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("jobDefinitions[i].containerProperties.linuxParameters.devices")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $sContainerPath = $oJResp.StringOf("jobDefinitions[i].containerProperties.linuxParameters.devices[j].containerPath")
        $sHostPath = $oJResp.StringOf("jobDefinitions[i].containerProperties.linuxParameters.devices[j].hostPath")
        $iK = 0
        $iCount_k = $oJResp.SizeOfArray("jobDefinitions[i].containerProperties.linuxParameters.devices[j].permissions")
        While $iK < $iCount_k
            $oJResp.K = $iK
            $strVal = $oJResp.StringOf("jobDefinitions[i].containerProperties.linuxParameters.devices[j].permissions[k]")
            $iK = $iK + 1
        Wend
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("jobDefinitions[i].containerProperties.linuxParameters.tmpfs")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $sContainerPath = $oJResp.StringOf("jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].containerPath")
        $iSize = $oJResp.IntOf("jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].size")
        $iK = 0
        $iCount_k = $oJResp.SizeOfArray("jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].mountOptions")
        While $iK < $iCount_k
            $oJResp.K = $iK
            $strVal = $oJResp.StringOf("jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].mountOptions[k]")
            $iK = $iK + 1
        Wend
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("jobDefinitions[i].containerProperties.logConfiguration.secretOptions")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $sName = $oJResp.StringOf("jobDefinitions[i].containerProperties.logConfiguration.secretOptions[j].name")
        $sValueFrom = $oJResp.StringOf("jobDefinitions[i].containerProperties.logConfiguration.secretOptions[j].valueFrom")
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("jobDefinitions[i].containerProperties.mountPoints")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $sContainerPath = $oJResp.StringOf("jobDefinitions[i].containerProperties.mountPoints[j].containerPath")
        $iReadOnly = $oJResp.IntOf("jobDefinitions[i].containerProperties.mountPoints[j].readOnly")
        $sourceVolume = $oJResp.StringOf("jobDefinitions[i].containerProperties.mountPoints[j].sourceVolume")
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("jobDefinitions[i].containerProperties.resourceRequirements")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $sV_type = $oJResp.StringOf("jobDefinitions[i].containerProperties.resourceRequirements[j].type")
        $sValue = $oJResp.StringOf("jobDefinitions[i].containerProperties.resourceRequirements[j].value")
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("jobDefinitions[i].containerProperties.secrets")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $sName = $oJResp.StringOf("jobDefinitions[i].containerProperties.secrets[j].name")
        $sValueFrom = $oJResp.StringOf("jobDefinitions[i].containerProperties.secrets[j].valueFrom")
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("jobDefinitions[i].containerProperties.ulimits")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $iHardLimit = $oJResp.IntOf("jobDefinitions[i].containerProperties.ulimits[j].hardLimit")
        $sName = $oJResp.StringOf("jobDefinitions[i].containerProperties.ulimits[j].name")
        $iSoftLimit = $oJResp.IntOf("jobDefinitions[i].containerProperties.ulimits[j].softLimit")
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("jobDefinitions[i].containerProperties.volumes")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $sAccessPointId = $oJResp.StringOf("jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.authorizationConfig.accessPointId")
        $sIam = $oJResp.StringOf("jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.authorizationConfig.iam")
        $sFileSystemId = $oJResp.StringOf("jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.fileSystemId")
        $sRootDirectory = $oJResp.StringOf("jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.rootDirectory")
        $sTransitEncryption = $oJResp.StringOf("jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.transitEncryption")
        $iTransitEncryptionPort = $oJResp.IntOf("jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.transitEncryptionPort")
        $sSourcePath = $oJResp.StringOf("jobDefinitions[i].containerProperties.volumes[j].host.sourcePath")
        $sName = $oJResp.StringOf("jobDefinitions[i].containerProperties.volumes[j].name")
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("jobDefinitions[i].nodeProperties.nodeRangeProperties")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $sContainerExecutionRoleArn = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.executionRoleArn")
        $sFargatePlatformConfigurationPlatformVersion = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.fargatePlatformConfiguration.platformVersion")
        $sContainerImage = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.image")
        $sContainerInstanceType = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.instanceType")
        $sContainerJobRoleArn = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.jobRoleArn")
        $iLinuxParametersInitProcessEnabled = $oJResp.IntOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.initProcessEnabled")
        $iLinuxParametersMaxSwap = $oJResp.IntOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.maxSwap")
        $iLinuxParametersSharedMemorySize = $oJResp.IntOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.sharedMemorySize")
        $iLinuxParametersSwappiness = $oJResp.IntOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.swappiness")
        $sLogConfigurationLogDriver = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.logDriver")
        $sOptionsString = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.options.string")
        $iContainerMemory = $oJResp.IntOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.memory")
        $sNetworkConfigurationAssignPublicIp = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.networkConfiguration.assignPublicIp")
        $iContainerPrivileged = $oJResp.IntOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.privileged")
        $iContainerReadonlyRootFilesystem = $oJResp.IntOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.readonlyRootFilesystem")
        $sContainerUser = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.user")
        $iContainerVcpus = $oJResp.IntOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.vcpus")
        $sTargetNodes = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].targetNodes")
        $iK = 0
        $iCount_k = $oJResp.SizeOfArray("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.command")
        While $iK < $iCount_k
            $oJResp.K = $iK
            $strVal = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.command[k]")
            $iK = $iK + 1
        Wend
        $iK = 0
        $iCount_k = $oJResp.SizeOfArray("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.environment")
        While $iK < $iCount_k
            $oJResp.K = $iK
            $sName = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.environment[k].name")
            $sValue = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.environment[k].value")
            $iK = $iK + 1
        Wend
        $iK = 0
        $iCount_k = $oJResp.SizeOfArray("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices")
        While $iK < $iCount_k
            $oJResp.K = $iK
            $sContainerPath = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices[k].containerPath")
            $sHostPath = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices[k].hostPath")

            $oJson1 = $oJResp.ObjectOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices[k]")
            $i1 = 0
            $iCount_i1 = $oJson1.SizeOfArray("permissions")
            While $i1 < $iCount_i1
                $oJson1.I = $i1
                $strVal = $oJson1.StringOf("permissions[i]")
                $i1 = $i1 + 1
            Wend

            $iK = $iK + 1
        Wend
        $iK = 0
        $iCount_k = $oJResp.SizeOfArray("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs")
        While $iK < $iCount_k
            $oJResp.K = $iK
            $sContainerPath = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs[k].containerPath")
            $iSize = $oJResp.IntOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs[k].size")

            $oJson1 = $oJResp.ObjectOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs[k]")
            $i1 = 0
            $iCount_i1 = $oJson1.SizeOfArray("mountOptions")
            While $i1 < $iCount_i1
                $oJson1.I = $i1
                $strVal = $oJson1.StringOf("mountOptions[i]")
                $i1 = $i1 + 1
            Wend

            $iK = $iK + 1
        Wend
        $iK = 0
        $iCount_k = $oJResp.SizeOfArray("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.secretOptions")
        While $iK < $iCount_k
            $oJResp.K = $iK
            $sName = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.secretOptions[k].name")
            $sValueFrom = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.secretOptions[k].valueFrom")
            $iK = $iK + 1
        Wend
        $iK = 0
        $iCount_k = $oJResp.SizeOfArray("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints")
        While $iK < $iCount_k
            $oJResp.K = $iK
            $sContainerPath = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints[k].containerPath")
            $iReadOnly = $oJResp.IntOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints[k].readOnly")
            $sourceVolume = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints[k].sourceVolume")
            $iK = $iK + 1
        Wend
        $iK = 0
        $iCount_k = $oJResp.SizeOfArray("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.resourceRequirements")
        While $iK < $iCount_k
            $oJResp.K = $iK
            $sV_type = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.resourceRequirements[k].type")
            $sValue = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.resourceRequirements[k].value")
            $iK = $iK + 1
        Wend
        $iK = 0
        $iCount_k = $oJResp.SizeOfArray("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.secrets")
        While $iK < $iCount_k
            $oJResp.K = $iK
            $sName = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.secrets[k].name")
            $sValueFrom = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.secrets[k].valueFrom")
            $iK = $iK + 1
        Wend
        $iK = 0
        $iCount_k = $oJResp.SizeOfArray("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits")
        While $iK < $iCount_k
            $oJResp.K = $iK
            $iHardLimit = $oJResp.IntOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits[k].hardLimit")
            $sName = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits[k].name")
            $iSoftLimit = $oJResp.IntOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits[k].softLimit")
            $iK = $iK + 1
        Wend
        $iK = 0
        $iCount_k = $oJResp.SizeOfArray("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes")
        While $iK < $iCount_k
            $oJResp.K = $iK
            $sAuthorizationConfigAccessPointId = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.authorizationConfig.accessPointId")
            $sAuthorizationConfigIam = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.authorizationConfig.iam")
            $sEfsVolumeConfigurationFileSystemId = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.fileSystemId")
            $sEfsVolumeConfigurationRootDirectory = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.rootDirectory")
            $sEfsVolumeConfigurationTransitEncryption = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.transitEncryption")
            $iEfsVolumeConfigurationTransitEncryptionPort = $oJResp.IntOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.transitEncryptionPort")
            $sHostSourcePath = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].host.sourcePath")
            $sName = $oJResp.StringOf("jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].name")
            $iK = $iK + 1
        Wend
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("jobDefinitions[i].platformCapabilities")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $strVal = $oJResp.StringOf("jobDefinitions[i].platformCapabilities[j]")
        $iJ = $iJ + 1
    Wend
    $iJ = 0
    $iCount_j = $oJResp.SizeOfArray("jobDefinitions[i].retryStrategy.evaluateOnExit")
    While $iJ < $iCount_j
        $oJResp.J = $iJ
        $sAction = $oJResp.StringOf("jobDefinitions[i].retryStrategy.evaluateOnExit[j].action")
        $sOnExitCode = $oJResp.StringOf("jobDefinitions[i].retryStrategy.evaluateOnExit[j].onExitCode")
        $sOnReason = $oJResp.StringOf("jobDefinitions[i].retryStrategy.evaluateOnExit[j].onReason")
        $sOnStatusReason = $oJResp.StringOf("jobDefinitions[i].retryStrategy.evaluateOnExit[j].onStatusReason")
        $iJ = $iJ + 1
    Wend
    $i = $i + 1
Wend

; A sample JSON response body parsed by the above code:

; {
;   "jobDefinitions": [
;     {
;       "containerProperties": {
;         "command": [
;           "string"
;         ],
;         "environment": [
;           {
;             "name": "string",
;             "value": "string"
;           }
;         ],
;         "executionRoleArn": "string",
;         "fargatePlatformConfiguration": {
;           "platformVersion": "string"
;         },
;         "image": "string",
;         "instanceType": "string",
;         "jobRoleArn": "string",
;         "linuxParameters": {
;           "devices": [
;             {
;               "containerPath": "string",
;               "hostPath": "string",
;               "permissions": [
;                 "string"
;               ]
;             }
;           ],
;           "initProcessEnabled": boolean,
;           "maxSwap": number,
;           "sharedMemorySize": number,
;           "swappiness": number,
;           "tmpfs": [
;             {
;               "containerPath": "string",
;               "mountOptions": [
;                 "string"
;               ],
;               "size": number
;             }
;           ]
;         },
;         "logConfiguration": {
;           "logDriver": "string",
;           "options": {
;             "string": "string"
;           },
;           "secretOptions": [
;             {
;               "name": "string",
;               "valueFrom": "string"
;             }
;           ]
;         },
;         "memory": number,
;         "mountPoints": [
;           {
;             "containerPath": "string",
;             "readOnly": boolean,
;             "sourceVolume": "string"
;           }
;         ],
;         "networkConfiguration": {
;           "assignPublicIp": "string"
;         },
;         "privileged": boolean,
;         "readonlyRootFilesystem": boolean,
;         "resourceRequirements": [
;           {
;             "type": "string",
;             "value": "string"
;           }
;         ],
;         "secrets": [
;           {
;             "name": "string",
;             "valueFrom": "string"
;           }
;         ],
;         "ulimits": [
;           {
;             "hardLimit": number,
;             "name": "string",
;             "softLimit": number
;           }
;         ],
;         "user": "string",
;         "vcpus": number,
;         "volumes": [
;           {
;             "efsVolumeConfiguration": {
;               "authorizationConfig": {
;                 "accessPointId": "string",
;                 "iam": "string"
;               },
;               "fileSystemId": "string",
;               "rootDirectory": "string",
;               "transitEncryption": "string",
;               "transitEncryptionPort": number
;             },
;             "host": {
;               "sourcePath": "string"
;             },
;             "name": "string"
;           }
;         ]
;       },
;       "jobDefinitionArn": "string",
;       "jobDefinitionName": "string",
;       "nodeProperties": {
;         "mainNode": number,
;         "nodeRangeProperties": [
;           {
;             "container": {
;               "command": [
;                 "string"
;               ],
;               "environment": [
;                 {
;                   "name": "string",
;                   "value": "string"
;                 }
;               ],
;               "executionRoleArn": "string",
;               "fargatePlatformConfiguration": {
;                 "platformVersion": "string"
;               },
;               "image": "string",
;               "instanceType": "string",
;               "jobRoleArn": "string",
;               "linuxParameters": {
;                 "devices": [
;                   {
;                     "containerPath": "string",
;                     "hostPath": "string",
;                     "permissions": [
;                       "string"
;                     ]
;                   }
;                 ],
;                 "initProcessEnabled": boolean,
;                 "maxSwap": number,
;                 "sharedMemorySize": number,
;                 "swappiness": number,
;                 "tmpfs": [
;                   {
;                     "containerPath": "string",
;                     "mountOptions": [
;                       "string"
;                     ],
;                     "size": number
;                   }
;                 ]
;               },
;               "logConfiguration": {
;                 "logDriver": "string",
;                 "options": {
;                   "string": "string"
;                 },
;                 "secretOptions": [
;                   {
;                     "name": "string",
;                     "valueFrom": "string"
;                   }
;                 ]
;               },
;               "memory": number,
;               "mountPoints": [
;                 {
;                   "containerPath": "string",
;                   "readOnly": boolean,
;                   "sourceVolume": "string"
;                 }
;               ],
;               "networkConfiguration": {
;                 "assignPublicIp": "string"
;               },
;               "privileged": boolean,
;               "readonlyRootFilesystem": boolean,
;               "resourceRequirements": [
;                 {
;                   "type": "string",
;                   "value": "string"
;                 }
;               ],
;               "secrets": [
;                 {
;                   "name": "string",
;                   "valueFrom": "string"
;                 }
;               ],
;               "ulimits": [
;                 {
;                   "hardLimit": number,
;                   "name": "string",
;                   "softLimit": number
;                 }
;               ],
;               "user": "string",
;               "vcpus": number,
;               "volumes": [
;                 {
;                   "efsVolumeConfiguration": {
;                     "authorizationConfig": {
;                       "accessPointId": "string",
;                       "iam": "string"
;                     },
;                     "fileSystemId": "string",
;                     "rootDirectory": "string",
;                     "transitEncryption": "string",
;                     "transitEncryptionPort": number
;                   },
;                   "host": {
;                     "sourcePath": "string"
;                   },
;                   "name": "string"
;                 }
;               ]
;             },
;             "targetNodes": "string"
;           }
;         ],
;         "numNodes": number
;       },
;       "parameters": {
;         "string": "string"
;       },
;       "platformCapabilities": [
;         "string"
;       ],
;       "propagateTags": boolean,
;       "retryStrategy": {
;         "attempts": number,
;         "evaluateOnExit": [
;           {
;             "action": "string",
;             "onExitCode": "string",
;             "onReason": "string",
;             "onStatusReason": "string"
;           }
;         ]
;       },
;       "revision": number,
;       "schedulingPriority": number,
;       "status": "string",
;       "tags": {
;         "string": "string"
;       },
;       "timeout": {
;         "attemptDurationSeconds": number
;       },
;       "type": "string"
;     }
;   ],
;   "nextToken": "string"
; }