DescribeJobDefinitions PureBasic Example
IncludeFile "CkJsonObject.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkRest.pb"
IncludeFile "CkAuthAws.pb"
Procedure ChilkatExample()
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
rest.i = CkRest::ckCreate()
If rest.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success.i
authAws.i = CkAuthAws::ckCreate()
If authAws.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkAuthAws::setCkAccessKey(authAws, "AWS_ACCESS_KEY")
CkAuthAws::setCkSecretKey(authAws, "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.)
CkAuthAws::setCkRegion(authAws, "us-west-2")
CkAuthAws::setCkServiceName(authAws, "batch")
; SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
CkRest::ckSetAuthAws(rest,authAws)
; URL: https://batch.us-west-2.amazonaws.com/
; Use the same region as specified above.
success = CkRest::ckConnect(rest,"batch.us-west-2.amazonaws.com",443,1,1)
If success <> 1
Debug "ConnectFailReason: " + Str(CkRest::ckConnectFailReason(rest))
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
CkAuthAws::ckDispose(authAws)
ProcedureReturn
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
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckUpdateString(json,"jobDefinitionName","string")
CkJsonObject::ckUpdateString(json,"jobDefinitions[0]","string")
CkJsonObject::ckUpdateInt(json,"maxResults",123)
CkJsonObject::ckUpdateString(json,"nextToken","string")
CkJsonObject::ckUpdateString(json,"status","string")
; The JSON request body created by the above code:
; {
; "jobDefinitionName": "string",
; "jobDefinitions": [
; "string"
; ],
; "maxResults": number,
; "nextToken": "string",
; "status": "string"
; }
CkRest::ckAddHeader(rest,"Content-Type","application/x-amz-json-1.1")
CkRest::ckAddHeader(rest,"X-Amz-Target","DescribeJobDefinitions")
sbRequestBody.i = CkStringBuilder::ckCreate()
If sbRequestBody.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckEmitSb(json,sbRequestBody)
sbResponseBody.i = CkStringBuilder::ckCreate()
If sbResponseBody.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkRest::ckFullRequestSb(rest,"POST","/v1/describejobdefinitions",sbRequestBody,sbResponseBody)
If success <> 1
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
CkAuthAws::ckDispose(authAws)
CkJsonObject::ckDispose(json)
CkStringBuilder::ckDispose(sbRequestBody)
CkStringBuilder::ckDispose(sbResponseBody)
ProcedureReturn
EndIf
respStatusCode.i = CkRest::ckResponseStatusCode(rest)
Debug "response status code = " + Str(respStatusCode)
If respStatusCode <> 200
Debug "Response Header:"
Debug CkRest::ckResponseHeader(rest)
Debug "Response Body:"
Debug CkStringBuilder::ckGetAsString(sbResponseBody)
CkRest::ckDispose(rest)
CkAuthAws::ckDispose(authAws)
CkJsonObject::ckDispose(json)
CkStringBuilder::ckDispose(sbRequestBody)
CkStringBuilder::ckDispose(sbResponseBody)
ProcedureReturn
EndIf
jResp.i = CkJsonObject::ckCreate()
If jResp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckLoadSb(jResp,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
ExecutionRoleArn.s
PlatformVersion.s
Image.s
InstanceType.s
JobRoleArn.s
InitProcessEnabled.i
MaxSwap.i
SharedMemorySize.i
Swappiness.i
LogDriver.s
v_String.s
Memory.i
AssignPublicIp.s
Privileged.i
ReadonlyRootFilesystem.i
User.s
Vcpus.i
jobDefinitionArn.s
jobDefinitionName.s
MainNode.i
NumNodes.i
parametersString.s
propagateTags.i
Attempts.i
revision.i
schedulingPriority.i
status.s
tagsString.s
AttemptDurationSeconds.i
v_type.s
j.i
count_j.i
strVal.s
name.s
value.s
containerPath.s
hostPath.s
k.i
count_k.i
size.i
valueFrom.s
readOnly.i
sourceVolume.s
hardLimit.i
softLimit.i
AccessPointId.s
Iam.s
FileSystemId.s
RootDirectory.s
TransitEncryption.s
TransitEncryptionPort.i
SourcePath.s
containerExecutionRoleArn.s
FargatePlatformConfigurationPlatformVersion.s
containerImage.s
containerInstanceType.s
containerJobRoleArn.s
LinuxParametersInitProcessEnabled.i
LinuxParametersMaxSwap.i
LinuxParametersSharedMemorySize.i
LinuxParametersSwappiness.i
LogConfigurationLogDriver.s
OptionsString.s
containerMemory.i
NetworkConfigurationAssignPublicIp.s
containerPrivileged.i
containerReadonlyRootFilesystem.i
containerUser.s
containerVcpus.i
targetNodes.s
json1.i
i1.i
count_i1.i
AuthorizationConfigAccessPointId.s
AuthorizationConfigIam.s
efsVolumeConfigurationFileSystemId.s
efsVolumeConfigurationRootDirectory.s
efsVolumeConfigurationTransitEncryption.s
efsVolumeConfigurationTransitEncryptionPort.i
hostSourcePath.s
action.s
onExitCode.s
onReason.s
onStatusReason.s
nextToken.s = CkJsonObject::ckStringOf(jResp,"nextToken")
i.i = 0
count_i.i = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions")
While i < count_i
CkJsonObject::setCkI(jResp, i)
ExecutionRoleArn = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.executionRoleArn")
PlatformVersion = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.fargatePlatformConfiguration.platformVersion")
Image = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.image")
InstanceType = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.instanceType")
JobRoleArn = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.jobRoleArn")
InitProcessEnabled = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].containerProperties.linuxParameters.initProcessEnabled")
MaxSwap = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].containerProperties.linuxParameters.maxSwap")
SharedMemorySize = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].containerProperties.linuxParameters.sharedMemorySize")
Swappiness = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].containerProperties.linuxParameters.swappiness")
LogDriver = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.logConfiguration.logDriver")
v_String = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.logConfiguration.options.string")
Memory = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].containerProperties.memory")
AssignPublicIp = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.networkConfiguration.assignPublicIp")
Privileged = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].containerProperties.privileged")
ReadonlyRootFilesystem = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].containerProperties.readonlyRootFilesystem")
User = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.user")
Vcpus = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].containerProperties.vcpus")
jobDefinitionArn = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].jobDefinitionArn")
jobDefinitionName = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].jobDefinitionName")
MainNode = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].nodeProperties.mainNode")
NumNodes = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].nodeProperties.numNodes")
parametersString = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].parameters.string")
propagateTags = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].propagateTags")
Attempts = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].retryStrategy.attempts")
revision = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].revision")
schedulingPriority = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].schedulingPriority")
status = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].status")
tagsString = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].tags.string")
AttemptDurationSeconds = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].timeout.attemptDurationSeconds")
v_type = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].type")
j = 0
count_j = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].containerProperties.command")
While j < count_j
CkJsonObject::setCkJ(jResp, j)
strVal = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.command[j]")
j = j + 1
Wend
j = 0
count_j = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].containerProperties.environment")
While j < count_j
CkJsonObject::setCkJ(jResp, j)
name = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.environment[j].name")
value = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.environment[j].value")
j = j + 1
Wend
j = 0
count_j = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].containerProperties.linuxParameters.devices")
While j < count_j
CkJsonObject::setCkJ(jResp, j)
containerPath = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.linuxParameters.devices[j].containerPath")
hostPath = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.linuxParameters.devices[j].hostPath")
k = 0
count_k = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].containerProperties.linuxParameters.devices[j].permissions")
While k < count_k
CkJsonObject::setCkK(jResp, k)
strVal = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.linuxParameters.devices[j].permissions[k]")
k = k + 1
Wend
j = j + 1
Wend
j = 0
count_j = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].containerProperties.linuxParameters.tmpfs")
While j < count_j
CkJsonObject::setCkJ(jResp, j)
containerPath = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].containerPath")
size = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].size")
k = 0
count_k = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].mountOptions")
While k < count_k
CkJsonObject::setCkK(jResp, k)
strVal = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].mountOptions[k]")
k = k + 1
Wend
j = j + 1
Wend
j = 0
count_j = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].containerProperties.logConfiguration.secretOptions")
While j < count_j
CkJsonObject::setCkJ(jResp, j)
name = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.logConfiguration.secretOptions[j].name")
valueFrom = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.logConfiguration.secretOptions[j].valueFrom")
j = j + 1
Wend
j = 0
count_j = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].containerProperties.mountPoints")
While j < count_j
CkJsonObject::setCkJ(jResp, j)
containerPath = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.mountPoints[j].containerPath")
readOnly = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].containerProperties.mountPoints[j].readOnly")
sourceVolume = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.mountPoints[j].sourceVolume")
j = j + 1
Wend
j = 0
count_j = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].containerProperties.resourceRequirements")
While j < count_j
CkJsonObject::setCkJ(jResp, j)
v_type = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.resourceRequirements[j].type")
value = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.resourceRequirements[j].value")
j = j + 1
Wend
j = 0
count_j = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].containerProperties.secrets")
While j < count_j
CkJsonObject::setCkJ(jResp, j)
name = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.secrets[j].name")
valueFrom = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.secrets[j].valueFrom")
j = j + 1
Wend
j = 0
count_j = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].containerProperties.ulimits")
While j < count_j
CkJsonObject::setCkJ(jResp, j)
hardLimit = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].containerProperties.ulimits[j].hardLimit")
name = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.ulimits[j].name")
softLimit = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].containerProperties.ulimits[j].softLimit")
j = j + 1
Wend
j = 0
count_j = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].containerProperties.volumes")
While j < count_j
CkJsonObject::setCkJ(jResp, j)
AccessPointId = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.authorizationConfig.accessPointId")
Iam = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.authorizationConfig.iam")
FileSystemId = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.fileSystemId")
RootDirectory = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.rootDirectory")
TransitEncryption = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.transitEncryption")
TransitEncryptionPort = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.transitEncryptionPort")
SourcePath = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.volumes[j].host.sourcePath")
name = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].containerProperties.volumes[j].name")
j = j + 1
Wend
j = 0
count_j = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties")
While j < count_j
CkJsonObject::setCkJ(jResp, j)
containerExecutionRoleArn = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.executionRoleArn")
FargatePlatformConfigurationPlatformVersion = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.fargatePlatformConfiguration.platformVersion")
containerImage = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.image")
containerInstanceType = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.instanceType")
containerJobRoleArn = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.jobRoleArn")
LinuxParametersInitProcessEnabled = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.initProcessEnabled")
LinuxParametersMaxSwap = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.maxSwap")
LinuxParametersSharedMemorySize = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.sharedMemorySize")
LinuxParametersSwappiness = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.swappiness")
LogConfigurationLogDriver = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.logDriver")
OptionsString = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.options.string")
containerMemory = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.memory")
NetworkConfigurationAssignPublicIp = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.networkConfiguration.assignPublicIp")
containerPrivileged = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.privileged")
containerReadonlyRootFilesystem = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.readonlyRootFilesystem")
containerUser = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.user")
containerVcpus = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.vcpus")
targetNodes = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].targetNodes")
k = 0
count_k = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.command")
While k < count_k
CkJsonObject::setCkK(jResp, k)
strVal = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.command[k]")
k = k + 1
Wend
k = 0
count_k = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.environment")
While k < count_k
CkJsonObject::setCkK(jResp, k)
name = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.environment[k].name")
value = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.environment[k].value")
k = k + 1
Wend
k = 0
count_k = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices")
While k < count_k
CkJsonObject::setCkK(jResp, k)
containerPath = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices[k].containerPath")
hostPath = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices[k].hostPath")
json1 = CkJsonObject::ckObjectOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices[k]")
i1 = 0
count_i1 = CkJsonObject::ckSizeOfArray(json1,"permissions")
While i1 < count_i1
CkJsonObject::setCkI(json1, i1)
strVal = CkJsonObject::ckStringOf(json1,"permissions[i]")
i1 = i1 + 1
Wend
CkJsonObject::ckDispose(json1)
k = k + 1
Wend
k = 0
count_k = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs")
While k < count_k
CkJsonObject::setCkK(jResp, k)
containerPath = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs[k].containerPath")
size = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs[k].size")
json1 = CkJsonObject::ckObjectOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs[k]")
i1 = 0
count_i1 = CkJsonObject::ckSizeOfArray(json1,"mountOptions")
While i1 < count_i1
CkJsonObject::setCkI(json1, i1)
strVal = CkJsonObject::ckStringOf(json1,"mountOptions[i]")
i1 = i1 + 1
Wend
CkJsonObject::ckDispose(json1)
k = k + 1
Wend
k = 0
count_k = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.secretOptions")
While k < count_k
CkJsonObject::setCkK(jResp, k)
name = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.secretOptions[k].name")
valueFrom = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.secretOptions[k].valueFrom")
k = k + 1
Wend
k = 0
count_k = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints")
While k < count_k
CkJsonObject::setCkK(jResp, k)
containerPath = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints[k].containerPath")
readOnly = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints[k].readOnly")
sourceVolume = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints[k].sourceVolume")
k = k + 1
Wend
k = 0
count_k = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.resourceRequirements")
While k < count_k
CkJsonObject::setCkK(jResp, k)
v_type = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.resourceRequirements[k].type")
value = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.resourceRequirements[k].value")
k = k + 1
Wend
k = 0
count_k = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.secrets")
While k < count_k
CkJsonObject::setCkK(jResp, k)
name = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.secrets[k].name")
valueFrom = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.secrets[k].valueFrom")
k = k + 1
Wend
k = 0
count_k = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits")
While k < count_k
CkJsonObject::setCkK(jResp, k)
hardLimit = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits[k].hardLimit")
name = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits[k].name")
softLimit = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits[k].softLimit")
k = k + 1
Wend
k = 0
count_k = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes")
While k < count_k
CkJsonObject::setCkK(jResp, k)
AuthorizationConfigAccessPointId = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.authorizationConfig.accessPointId")
AuthorizationConfigIam = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.authorizationConfig.iam")
efsVolumeConfigurationFileSystemId = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.fileSystemId")
efsVolumeConfigurationRootDirectory = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.rootDirectory")
efsVolumeConfigurationTransitEncryption = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.transitEncryption")
efsVolumeConfigurationTransitEncryptionPort = CkJsonObject::ckIntOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.transitEncryptionPort")
hostSourcePath = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].host.sourcePath")
name = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].name")
k = k + 1
Wend
j = j + 1
Wend
j = 0
count_j = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].platformCapabilities")
While j < count_j
CkJsonObject::setCkJ(jResp, j)
strVal = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].platformCapabilities[j]")
j = j + 1
Wend
j = 0
count_j = CkJsonObject::ckSizeOfArray(jResp,"jobDefinitions[i].retryStrategy.evaluateOnExit")
While j < count_j
CkJsonObject::setCkJ(jResp, j)
action = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].retryStrategy.evaluateOnExit[j].action")
onExitCode = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].retryStrategy.evaluateOnExit[j].onExitCode")
onReason = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].retryStrategy.evaluateOnExit[j].onReason")
onStatusReason = CkJsonObject::ckStringOf(jResp,"jobDefinitions[i].retryStrategy.evaluateOnExit[j].onStatusReason")
j = j + 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"
; }
CkRest::ckDispose(rest)
CkAuthAws::ckDispose(authAws)
CkJsonObject::ckDispose(json)
CkStringBuilder::ckDispose(sbRequestBody)
CkStringBuilder::ckDispose(sbResponseBody)
CkJsonObject::ckDispose(jResp)
ProcedureReturn
EndProcedure