Chilkat Online Tools

DescribeJobDefinitions Objective-C Example

AWS Batch

#import <CkoRest.h>
#import <CkoAuthAws.h>
#import <CkoJsonObject.h>
#import <CkoStringBuilder.h>
#import <NSString.h>

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

CkoRest *rest = [[CkoRest alloc] init];
BOOL success;

CkoAuthAws *authAws = [[CkoAuthAws alloc] init];
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: [NSNumber numberWithInt: 443] tls: YES autoReconnect: YES];
if (success != YES) {
    NSLog(@"%@%d",@"ConnectFailReason: ",[rest.ConnectFailReason intValue]);
    NSLog(@"%@",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

CkoJsonObject *json = [[CkoJsonObject alloc] init];
[json UpdateString: @"jobDefinitionName" value: @"string"];
[json UpdateString: @"jobDefinitions[0]" value: @"string"];
[json UpdateInt: @"maxResults" value: [NSNumber numberWithInt: 123]];
[json UpdateString: @"nextToken" value: @"string"];
[json UpdateString: @"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"];

CkoStringBuilder *sbRequestBody = [[CkoStringBuilder alloc] init];
[json EmitSb: sbRequestBody];
CkoStringBuilder *sbResponseBody = [[CkoStringBuilder alloc] init];
success = [rest FullRequestSb: @"POST" uriPath: @"/v1/describejobdefinitions" requestBody: sbRequestBody responseBody: sbResponseBody];
if (success != YES) {
    NSLog(@"%@",rest.LastErrorText);
    return;
}

int respStatusCode = [rest.ResponseStatusCode intValue];
NSLog(@"%@%d",@"response status code = ",respStatusCode);
if (respStatusCode != 200) {
    NSLog(@"%@",@"Response Header:");
    NSLog(@"%@",rest.ResponseHeader);
    NSLog(@"%@",@"Response Body:");
    NSLog(@"%@",[sbResponseBody GetAsString]);
    return;
}

CkoJsonObject *jResp = [[CkoJsonObject alloc] init];
[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

NSString *ExecutionRoleArn = 0;
NSString *PlatformVersion = 0;
NSString *Image = 0;
NSString *InstanceType = 0;
NSString *JobRoleArn = 0;
int InitProcessEnabled;
int MaxSwap;
int SharedMemorySize;
int Swappiness;
NSString *LogDriver = 0;
NSString *v_String = 0;
int Memory;
NSString *AssignPublicIp = 0;
int Privileged;
int ReadonlyRootFilesystem;
NSString *User = 0;
int Vcpus;
NSString *jobDefinitionArn = 0;
NSString *jobDefinitionName = 0;
int MainNode;
int NumNodes;
NSString *parametersString = 0;
int propagateTags;
int Attempts;
int revision;
int schedulingPriority;
NSString *status = 0;
NSString *tagsString = 0;
int AttemptDurationSeconds;
NSString *v_type = 0;
int j;
int count_j;
NSString *strVal = 0;
NSString *name = 0;
NSString *value = 0;
NSString *containerPath = 0;
NSString *hostPath = 0;
int k;
int count_k;
int size;
NSString *valueFrom = 0;
int readOnly;
NSString *sourceVolume = 0;
int hardLimit;
int softLimit;
NSString *AccessPointId = 0;
NSString *Iam = 0;
NSString *FileSystemId = 0;
NSString *RootDirectory = 0;
NSString *TransitEncryption = 0;
int TransitEncryptionPort;
NSString *SourcePath = 0;
NSString *containerExecutionRoleArn = 0;
NSString *FargatePlatformConfigurationPlatformVersion = 0;
NSString *containerImage = 0;
NSString *containerInstanceType = 0;
NSString *containerJobRoleArn = 0;
int LinuxParametersInitProcessEnabled;
int LinuxParametersMaxSwap;
int LinuxParametersSharedMemorySize;
int LinuxParametersSwappiness;
NSString *LogConfigurationLogDriver = 0;
NSString *OptionsString = 0;
int containerMemory;
NSString *NetworkConfigurationAssignPublicIp = 0;
int containerPrivileged;
int containerReadonlyRootFilesystem;
NSString *containerUser = 0;
int containerVcpus;
NSString *targetNodes = 0;
CkoJsonObject *json1 = 0;
int i1;
int count_i1;
NSString *AuthorizationConfigAccessPointId = 0;
NSString *AuthorizationConfigIam = 0;
NSString *efsVolumeConfigurationFileSystemId = 0;
NSString *efsVolumeConfigurationRootDirectory = 0;
NSString *efsVolumeConfigurationTransitEncryption = 0;
int efsVolumeConfigurationTransitEncryptionPort;
NSString *hostSourcePath = 0;
NSString *action = 0;
NSString *onExitCode = 0;
NSString *onReason = 0;
NSString *onStatusReason = 0;

NSString *nextToken = [jResp StringOf: @"nextToken"];
int i = 0;
int count_i = [[jResp SizeOfArray: @"jobDefinitions"] intValue];
while (i < count_i) {
    jResp.I = [NSNumber numberWithInt: i];
    ExecutionRoleArn = [jResp StringOf: @"jobDefinitions[i].containerProperties.executionRoleArn"];
    PlatformVersion = [jResp StringOf: @"jobDefinitions[i].containerProperties.fargatePlatformConfiguration.platformVersion"];
    Image = [jResp StringOf: @"jobDefinitions[i].containerProperties.image"];
    InstanceType = [jResp StringOf: @"jobDefinitions[i].containerProperties.instanceType"];
    JobRoleArn = [jResp StringOf: @"jobDefinitions[i].containerProperties.jobRoleArn"];
    InitProcessEnabled = [[jResp IntOf: @"jobDefinitions[i].containerProperties.linuxParameters.initProcessEnabled"] intValue];
    MaxSwap = [[jResp IntOf: @"jobDefinitions[i].containerProperties.linuxParameters.maxSwap"] intValue];
    SharedMemorySize = [[jResp IntOf: @"jobDefinitions[i].containerProperties.linuxParameters.sharedMemorySize"] intValue];
    Swappiness = [[jResp IntOf: @"jobDefinitions[i].containerProperties.linuxParameters.swappiness"] intValue];
    LogDriver = [jResp StringOf: @"jobDefinitions[i].containerProperties.logConfiguration.logDriver"];
    v_String = [jResp StringOf: @"jobDefinitions[i].containerProperties.logConfiguration.options.string"];
    Memory = [[jResp IntOf: @"jobDefinitions[i].containerProperties.memory"] intValue];
    AssignPublicIp = [jResp StringOf: @"jobDefinitions[i].containerProperties.networkConfiguration.assignPublicIp"];
    Privileged = [[jResp IntOf: @"jobDefinitions[i].containerProperties.privileged"] intValue];
    ReadonlyRootFilesystem = [[jResp IntOf: @"jobDefinitions[i].containerProperties.readonlyRootFilesystem"] intValue];
    User = [jResp StringOf: @"jobDefinitions[i].containerProperties.user"];
    Vcpus = [[jResp IntOf: @"jobDefinitions[i].containerProperties.vcpus"] intValue];
    jobDefinitionArn = [jResp StringOf: @"jobDefinitions[i].jobDefinitionArn"];
    jobDefinitionName = [jResp StringOf: @"jobDefinitions[i].jobDefinitionName"];
    MainNode = [[jResp IntOf: @"jobDefinitions[i].nodeProperties.mainNode"] intValue];
    NumNodes = [[jResp IntOf: @"jobDefinitions[i].nodeProperties.numNodes"] intValue];
    parametersString = [jResp StringOf: @"jobDefinitions[i].parameters.string"];
    propagateTags = [[jResp IntOf: @"jobDefinitions[i].propagateTags"] intValue];
    Attempts = [[jResp IntOf: @"jobDefinitions[i].retryStrategy.attempts"] intValue];
    revision = [[jResp IntOf: @"jobDefinitions[i].revision"] intValue];
    schedulingPriority = [[jResp IntOf: @"jobDefinitions[i].schedulingPriority"] intValue];
    status = [jResp StringOf: @"jobDefinitions[i].status"];
    tagsString = [jResp StringOf: @"jobDefinitions[i].tags.string"];
    AttemptDurationSeconds = [[jResp IntOf: @"jobDefinitions[i].timeout.attemptDurationSeconds"] intValue];
    v_type = [jResp StringOf: @"jobDefinitions[i].type"];
    j = 0;
    count_j = [[jResp SizeOfArray: @"jobDefinitions[i].containerProperties.command"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        strVal = [jResp StringOf: @"jobDefinitions[i].containerProperties.command[j]"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"jobDefinitions[i].containerProperties.environment"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        name = [jResp StringOf: @"jobDefinitions[i].containerProperties.environment[j].name"];
        value = [jResp StringOf: @"jobDefinitions[i].containerProperties.environment[j].value"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"jobDefinitions[i].containerProperties.linuxParameters.devices"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        containerPath = [jResp StringOf: @"jobDefinitions[i].containerProperties.linuxParameters.devices[j].containerPath"];
        hostPath = [jResp StringOf: @"jobDefinitions[i].containerProperties.linuxParameters.devices[j].hostPath"];
        k = 0;
        count_k = [[jResp SizeOfArray: @"jobDefinitions[i].containerProperties.linuxParameters.devices[j].permissions"] intValue];
        while (k < count_k) {
            jResp.K = [NSNumber numberWithInt: k];
            strVal = [jResp StringOf: @"jobDefinitions[i].containerProperties.linuxParameters.devices[j].permissions[k]"];
            k = k + 1;
        }

        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"jobDefinitions[i].containerProperties.linuxParameters.tmpfs"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        containerPath = [jResp StringOf: @"jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].containerPath"];
        size = [[jResp IntOf: @"jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].size"] intValue];
        k = 0;
        count_k = [[jResp SizeOfArray: @"jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].mountOptions"] intValue];
        while (k < count_k) {
            jResp.K = [NSNumber numberWithInt: k];
            strVal = [jResp StringOf: @"jobDefinitions[i].containerProperties.linuxParameters.tmpfs[j].mountOptions[k]"];
            k = k + 1;
        }

        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"jobDefinitions[i].containerProperties.logConfiguration.secretOptions"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        name = [jResp StringOf: @"jobDefinitions[i].containerProperties.logConfiguration.secretOptions[j].name"];
        valueFrom = [jResp StringOf: @"jobDefinitions[i].containerProperties.logConfiguration.secretOptions[j].valueFrom"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"jobDefinitions[i].containerProperties.mountPoints"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        containerPath = [jResp StringOf: @"jobDefinitions[i].containerProperties.mountPoints[j].containerPath"];
        readOnly = [[jResp IntOf: @"jobDefinitions[i].containerProperties.mountPoints[j].readOnly"] intValue];
        sourceVolume = [jResp StringOf: @"jobDefinitions[i].containerProperties.mountPoints[j].sourceVolume"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"jobDefinitions[i].containerProperties.resourceRequirements"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        v_type = [jResp StringOf: @"jobDefinitions[i].containerProperties.resourceRequirements[j].type"];
        value = [jResp StringOf: @"jobDefinitions[i].containerProperties.resourceRequirements[j].value"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"jobDefinitions[i].containerProperties.secrets"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        name = [jResp StringOf: @"jobDefinitions[i].containerProperties.secrets[j].name"];
        valueFrom = [jResp StringOf: @"jobDefinitions[i].containerProperties.secrets[j].valueFrom"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"jobDefinitions[i].containerProperties.ulimits"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        hardLimit = [[jResp IntOf: @"jobDefinitions[i].containerProperties.ulimits[j].hardLimit"] intValue];
        name = [jResp StringOf: @"jobDefinitions[i].containerProperties.ulimits[j].name"];
        softLimit = [[jResp IntOf: @"jobDefinitions[i].containerProperties.ulimits[j].softLimit"] intValue];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"jobDefinitions[i].containerProperties.volumes"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        AccessPointId = [jResp StringOf: @"jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.authorizationConfig.accessPointId"];
        Iam = [jResp StringOf: @"jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.authorizationConfig.iam"];
        FileSystemId = [jResp StringOf: @"jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.fileSystemId"];
        RootDirectory = [jResp StringOf: @"jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.rootDirectory"];
        TransitEncryption = [jResp StringOf: @"jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.transitEncryption"];
        TransitEncryptionPort = [[jResp IntOf: @"jobDefinitions[i].containerProperties.volumes[j].efsVolumeConfiguration.transitEncryptionPort"] intValue];
        SourcePath = [jResp StringOf: @"jobDefinitions[i].containerProperties.volumes[j].host.sourcePath"];
        name = [jResp StringOf: @"jobDefinitions[i].containerProperties.volumes[j].name"];
        j = j + 1;
    }

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

        k = 0;
        count_k = [[jResp SizeOfArray: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.environment"] intValue];
        while (k < count_k) {
            jResp.K = [NSNumber numberWithInt: k];
            name = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.environment[k].name"];
            value = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.environment[k].value"];
            k = k + 1;
        }

        k = 0;
        count_k = [[jResp SizeOfArray: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices"] intValue];
        while (k < count_k) {
            jResp.K = [NSNumber numberWithInt: k];
            containerPath = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices[k].containerPath"];
            hostPath = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices[k].hostPath"];

            json1 = [jResp ObjectOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.devices[k]"];
            i1 = 0;
            count_i1 = [[json1 SizeOfArray: @"permissions"] intValue];
            while (i1 < count_i1) {
                json1.I = [NSNumber numberWithInt: i1];
                strVal = [json1 StringOf: @"permissions[i]"];
                i1 = i1 + 1;
            }

            k = k + 1;
        }

        k = 0;
        count_k = [[jResp SizeOfArray: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs"] intValue];
        while (k < count_k) {
            jResp.K = [NSNumber numberWithInt: k];
            containerPath = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs[k].containerPath"];
            size = [[jResp IntOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs[k].size"] intValue];

            json1 = [jResp ObjectOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.linuxParameters.tmpfs[k]"];
            i1 = 0;
            count_i1 = [[json1 SizeOfArray: @"mountOptions"] intValue];
            while (i1 < count_i1) {
                json1.I = [NSNumber numberWithInt: i1];
                strVal = [json1 StringOf: @"mountOptions[i]"];
                i1 = i1 + 1;
            }

            k = k + 1;
        }

        k = 0;
        count_k = [[jResp SizeOfArray: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.secretOptions"] intValue];
        while (k < count_k) {
            jResp.K = [NSNumber numberWithInt: k];
            name = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.secretOptions[k].name"];
            valueFrom = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.logConfiguration.secretOptions[k].valueFrom"];
            k = k + 1;
        }

        k = 0;
        count_k = [[jResp SizeOfArray: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints"] intValue];
        while (k < count_k) {
            jResp.K = [NSNumber numberWithInt: k];
            containerPath = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints[k].containerPath"];
            readOnly = [[jResp IntOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints[k].readOnly"] intValue];
            sourceVolume = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.mountPoints[k].sourceVolume"];
            k = k + 1;
        }

        k = 0;
        count_k = [[jResp SizeOfArray: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.resourceRequirements"] intValue];
        while (k < count_k) {
            jResp.K = [NSNumber numberWithInt: k];
            v_type = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.resourceRequirements[k].type"];
            value = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.resourceRequirements[k].value"];
            k = k + 1;
        }

        k = 0;
        count_k = [[jResp SizeOfArray: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.secrets"] intValue];
        while (k < count_k) {
            jResp.K = [NSNumber numberWithInt: k];
            name = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.secrets[k].name"];
            valueFrom = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.secrets[k].valueFrom"];
            k = k + 1;
        }

        k = 0;
        count_k = [[jResp SizeOfArray: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits"] intValue];
        while (k < count_k) {
            jResp.K = [NSNumber numberWithInt: k];
            hardLimit = [[jResp IntOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits[k].hardLimit"] intValue];
            name = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits[k].name"];
            softLimit = [[jResp IntOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.ulimits[k].softLimit"] intValue];
            k = k + 1;
        }

        k = 0;
        count_k = [[jResp SizeOfArray: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes"] intValue];
        while (k < count_k) {
            jResp.K = [NSNumber numberWithInt: k];
            AuthorizationConfigAccessPointId = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.authorizationConfig.accessPointId"];
            AuthorizationConfigIam = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.authorizationConfig.iam"];
            efsVolumeConfigurationFileSystemId = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.fileSystemId"];
            efsVolumeConfigurationRootDirectory = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.rootDirectory"];
            efsVolumeConfigurationTransitEncryption = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.transitEncryption"];
            efsVolumeConfigurationTransitEncryptionPort = [[jResp IntOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].efsVolumeConfiguration.transitEncryptionPort"] intValue];
            hostSourcePath = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].host.sourcePath"];
            name = [jResp StringOf: @"jobDefinitions[i].nodeProperties.nodeRangeProperties[j].container.volumes[k].name"];
            k = k + 1;
        }

        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"jobDefinitions[i].platformCapabilities"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        strVal = [jResp StringOf: @"jobDefinitions[i].platformCapabilities[j]"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"jobDefinitions[i].retryStrategy.evaluateOnExit"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        action = [jResp StringOf: @"jobDefinitions[i].retryStrategy.evaluateOnExit[j].action"];
        onExitCode = [jResp StringOf: @"jobDefinitions[i].retryStrategy.evaluateOnExit[j].onExitCode"];
        onReason = [jResp StringOf: @"jobDefinitions[i].retryStrategy.evaluateOnExit[j].onReason"];
        onStatusReason = [jResp StringOf: @"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"
// }