DescribeJobDefinitions Swift3 Example
func chilkatTest() {
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let rest = CkoRest()!
var success: Bool
let authAws = CkoAuthAws()!
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", port: 443, tls: true, autoReconnect: true)
if success != true {
print("ConnectFailReason: \(rest.connectFailReason.intValue)")
print("\(rest.lastErrorText!)")
return
}
// 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
let json = CkoJsonObject()!
json.update("jobDefinitionName", value: "string")
json.update("jobDefinitions[0]", value: "string")
json.updateInt("maxResults", value: 123)
json.update("nextToken", value: "string")
json.update("status", value: "string")
// The JSON request body created by the above code:
// {
// "jobDefinitionName": "string",
// "jobDefinitions": [
// "string"
// ],
// "maxResults": number,
// "nextToken": "string",
// "status": "string"
// }
rest.addHeader("Content-Type", value: "application/x-amz-json-1.1")
rest.addHeader("X-Amz-Target", value: "DescribeJobDefinitions")
let sbRequestBody = CkoStringBuilder()!
json.emitSb(sbRequestBody)
let sbResponseBody = CkoStringBuilder()!
success = rest.fullRequestSb("POST", uriPath: "/v1/describejobdefinitions", requestBody: sbRequestBody, responseBody: sbResponseBody)
if success != true {
print("\(rest.lastErrorText!)")
return
}
var respStatusCode: Int = rest.responseStatusCode.intValue
print("response status code = \(respStatusCode)")
if respStatusCode != 200 {
print("Response Header:")
print("\(rest.responseHeader!)")
print("Response Body:")
print("\(sbResponseBody.getAsString()!)")
return
}
let jResp = CkoJsonObject()!
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
var ExecutionRoleArn: String?
var PlatformVersion: String?
var Image: String?
var InstanceType: String?
var JobRoleArn: String?
var InitProcessEnabled: Int
var MaxSwap: Int
var SharedMemorySize: Int
var Swappiness: Int
var LogDriver: String?
var v_String: String?
var Memory: Int
var AssignPublicIp: String?
var Privileged: Int
var ReadonlyRootFilesystem: Int
var User: String?
var Vcpus: Int
var jobDefinitionArn: String?
var jobDefinitionName: String?
var MainNode: Int
var NumNodes: Int
var parametersString: String?
var propagateTags: Int
var Attempts: Int
var revision: Int
var schedulingPriority: Int
var status: String?
var tagsString: String?
var AttemptDurationSeconds: Int
var v_type: String?
var j: Int
var count_j: Int
var strVal: String?
var name: String?
var value: String?
var containerPath: String?
var hostPath: String?
var k: Int
var count_k: Int
var size: Int
var valueFrom: String?
var readOnly: Int
var sourceVolume: String?
var hardLimit: Int
var softLimit: Int
var AccessPointId: String?
var Iam: String?
var FileSystemId: String?
var RootDirectory: String?
var TransitEncryption: String?
var TransitEncryptionPort: Int
var SourcePath: String?
var containerExecutionRoleArn: String?
var FargatePlatformConfigurationPlatformVersion: String?
var containerImage: String?
var containerInstanceType: String?
var containerJobRoleArn: String?
var LinuxParametersInitProcessEnabled: Int
var LinuxParametersMaxSwap: Int
var LinuxParametersSharedMemorySize: Int
var LinuxParametersSwappiness: Int
var LogConfigurationLogDriver: String?
var OptionsString: String?
var containerMemory: Int
var NetworkConfigurationAssignPublicIp: String?
var containerPrivileged: Int
var containerReadonlyRootFilesystem: Int
var containerUser: String?
var containerVcpus: Int
var targetNodes: String?
var json1: CkoJsonObject?
var i1: Int
var count_i1: Int
var AuthorizationConfigAccessPointId: String?
var AuthorizationConfigIam: String?
var efsVolumeConfigurationFileSystemId: String?
var efsVolumeConfigurationRootDirectory: String?
var efsVolumeConfigurationTransitEncryption: String?
var efsVolumeConfigurationTransitEncryptionPort: Int
var hostSourcePath: String?
var action: String?
var onExitCode: String?
var onReason: String?
var onStatusReason: String?
var nextToken: String? = jResp.string(of: "nextToken")
var i: Int = 0
var count_i: Int = jResp.size(ofArray: "jobDefinitions").intValue
while i < count_i {
jResp.i = i
ExecutionRoleArn = jResp.string(of: "jobDefinitions[i].containerProperties.executionRoleArn")
PlatformVersion = jResp.string(of: "jobDefinitions[i].containerProperties.fargatePlatformConfiguration.platformVersion")
Image = jResp.string(of: "jobDefinitions[i].containerProperties.image")
InstanceType = jResp.string(of: "jobDefinitions[i].containerProperties.instanceType")
JobRoleArn = jResp.string(of: "jobDefinitions[i].containerProperties.jobRoleArn")
InitProcessEnabled = jResp.int(of: "jobDefinitions[i].containerProperties.linuxParameters.initProcessEnabled").intValue
MaxSwap = jResp.int(of: "jobDefinitions[i].containerProperties.linuxParameters.maxSwap").intValue
SharedMemorySize = jResp.int(of: "jobDefinitions[i].containerProperties.linuxParameters.sharedMemorySize").intValue
Swappiness = jResp.int(of: "jobDefinitions[i].containerProperties.linuxParameters.swappiness").intValue
LogDriver = jResp.string(of: "jobDefinitions[i].containerProperties.logConfiguration.logDriver")
v_String = jResp.string(of: "jobDefinitions[i].containerProperties.logConfiguration.options.string")
Memory = jResp.int(of: "jobDefinitions[i].containerProperties.memory").intValue
AssignPublicIp = jResp.string(of: "jobDefinitions[i].containerProperties.networkConfiguration.assignPublicIp")
Privileged = jResp.int(of: "jobDefinitions[i].containerProperties.privileged").intValue
ReadonlyRootFilesystem = jResp.int(of: "jobDefinitions[i].containerProperties.readonlyRootFilesystem").intValue
User = jResp.string(of: "jobDefinitions[i].containerProperties.user")
Vcpus = jResp.int(of: "jobDefinitions[i].containerProperties.vcpus").intValue
jobDefinitionArn = jResp.string(of: "jobDefinitions[i].jobDefinitionArn")
jobDefinitionName = jResp.string(of: "jobDefinitions[i].jobDefinitionName")
MainNode = jResp.int(of: "jobDefinitions[i].nodeProperties.mainNode").intValue
NumNodes = jResp.int(of: "jobDefinitions[i].nodeProperties.numNodes").intValue
parametersString = jResp.string(of: "jobDefinitions[i].parameters.string")
propagateTags = jResp.int(of: "jobDefinitions[i].propagateTags").intValue
Attempts = jResp.int(of: "jobDefinitions[i].retryStrategy.attempts").intValue
revision = jResp.int(of: "jobDefinitions[i].revision").intValue
schedulingPriority = jResp.int(of: "jobDefinitions[i].schedulingPriority").intValue
status = jResp.string(of: "jobDefinitions[i].status")
tagsString = jResp.string(of: "jobDefinitions[i].tags.string")
AttemptDurationSeconds = jResp.int(of: "jobDefinitions[i].timeout.attemptDurationSeconds").intValue
v_type = jResp.string(of: "jobDefinitions[i].type")
j = 0
count_j = jResp.size(ofArray: "jobDefinitions[i].containerProperties.command").intValue
while j < count_j {
jResp.j = j
strVal = jResp.string(of: "jobDefinitions[i].containerProperties.command[j]")
j = j + 1
}
j = 0
count_j = jResp.size(ofArray: "jobDefinitions[i].containerProperties.environment").intValue
while j < count_j {
jResp.j = j
name = jResp.string(of: "jobDefinitions[i].containerProperties.environment[j].name")
value = jResp.string(of: "jobDefinitions[i].containerProperties.environment[j].value")
j = j + 1
}
j = 0
count_j = jResp.size(ofArray: "jobDefinitions[i].containerProperties.linuxParameters.devices").intValue
while j < count_j {
jResp.j = j
containerPath = jResp.string(of: "jobDefinitions[i].containerProperties.linuxParameters.devices[j].containerPath")
hostPath = jResp.string(of: "jobDefinitions[i].containerProperties.linuxParameters.devices[j].hostPath")
k = 0
count_k = jResp.size(ofArray: "jobDefinitions[i].containerProperties.linuxParameters.devices[j].permissions").intValue
while k < count_k {
jResp.k = k
strVal = jResp.string(of: "jobDefinitions[i].containerProperties.linuxParameters.devices[j].permissions[k]")
k = k + 1
}
j = j + 1
}
j = 0
count_j = jResp.size(ofArray: "jobDefinitions[i].containerProperties.linuxParameters.tmpfs").intValue
while j < count_j {
jResp.j = j
containerPath = jResp.string(of: "jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].containerPath")
size = jResp.int(of: "jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].size").intValue
k = 0
count_k = jResp.size(ofArray: "jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].mountOptions").intValue
while k < count_k {
jResp.k = k
strVal = jResp.string(of: "jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].mountOptions[k]")
k = k + 1
}
j = j + 1
}
j = 0
count_j = jResp.size(ofArray: "jobDefinitions[i].containerProperties.logConfiguration.secretOptions").intValue
while j < count_j {
jResp.j = j
name = jResp.string(of: "jobDefinitions[i].containerProperties.logConfiguration.secretOptions[j].name")
valueFrom = jResp.string(of: "jobDefinitions[i].containerProperties.logConfiguration.secretOptions[j].valueFrom")
j = j + 1
}
j = 0
count_j = jResp.size(ofArray: "jobDefinitions[i].containerProperties.mountPoints").intValue
while j < count_j {
jResp.j = j
containerPath = jResp.string(of: "jobDefinitions[i].containerProperties.mountPoints[j].containerPath")
readOnly = jResp.int(of: "jobDefinitions[i].containerProperties.mountPoints[j].readOnly").intValue
sourceVolume = jResp.string(of: "jobDefinitions[i].containerProperties.mountPoints[j].sourceVolume")
j = j + 1
}
j = 0
count_j = jResp.size(ofArray: "jobDefinitions[i].containerProperties.resourceRequirements").intValue
while j < count_j {
jResp.j = j
v_type = jResp.string(of: "jobDefinitions[i].containerProperties.resourceRequirements[j].type")
value = jResp.string(of: "jobDefinitions[i].containerProperties.resourceRequirements[j].value")
j = j + 1
}
j = 0
count_j = jResp.size(ofArray: "jobDefinitions[i].containerProperties.secrets").intValue
while j < count_j {
jResp.j = j
name = jResp.string(of: "jobDefinitions[i].containerProperties.secrets[j].name")
valueFrom = jResp.string(of: "jobDefinitions[i].containerProperties.secrets[j].valueFrom")
j = j + 1
}
j = 0
count_j = jResp.size(ofArray: "jobDefinitions[i].containerProperties.ulimits").intValue
while j < count_j {
jResp.j = j
hardLimit = jResp.int(of: "jobDefinitions[i].containerProperties.ulimits[j].hardLimit").intValue
name = jResp.string(of: "jobDefinitions[i].containerProperties.ulimits[j].name")
softLimit = jResp.int(of: "jobDefinitions[i].containerProperties.ulimits[j].softLimit").intValue
j = j + 1
}
j = 0
count_j = jResp.size(ofArray: "jobDefinitions[i].containerProperties.volumes").intValue
while j < count_j {
jResp.j = j
AccessPointId = jResp.string(of: "jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.authorizationConfig.accessPointId")
Iam = jResp.string(of: "jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.authorizationConfig.iam")
FileSystemId = jResp.string(of: "jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.fileSystemId")
RootDirectory = jResp.string(of: "jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.rootDirectory")
TransitEncryption = jResp.string(of: "jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.transitEncryption")
TransitEncryptionPort = jResp.int(of: "jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.transitEncryptionPort").intValue
SourcePath = jResp.string(of: "jobDefinitions[i].containerProperties.volumes[j].host.sourcePath")
name = jResp.string(of: "jobDefinitions[i].containerProperties.volumes[j].name")
j = j + 1
}
j = 0
count_j = jResp.size(ofArray: "jobDefinitions[i].nodeProperties.nodeRangeProperties").intValue
while j < count_j {
jResp.j = j
containerExecutionRoleArn = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.executionRoleArn")
FargatePlatformConfigurationPlatformVersion = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.fargatePlatformConfiguration.platformVersion")
containerImage = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.image")
containerInstanceType = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.instanceType")
containerJobRoleArn = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.jobRoleArn")
LinuxParametersInitProcessEnabled = jResp.int(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.initProcessEnabled").intValue
LinuxParametersMaxSwap = jResp.int(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.maxSwap").intValue
LinuxParametersSharedMemorySize = jResp.int(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.sharedMemorySize").intValue
LinuxParametersSwappiness = jResp.int(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.swappiness").intValue
LogConfigurationLogDriver = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.logDriver")
OptionsString = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.options.string")
containerMemory = jResp.int(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.memory").intValue
NetworkConfigurationAssignPublicIp = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.networkConfiguration.assignPublicIp")
containerPrivileged = jResp.int(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.privileged").intValue
containerReadonlyRootFilesystem = jResp.int(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.readonlyRootFilesystem").intValue
containerUser = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.user")
containerVcpus = jResp.int(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.vcpus").intValue
targetNodes = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].targetNodes")
k = 0
count_k = jResp.size(ofArray: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.command").intValue
while k < count_k {
jResp.k = k
strVal = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.command[k]")
k = k + 1
}
k = 0
count_k = jResp.size(ofArray: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.environment").intValue
while k < count_k {
jResp.k = k
name = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.environment[k].name")
value = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.environment[k].value")
k = k + 1
}
k = 0
count_k = jResp.size(ofArray: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices").intValue
while k < count_k {
jResp.k = k
containerPath = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices[k].containerPath")
hostPath = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices[k].hostPath")
json1 = jResp.object(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices[k]")
i1 = 0
count_i1 = json1!.size(ofArray: "permissions").intValue
while i1 < count_i1 {
json1.i = i1
strVal = json1!.string(of: "permissions[i]")
i1 = i1 + 1
}
json1 = nil
k = k + 1
}
k = 0
count_k = jResp.size(ofArray: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs").intValue
while k < count_k {
jResp.k = k
containerPath = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs[k].containerPath")
size = jResp.int(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs[k].size").intValue
json1 = jResp.object(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs[k]")
i1 = 0
count_i1 = json1!.size(ofArray: "mountOptions").intValue
while i1 < count_i1 {
json1.i = i1
strVal = json1!.string(of: "mountOptions[i]")
i1 = i1 + 1
}
json1 = nil
k = k + 1
}
k = 0
count_k = jResp.size(ofArray: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.secretOptions").intValue
while k < count_k {
jResp.k = k
name = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.secretOptions[k].name")
valueFrom = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.secretOptions[k].valueFrom")
k = k + 1
}
k = 0
count_k = jResp.size(ofArray: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints").intValue
while k < count_k {
jResp.k = k
containerPath = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints[k].containerPath")
readOnly = jResp.int(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints[k].readOnly").intValue
sourceVolume = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints[k].sourceVolume")
k = k + 1
}
k = 0
count_k = jResp.size(ofArray: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.resourceRequirements").intValue
while k < count_k {
jResp.k = k
v_type = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.resourceRequirements[k].type")
value = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.resourceRequirements[k].value")
k = k + 1
}
k = 0
count_k = jResp.size(ofArray: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.secrets").intValue
while k < count_k {
jResp.k = k
name = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.secrets[k].name")
valueFrom = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.secrets[k].valueFrom")
k = k + 1
}
k = 0
count_k = jResp.size(ofArray: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits").intValue
while k < count_k {
jResp.k = k
hardLimit = jResp.int(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits[k].hardLimit").intValue
name = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits[k].name")
softLimit = jResp.int(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits[k].softLimit").intValue
k = k + 1
}
k = 0
count_k = jResp.size(ofArray: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes").intValue
while k < count_k {
jResp.k = k
AuthorizationConfigAccessPointId = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.authorizationConfig.accessPointId")
AuthorizationConfigIam = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.authorizationConfig.iam")
efsVolumeConfigurationFileSystemId = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.fileSystemId")
efsVolumeConfigurationRootDirectory = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.rootDirectory")
efsVolumeConfigurationTransitEncryption = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.transitEncryption")
efsVolumeConfigurationTransitEncryptionPort = jResp.int(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.transitEncryptionPort").intValue
hostSourcePath = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].host.sourcePath")
name = jResp.string(of: "jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].name")
k = k + 1
}
j = j + 1
}
j = 0
count_j = jResp.size(ofArray: "jobDefinitions[i].platformCapabilities").intValue
while j < count_j {
jResp.j = j
strVal = jResp.string(of: "jobDefinitions[i].platformCapabilities[j]")
j = j + 1
}
j = 0
count_j = jResp.size(ofArray: "jobDefinitions[i].retryStrategy.evaluateOnExit").intValue
while j < count_j {
jResp.j = j
action = jResp.string(of: "jobDefinitions[i].retryStrategy.evaluateOnExit[j].action")
onExitCode = jResp.string(of: "jobDefinitions[i].retryStrategy.evaluateOnExit[j].onExitCode")
onReason = jResp.string(of: "jobDefinitions[i].retryStrategy.evaluateOnExit[j].onReason")
onStatusReason = jResp.string(of: "jobDefinitions[i].retryStrategy.evaluateOnExit[j].onStatusReason")
j = j + 1
}
i = i + 1
}
// 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"
// }
}