Chilkat Online Tools

ListUniqueProblems Swift3 Example

AWS Device Farm

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 = "devicefarm"
    // SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
    rest.setAuthAws(authAws)

    // URL: https://devicefarm.us-west-2.amazonaws.com/
    // Use the same region as specified above.
    success = rest.connect("devicefarm.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("arn", value: "string")
    json.update("nextToken", value: "string")

    // The JSON request body created by the above code:

    // {
    //   "arn": "string",
    //   "nextToken": "string"
    // }

    rest.addHeader("Content-Type", value: "application/x-amz-json-1.1")
    rest.addHeader("X-Amz-Target", value: "DeviceFarm_20150623.ListUniqueProblems")

    let sbRequestBody = CkoStringBuilder()!
    json.emitSb(sbRequestBody)
    let sbResponseBody = CkoStringBuilder()!
    success = rest.fullRequestSb("POST", uriPath: "/", 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 message: String?
    var j: Int
    var count_j: Int
    var Arn: String?
    var Availability: String?
    var Carrier: String?
    var Architecture: String?
    var Clock: Int
    var Frequency: String?
    var FleetName: String?
    var FleetType: String?
    var FormFactor: String?
    var HeapSize: Int
    var Image: String?
    var Manufacturer: String?
    var Memory: Int
    var Model: String?
    var ModelId: String?
    var Name: String?
    var Os: String?
    var Platform: String?
    var Radio: String?
    var RemoteAccessEnabled: Int
    var RemoteDebugEnabled: Int
    var Height: Int
    var Width: Int
    var jobArn: String?
    var jobName: String?
    var result: String?
    var runArn: String?
    var runName: String?
    var suiteArn: String?
    var suiteName: String?
    var testArn: String?
    var testName: String?
    var k: Int
    var count_k: Int
    var arn: String?
    var deviceArn: String?
    var instanceProfileArn: String?
    var Description: String?
    var instanceProfileName: String?
    var PackageCleanup: Int
    var RebootAfterUse: Int
    var status: String?
    var udid: String?
    var json1: CkoJsonObject?
    var i1: Int
    var count_i1: Int
    var strVal: String?

    var nextToken: String? = jResp.string(of: "nextToken")
    var i: Int = 0
    var count_i: Int = jResp.size(ofArray: "uniqueProblems.string").intValue
    while i < count_i {
        jResp.i = i
        message = jResp.string(of: "uniqueProblems.string[i].message")
        j = 0
        count_j = jResp.size(ofArray: "uniqueProblems.string[i].problems").intValue
        while j < count_j {
            jResp.j = j
            Arn = jResp.string(of: "uniqueProblems.string[i].problems[j].device.arn")
            Availability = jResp.string(of: "uniqueProblems.string[i].problems[j].device.availability")
            Carrier = jResp.string(of: "uniqueProblems.string[i].problems[j].device.carrier")
            Architecture = jResp.string(of: "uniqueProblems.string[i].problems[j].device.cpu.architecture")
            Clock = jResp.int(of: "uniqueProblems.string[i].problems[j].device.cpu.clock").intValue
            Frequency = jResp.string(of: "uniqueProblems.string[i].problems[j].device.cpu.frequency")
            FleetName = jResp.string(of: "uniqueProblems.string[i].problems[j].device.fleetName")
            FleetType = jResp.string(of: "uniqueProblems.string[i].problems[j].device.fleetType")
            FormFactor = jResp.string(of: "uniqueProblems.string[i].problems[j].device.formFactor")
            HeapSize = jResp.int(of: "uniqueProblems.string[i].problems[j].device.heapSize").intValue
            Image = jResp.string(of: "uniqueProblems.string[i].problems[j].device.image")
            Manufacturer = jResp.string(of: "uniqueProblems.string[i].problems[j].device.manufacturer")
            Memory = jResp.int(of: "uniqueProblems.string[i].problems[j].device.memory").intValue
            Model = jResp.string(of: "uniqueProblems.string[i].problems[j].device.model")
            ModelId = jResp.string(of: "uniqueProblems.string[i].problems[j].device.modelId")
            Name = jResp.string(of: "uniqueProblems.string[i].problems[j].device.name")
            Os = jResp.string(of: "uniqueProblems.string[i].problems[j].device.os")
            Platform = jResp.string(of: "uniqueProblems.string[i].problems[j].device.platform")
            Radio = jResp.string(of: "uniqueProblems.string[i].problems[j].device.radio")
            RemoteAccessEnabled = jResp.int(of: "uniqueProblems.string[i].problems[j].device.remoteAccessEnabled").intValue
            RemoteDebugEnabled = jResp.int(of: "uniqueProblems.string[i].problems[j].device.remoteDebugEnabled").intValue
            Height = jResp.int(of: "uniqueProblems.string[i].problems[j].device.resolution.height").intValue
            Width = jResp.int(of: "uniqueProblems.string[i].problems[j].device.resolution.width").intValue
            jobArn = jResp.string(of: "uniqueProblems.string[i].problems[j].job.arn")
            jobName = jResp.string(of: "uniqueProblems.string[i].problems[j].job.name")
            message = jResp.string(of: "uniqueProblems.string[i].problems[j].message")
            result = jResp.string(of: "uniqueProblems.string[i].problems[j].result")
            runArn = jResp.string(of: "uniqueProblems.string[i].problems[j].run.arn")
            runName = jResp.string(of: "uniqueProblems.string[i].problems[j].run.name")
            suiteArn = jResp.string(of: "uniqueProblems.string[i].problems[j].suite.arn")
            suiteName = jResp.string(of: "uniqueProblems.string[i].problems[j].suite.name")
            testArn = jResp.string(of: "uniqueProblems.string[i].problems[j].test.arn")
            testName = jResp.string(of: "uniqueProblems.string[i].problems[j].test.name")
            k = 0
            count_k = jResp.size(ofArray: "uniqueProblems.string[i].problems[j].device.instances").intValue
            while k < count_k {
                jResp.k = k
                arn = jResp.string(of: "uniqueProblems.string[i].problems[j].device.instances[k].arn")
                deviceArn = jResp.string(of: "uniqueProblems.string[i].problems[j].device.instances[k].deviceArn")
                instanceProfileArn = jResp.string(of: "uniqueProblems.string[i].problems[j].device.instances[k].instanceProfile.arn")
                Description = jResp.string(of: "uniqueProblems.string[i].problems[j].device.instances[k].instanceProfile.description")
                instanceProfileName = jResp.string(of: "uniqueProblems.string[i].problems[j].device.instances[k].instanceProfile.name")
                PackageCleanup = jResp.int(of: "uniqueProblems.string[i].problems[j].device.instances[k].instanceProfile.packageCleanup").intValue
                RebootAfterUse = jResp.int(of: "uniqueProblems.string[i].problems[j].device.instances[k].instanceProfile.rebootAfterUse").intValue
                status = jResp.string(of: "uniqueProblems.string[i].problems[j].device.instances[k].status")
                udid = jResp.string(of: "uniqueProblems.string[i].problems[j].device.instances[k].udid")

                json1 = jResp.object(of: "uniqueProblems.string[i].problems[j].device.instances[k]")
                i1 = 0
                count_i1 = json1!.size(ofArray: "instanceProfile.excludeAppPackagesFromCleanup").intValue
                while i1 < count_i1 {
                    json1.i = i1
                    strVal = json1!.string(of: "instanceProfile.excludeAppPackagesFromCleanup[i]")
                    i1 = i1 + 1
                }

                json1 = nil

                json1 = jResp.object(of: "uniqueProblems.string[i].problems[j].device.instances[k]")
                i1 = 0
                count_i1 = json1!.size(ofArray: "labels").intValue
                while i1 < count_i1 {
                    json1.i = i1
                    strVal = json1!.string(of: "labels[i]")
                    i1 = i1 + 1
                }

                json1 = nil
                k = k + 1
            }

            j = j + 1
        }

        i = i + 1
    }

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

    // {
    //   "nextToken": "string",
    //   "uniqueProblems": {
    //     "string": [
    //       {
    //         "message": "string",
    //         "problems": [
    //           {
    //             "device": {
    //               "arn": "string",
    //               "availability": "string",
    //               "carrier": "string",
    //               "cpu": {
    //                 "architecture": "string",
    //                 "clock": number,
    //                 "frequency": "string"
    //               },
    //               "fleetName": "string",
    //               "fleetType": "string",
    //               "formFactor": "string",
    //               "heapSize": number,
    //               "image": "string",
    //               "instances": [
    //                 {
    //                   "arn": "string",
    //                   "deviceArn": "string",
    //                   "instanceProfile": {
    //                     "arn": "string",
    //                     "description": "string",
    //                     "excludeAppPackagesFromCleanup": [
    //                       "string"
    //                     ],
    //                     "name": "string",
    //                     "packageCleanup": boolean,
    //                     "rebootAfterUse": boolean
    //                   },
    //                   "labels": [
    //                     "string"
    //                   ],
    //                   "status": "string",
    //                   "udid": "string"
    //                 }
    //               ],
    //               "manufacturer": "string",
    //               "memory": number,
    //               "model": "string",
    //               "modelId": "string",
    //               "name": "string",
    //               "os": "string",
    //               "platform": "string",
    //               "radio": "string",
    //               "remoteAccessEnabled": boolean,
    //               "remoteDebugEnabled": boolean,
    //               "resolution": {
    //                 "height": number,
    //                 "width": number
    //               }
    //             },
    //             "job": {
    //               "arn": "string",
    //               "name": "string"
    //             },
    //             "message": "string",
    //             "result": "string",
    //             "run": {
    //               "arn": "string",
    //               "name": "string"
    //             },
    //             "suite": {
    //               "arn": "string",
    //               "name": "string"
    //             },
    //             "test": {
    //               "arn": "string",
    //               "name": "string"
    //             }
    //           }
    //         ]
    //       }
    //     ]
    //   }
    // }

}