Chilkat Online Tools

DescribeJobs Powershell Example

AWS Batch

Add-Type -Path "C:\chilkat\ChilkatDotNet47-9.5.0-x64\ChilkatDotNet47.dll"

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

$rest = New-Object Chilkat.Rest

$authAws = New-Object Chilkat.AuthAws
$authAws.AccessKey = "AWS_ACCESS_KEY"
$authAws.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.)
$authAws.Region = "us-west-2"
$authAws.ServiceName = "batch"
# SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
$rest.SetAuthAws($authAws)

# URL: https://batch.us-west-2.amazonaws.com/
# Use the same region as specified above.
$success = $rest.Connect("batch.us-west-2.amazonaws.com",443,$true,$true)
if ($success -ne $true) {
    $("ConnectFailReason: " + $rest.ConnectFailReason)
    $($rest.LastErrorText)
    exit
}

# 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

$json = New-Object Chilkat.JsonObject
$json.UpdateString("jobs[0]","string")

# The JSON request body created by the above code:

# {
#   "jobs": [
#     "string"
#   ]
# }

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

$sbRequestBody = New-Object Chilkat.StringBuilder
$json.EmitSb($sbRequestBody)
$sbResponseBody = New-Object Chilkat.StringBuilder
$success = $rest.FullRequestSb("POST","/v1/describejobs",$sbRequestBody,$sbResponseBody)
if ($success -ne $true) {
    $($rest.LastErrorText)
    exit
}

$respStatusCode = $rest.ResponseStatusCode
$("response status code = " + $respStatusCode)
if ($respStatusCode -ne 200) {
    $("Response Header:")
    $($rest.ResponseHeader)
    $("Response Body:")
    $($sbResponseBody.GetAsString())
    exit
}

$jResp = New-Object Chilkat.JsonObject
$jResp.LoadSb($sbResponseBody)

# 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

$i = 0
$count_i = $jResp.SizeOfArray("jobs")
while ($i -lt $count_i) {
    $jResp.I = $i
    $Index = $jResp.IntOf("jobs[i].arrayProperties.index")
    $Size = $jResp.IntOf("jobs[i].arrayProperties.size")
    $v_String = $jResp.IntOf("jobs[i].arrayProperties.statusSummary.string")
    $ContainerInstanceArn = $jResp.StringOf("jobs[i].container.containerInstanceArn")
    $ExecutionRoleArn = $jResp.StringOf("jobs[i].container.executionRoleArn")
    $ExitCode = $jResp.IntOf("jobs[i].container.exitCode")
    $PlatformVersion = $jResp.StringOf("jobs[i].container.fargatePlatformConfiguration.platformVersion")
    $Image = $jResp.StringOf("jobs[i].container.image")
    $InstanceType = $jResp.StringOf("jobs[i].container.instanceType")
    $JobRoleArn = $jResp.StringOf("jobs[i].container.jobRoleArn")
    $InitProcessEnabled = $jResp.IntOf("jobs[i].container.linuxParameters.initProcessEnabled")
    $MaxSwap = $jResp.IntOf("jobs[i].container.linuxParameters.maxSwap")
    $SharedMemorySize = $jResp.IntOf("jobs[i].container.linuxParameters.sharedMemorySize")
    $Swappiness = $jResp.IntOf("jobs[i].container.linuxParameters.swappiness")
    $LogDriver = $jResp.StringOf("jobs[i].container.logConfiguration.logDriver")
    $OptionsString = $jResp.StringOf("jobs[i].container.logConfiguration.options.string")
    $LogStreamName = $jResp.StringOf("jobs[i].container.logStreamName")
    $Memory = $jResp.IntOf("jobs[i].container.memory")
    $AssignPublicIp = $jResp.StringOf("jobs[i].container.networkConfiguration.assignPublicIp")
    $Privileged = $jResp.IntOf("jobs[i].container.privileged")
    $ReadonlyRootFilesystem = $jResp.IntOf("jobs[i].container.readonlyRootFilesystem")
    $Reason = $jResp.StringOf("jobs[i].container.reason")
    $TaskArn = $jResp.StringOf("jobs[i].container.taskArn")
    $User = $jResp.StringOf("jobs[i].container.user")
    $Vcpus = $jResp.IntOf("jobs[i].container.vcpus")
    $createdAt = $jResp.IntOf("jobs[i].createdAt")
    $jobArn = $jResp.StringOf("jobs[i].jobArn")
    $jobDefinition = $jResp.StringOf("jobs[i].jobDefinition")
    $jobId = $jResp.StringOf("jobs[i].jobId")
    $jobName = $jResp.StringOf("jobs[i].jobName")
    $jobQueue = $jResp.StringOf("jobs[i].jobQueue")
    $IsMainNode = $jResp.IntOf("jobs[i].nodeDetails.isMainNode")
    $NodeIndex = $jResp.IntOf("jobs[i].nodeDetails.nodeIndex")
    $MainNode = $jResp.IntOf("jobs[i].nodeProperties.mainNode")
    $NumNodes = $jResp.IntOf("jobs[i].nodeProperties.numNodes")
    $parametersString = $jResp.StringOf("jobs[i].parameters.string")
    $propagateTags = $jResp.IntOf("jobs[i].propagateTags")
    $Attempts = $jResp.IntOf("jobs[i].retryStrategy.attempts")
    $schedulingPriority = $jResp.IntOf("jobs[i].schedulingPriority")
    $shareIdentifier = $jResp.StringOf("jobs[i].shareIdentifier")
    $startedAt = $jResp.IntOf("jobs[i].startedAt")
    $status = $jResp.StringOf("jobs[i].status")
    $statusReason = $jResp.StringOf("jobs[i].statusReason")
    $stoppedAt = $jResp.IntOf("jobs[i].stoppedAt")
    $tagsString = $jResp.StringOf("jobs[i].tags.string")
    $AttemptDurationSeconds = $jResp.IntOf("jobs[i].timeout.attemptDurationSeconds")
    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].attempts")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $containerContainerInstanceArn = $jResp.StringOf("jobs[i].attempts[j].container.containerInstanceArn")
        $containerExitCode = $jResp.IntOf("jobs[i].attempts[j].container.exitCode")
        $containerLogStreamName = $jResp.StringOf("jobs[i].attempts[j].container.logStreamName")
        $containerReason = $jResp.StringOf("jobs[i].attempts[j].container.reason")
        $containerTaskArn = $jResp.StringOf("jobs[i].attempts[j].container.taskArn")
        $startedAt = $jResp.IntOf("jobs[i].attempts[j].startedAt")
        $statusReason = $jResp.StringOf("jobs[i].attempts[j].statusReason")
        $stoppedAt = $jResp.IntOf("jobs[i].attempts[j].stoppedAt")
        $k = 0
        $count_k = $jResp.SizeOfArray("jobs[i].attempts[j].container.networkInterfaces")
        while ($k -lt $count_k) {
            $jResp.K = $k
            $attachmentId = $jResp.StringOf("jobs[i].attempts[j].container.networkInterfaces[k].attachmentId")
            $ipv6Address = $jResp.StringOf("jobs[i].attempts[j].container.networkInterfaces[k].ipv6Address")
            $privateIpv4Address = $jResp.StringOf("jobs[i].attempts[j].container.networkInterfaces[k].privateIpv4Address")
            $k = $k + 1
        }

        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].container.command")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("jobs[i].container.command[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].container.environment")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $name = $jResp.StringOf("jobs[i].container.environment[j].name")
        $value = $jResp.StringOf("jobs[i].container.environment[j].value")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].container.linuxParameters.devices")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $containerPath = $jResp.StringOf("jobs[i].container.linuxParameters.devices[j].containerPath")
        $hostPath = $jResp.StringOf("jobs[i].container.linuxParameters.devices[j].hostPath")
        $k = 0
        $count_k = $jResp.SizeOfArray("jobs[i].container.linuxParameters.devices[j].permissions")
        while ($k -lt $count_k) {
            $jResp.K = $k
            $strVal = $jResp.StringOf("jobs[i].container.linuxParameters.devices[j].permissions[k]")
            $k = $k + 1
        }

        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].container.linuxParameters.tmpfs")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $containerPath = $jResp.StringOf("jobs[i].container.linuxParameters.tmpfs[j].containerPath")
        $size = $jResp.IntOf("jobs[i].container.linuxParameters.tmpfs[j].size")
        $k = 0
        $count_k = $jResp.SizeOfArray("jobs[i].container.linuxParameters.tmpfs[j].mountOptions")
        while ($k -lt $count_k) {
            $jResp.K = $k
            $strVal = $jResp.StringOf("jobs[i].container.linuxParameters.tmpfs[j].mountOptions[k]")
            $k = $k + 1
        }

        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].container.logConfiguration.secretOptions")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $name = $jResp.StringOf("jobs[i].container.logConfiguration.secretOptions[j].name")
        $valueFrom = $jResp.StringOf("jobs[i].container.logConfiguration.secretOptions[j].valueFrom")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].container.mountPoints")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $containerPath = $jResp.StringOf("jobs[i].container.mountPoints[j].containerPath")
        $readOnly = $jResp.IntOf("jobs[i].container.mountPoints[j].readOnly")
        $sourceVolume = $jResp.StringOf("jobs[i].container.mountPoints[j].sourceVolume")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].container.networkInterfaces")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $attachmentId = $jResp.StringOf("jobs[i].container.networkInterfaces[j].attachmentId")
        $ipv6Address = $jResp.StringOf("jobs[i].container.networkInterfaces[j].ipv6Address")
        $privateIpv4Address = $jResp.StringOf("jobs[i].container.networkInterfaces[j].privateIpv4Address")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].container.resourceRequirements")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $v_type = $jResp.StringOf("jobs[i].container.resourceRequirements[j].type")
        $value = $jResp.StringOf("jobs[i].container.resourceRequirements[j].value")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].container.secrets")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $name = $jResp.StringOf("jobs[i].container.secrets[j].name")
        $valueFrom = $jResp.StringOf("jobs[i].container.secrets[j].valueFrom")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].container.ulimits")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $hardLimit = $jResp.IntOf("jobs[i].container.ulimits[j].hardLimit")
        $name = $jResp.StringOf("jobs[i].container.ulimits[j].name")
        $softLimit = $jResp.IntOf("jobs[i].container.ulimits[j].softLimit")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].container.volumes")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $AccessPointId = $jResp.StringOf("jobs[i].container.volumes[j].efsVolumeConfiguration.authorizationConfig.accessPointId")
        $Iam = $jResp.StringOf("jobs[i].container.volumes[j].efsVolumeConfiguration.authorizationConfig.iam")
        $FileSystemId = $jResp.StringOf("jobs[i].container.volumes[j].efsVolumeConfiguration.fileSystemId")
        $RootDirectory = $jResp.StringOf("jobs[i].container.volumes[j].efsVolumeConfiguration.rootDirectory")
        $TransitEncryption = $jResp.StringOf("jobs[i].container.volumes[j].efsVolumeConfiguration.transitEncryption")
        $TransitEncryptionPort = $jResp.IntOf("jobs[i].container.volumes[j].efsVolumeConfiguration.transitEncryptionPort")
        $SourcePath = $jResp.StringOf("jobs[i].container.volumes[j].host.sourcePath")
        $name = $jResp.StringOf("jobs[i].container.volumes[j].name")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].dependsOn")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $jobId = $jResp.StringOf("jobs[i].dependsOn[j].jobId")
        $v_type = $jResp.StringOf("jobs[i].dependsOn[j].type")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].nodeProperties.nodeRangeProperties")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $containerExecutionRoleArn = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.executionRoleArn")
        $FargatePlatformConfigurationPlatformVersion = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.fargatePlatformConfiguration.platformVersion")
        $containerImage = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.image")
        $containerInstanceType = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.instanceType")
        $containerJobRoleArn = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.jobRoleArn")
        $LinuxParametersInitProcessEnabled = $jResp.IntOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.initProcessEnabled")
        $LinuxParametersMaxSwap = $jResp.IntOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.maxSwap")
        $LinuxParametersSharedMemorySize = $jResp.IntOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.sharedMemorySize")
        $LinuxParametersSwappiness = $jResp.IntOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.swappiness")
        $LogConfigurationLogDriver = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.logDriver")
        $OptionsString = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.options.string")
        $containerMemory = $jResp.IntOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.memory")
        $NetworkConfigurationAssignPublicIp = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.networkConfiguration.assignPublicIp")
        $containerPrivileged = $jResp.IntOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.privileged")
        $containerReadonlyRootFilesystem = $jResp.IntOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.readonlyRootFilesystem")
        $containerUser = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.user")
        $containerVcpus = $jResp.IntOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.vcpus")
        $targetNodes = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].targetNodes")
        $k = 0
        $count_k = $jResp.SizeOfArray("jobs[i].nodeProperties.nodeRangeProperties[j].container.command")
        while ($k -lt $count_k) {
            $jResp.K = $k
            $strVal = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.command[k]")
            $k = $k + 1
        }

        $k = 0
        $count_k = $jResp.SizeOfArray("jobs[i].nodeProperties.nodeRangeProperties[j].container.environment")
        while ($k -lt $count_k) {
            $jResp.K = $k
            $name = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.environment[k].name")
            $value = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.environment[k].value")
            $k = $k + 1
        }

        $k = 0
        $count_k = $jResp.SizeOfArray("jobs[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices")
        while ($k -lt $count_k) {
            $jResp.K = $k
            $containerPath = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices[k].containerPath")
            $hostPath = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices[k].hostPath")

            $json1 = $jResp.ObjectOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices[k]")
            $i1 = 0
            $count_i1 = $json1.SizeOfArray("permissions")
            while ($i1 -lt $count_i1) {
                $json1.I = $i1
                $strVal = $json1.StringOf("permissions[i]")
                $i1 = $i1 + 1
            }

            $k = $k + 1
        }

        $k = 0
        $count_k = $jResp.SizeOfArray("jobs[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs")
        while ($k -lt $count_k) {
            $jResp.K = $k
            $containerPath = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs[k].containerPath")
            $size = $jResp.IntOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs[k].size")

            $json1 = $jResp.ObjectOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs[k]")
            $i1 = 0
            $count_i1 = $json1.SizeOfArray("mountOptions")
            while ($i1 -lt $count_i1) {
                $json1.I = $i1
                $strVal = $json1.StringOf("mountOptions[i]")
                $i1 = $i1 + 1
            }

            $k = $k + 1
        }

        $k = 0
        $count_k = $jResp.SizeOfArray("jobs[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.secretOptions")
        while ($k -lt $count_k) {
            $jResp.K = $k
            $name = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.secretOptions[k].name")
            $valueFrom = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.secretOptions[k].valueFrom")
            $k = $k + 1
        }

        $k = 0
        $count_k = $jResp.SizeOfArray("jobs[i].nodeProperties.nodeRangeProperties[j].container.mountPoints")
        while ($k -lt $count_k) {
            $jResp.K = $k
            $containerPath = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.mountPoints[k].containerPath")
            $readOnly = $jResp.IntOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.mountPoints[k].readOnly")
            $sourceVolume = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.mountPoints[k].sourceVolume")
            $k = $k + 1
        }

        $k = 0
        $count_k = $jResp.SizeOfArray("jobs[i].nodeProperties.nodeRangeProperties[j].container.resourceRequirements")
        while ($k -lt $count_k) {
            $jResp.K = $k
            $v_type = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.resourceRequirements[k].type")
            $value = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.resourceRequirements[k].value")
            $k = $k + 1
        }

        $k = 0
        $count_k = $jResp.SizeOfArray("jobs[i].nodeProperties.nodeRangeProperties[j].container.secrets")
        while ($k -lt $count_k) {
            $jResp.K = $k
            $name = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.secrets[k].name")
            $valueFrom = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.secrets[k].valueFrom")
            $k = $k + 1
        }

        $k = 0
        $count_k = $jResp.SizeOfArray("jobs[i].nodeProperties.nodeRangeProperties[j].container.ulimits")
        while ($k -lt $count_k) {
            $jResp.K = $k
            $hardLimit = $jResp.IntOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.ulimits[k].hardLimit")
            $name = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.ulimits[k].name")
            $softLimit = $jResp.IntOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.ulimits[k].softLimit")
            $k = $k + 1
        }

        $k = 0
        $count_k = $jResp.SizeOfArray("jobs[i].nodeProperties.nodeRangeProperties[j].container.volumes")
        while ($k -lt $count_k) {
            $jResp.K = $k
            $AuthorizationConfigAccessPointId = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.authorizationConfig.accessPointId")
            $AuthorizationConfigIam = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.authorizationConfig.iam")
            $efsVolumeConfigurationFileSystemId = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.fileSystemId")
            $efsVolumeConfigurationRootDirectory = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.rootDirectory")
            $efsVolumeConfigurationTransitEncryption = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.transitEncryption")
            $efsVolumeConfigurationTransitEncryptionPort = $jResp.IntOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.transitEncryptionPort")
            $hostSourcePath = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].host.sourcePath")
            $name = $jResp.StringOf("jobs[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].name")
            $k = $k + 1
        }

        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].platformCapabilities")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $strVal = $jResp.StringOf("jobs[i].platformCapabilities[j]")
        $j = $j + 1
    }

    $j = 0
    $count_j = $jResp.SizeOfArray("jobs[i].retryStrategy.evaluateOnExit")
    while ($j -lt $count_j) {
        $jResp.J = $j
        $action = $jResp.StringOf("jobs[i].retryStrategy.evaluateOnExit[j].action")
        $onExitCode = $jResp.StringOf("jobs[i].retryStrategy.evaluateOnExit[j].onExitCode")
        $onReason = $jResp.StringOf("jobs[i].retryStrategy.evaluateOnExit[j].onReason")
        $onStatusReason = $jResp.StringOf("jobs[i].retryStrategy.evaluateOnExit[j].onStatusReason")
        $j = $j + 1
    }

    $i = $i + 1
}

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

# {
#   "jobs": [
#     {
#       "arrayProperties": {
#         "index": number,
#         "size": number,
#         "statusSummary": {
#           "string": number
#         }
#       },
#       "attempts": [
#         {
#           "container": {
#             "containerInstanceArn": "string",
#             "exitCode": number,
#             "logStreamName": "string",
#             "networkInterfaces": [
#               {
#                 "attachmentId": "string",
#                 "ipv6Address": "string",
#                 "privateIpv4Address": "string"
#               }
#             ],
#             "reason": "string",
#             "taskArn": "string"
#           },
#           "startedAt": number,
#           "statusReason": "string",
#           "stoppedAt": number
#         }
#       ],
#       "container": {
#         "command": [
#           "string"
#         ],
#         "containerInstanceArn": "string",
#         "environment": [
#           {
#             "name": "string",
#             "value": "string"
#           }
#         ],
#         "executionRoleArn": "string",
#         "exitCode": number,
#         "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"
#             }
#           ]
#         },
#         "logStreamName": "string",
#         "memory": number,
#         "mountPoints": [
#           {
#             "containerPath": "string",
#             "readOnly": boolean,
#             "sourceVolume": "string"
#           }
#         ],
#         "networkConfiguration": {
#           "assignPublicIp": "string"
#         },
#         "networkInterfaces": [
#           {
#             "attachmentId": "string",
#             "ipv6Address": "string",
#             "privateIpv4Address": "string"
#           }
#         ],
#         "privileged": boolean,
#         "readonlyRootFilesystem": boolean,
#         "reason": "string",
#         "resourceRequirements": [
#           {
#             "type": "string",
#             "value": "string"
#           }
#         ],
#         "secrets": [
#           {
#             "name": "string",
#             "valueFrom": "string"
#           }
#         ],
#         "taskArn": "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"
#           }
#         ]
#       },
#       "createdAt": number,
#       "dependsOn": [
#         {
#           "jobId": "string",
#           "type": "string"
#         }
#       ],
#       "jobArn": "string",
#       "jobDefinition": "string",
#       "jobId": "string",
#       "jobName": "string",
#       "jobQueue": "string",
#       "nodeDetails": {
#         "isMainNode": boolean,
#         "nodeIndex": number
#       },
#       "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"
#           }
#         ]
#       },
#       "schedulingPriority": number,
#       "shareIdentifier": "string",
#       "startedAt": number,
#       "status": "string",
#       "statusReason": "string",
#       "stoppedAt": number,
#       "tags": {
#         "string": "string"
#       },
#       "timeout": {
#         "attemptDurationSeconds": number
#       }
#     }
#   ]
# }