Chilkat Online Tools

ListRuns Go Example

AWS Device Farm

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

    rest := chilkat.NewRest()
    var success bool

    authAws := chilkat.NewAuthAws()
    authAws.SetAccessKey("AWS_ACCESS_KEY")
    authAws.SetSecretKey("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.SetRegion("us-west-2")
    authAws.SetServiceName("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",443,true,true)
    if success != true {
        fmt.Println("ConnectFailReason: ", rest.ConnectFailReason())
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        authAws.DisposeAuthAws()
        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

    json := chilkat.NewJsonObject()
    json.UpdateString("arn","string")
    json.UpdateString("nextToken","string")

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

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

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

    sbRequestBody := chilkat.NewStringBuilder()
    json.EmitSb(sbRequestBody)
    sbResponseBody := chilkat.NewStringBuilder()
    success = rest.FullRequestSb("POST","/",sbRequestBody,sbResponseBody)
    if success != true {
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        authAws.DisposeAuthAws()
        json.DisposeJsonObject()
        sbRequestBody.DisposeStringBuilder()
        sbResponseBody.DisposeStringBuilder()
        return
    }

    respStatusCode := rest.ResponseStatusCode()
    fmt.Println("response status code = ", respStatusCode)
    if respStatusCode != 200 {
        fmt.Println("Response Header:")
        fmt.Println(rest.ResponseHeader())
        fmt.Println("Response Body:")
        fmt.Println(*sbResponseBody.GetAsString())
        rest.DisposeRest()
        authAws.DisposeAuthAws()
        json.DisposeJsonObject()
        sbRequestBody.DisposeStringBuilder()
        sbResponseBody.DisposeStringBuilder()
        return
    }

    jResp := chilkat.NewJsonObject()
    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

appUpload_DECLARATION
arn_DECLARATION
billingMethod_DECLARATION
    var completedJobs int
    var Errored int
    var Failed int
    var Passed int
    var Skipped int
    var Stopped int
    var Total int
    var Warned int
    var created int
    var Metered int
    var deviceMinutesTotal int
    var Unmetered int
devicePoolArn_DECLARATION
    var MatchedDevicesCount int
    var MaxDevices int
    var eventCount int
    var jobTimeoutMinutes int
locale_DECLARATION
    var Latitude int
    var Longitude int
message_DECLARATION
name_DECLARATION
Arn_DECLARATION
Description_DECLARATION
    var DownlinkBandwidthBits int
    var DownlinkDelayMs int
    var DownlinkJitterMs int
    var DownlinkLossPercent int
Name_DECLARATION
v_Type_DECLARATION
    var UplinkBandwidthBits int
    var UplinkDelayMs int
    var UplinkJitterMs int
    var UplinkLossPercent int
parsingResultUrl_DECLARATION
platform_DECLARATION
    var Bluetooth int
    var Gps int
    var Nfc int
    var Wifi int
result_DECLARATION
resultCode_DECLARATION
    var seed int
    var skipAppResign int
    var started int
status_DECLARATION
    var stopped int
testSpecArn_DECLARATION
    var totalJobs int
v_type_DECLARATION
webUrl_DECLARATION
    var j int
    var count_j int
strVal_DECLARATION
attribute_DECLARATION
operator_DECLARATION
    var k int
    var count_k int

    nextToken := jResp.StringOf("nextToken")
    i := 0
    count_i := jResp.SizeOfArray("runs")
    for i < count_i {
        jResp.SetI(i)
        appUpload = *jResp.StringOf("runs[i].appUpload")
        arn = *jResp.StringOf("runs[i].arn")
        billingMethod = *jResp.StringOf("runs[i].billingMethod")
        completedJobs = jResp.IntOf("runs[i].completedJobs")
        Errored = jResp.IntOf("runs[i].counters.errored")
        Failed = jResp.IntOf("runs[i].counters.failed")
        Passed = jResp.IntOf("runs[i].counters.passed")
        Skipped = jResp.IntOf("runs[i].counters.skipped")
        Stopped = jResp.IntOf("runs[i].counters.stopped")
        Total = jResp.IntOf("runs[i].counters.total")
        Warned = jResp.IntOf("runs[i].counters.warned")
        created = jResp.IntOf("runs[i].created")
        Metered = jResp.IntOf("runs[i].deviceMinutes.metered")
        deviceMinutesTotal = jResp.IntOf("runs[i].deviceMinutes.total")
        Unmetered = jResp.IntOf("runs[i].deviceMinutes.unmetered")
        devicePoolArn = *jResp.StringOf("runs[i].devicePoolArn")
        MatchedDevicesCount = jResp.IntOf("runs[i].deviceSelectionResult.matchedDevicesCount")
        MaxDevices = jResp.IntOf("runs[i].deviceSelectionResult.maxDevices")
        eventCount = jResp.IntOf("runs[i].eventCount")
        jobTimeoutMinutes = jResp.IntOf("runs[i].jobTimeoutMinutes")
        locale = *jResp.StringOf("runs[i].locale")
        Latitude = jResp.IntOf("runs[i].location.latitude")
        Longitude = jResp.IntOf("runs[i].location.longitude")
        message = *jResp.StringOf("runs[i].message")
        name = *jResp.StringOf("runs[i].name")
        Arn = *jResp.StringOf("runs[i].networkProfile.arn")
        Description = *jResp.StringOf("runs[i].networkProfile.description")
        DownlinkBandwidthBits = jResp.IntOf("runs[i].networkProfile.downlinkBandwidthBits")
        DownlinkDelayMs = jResp.IntOf("runs[i].networkProfile.downlinkDelayMs")
        DownlinkJitterMs = jResp.IntOf("runs[i].networkProfile.downlinkJitterMs")
        DownlinkLossPercent = jResp.IntOf("runs[i].networkProfile.downlinkLossPercent")
        Name = *jResp.StringOf("runs[i].networkProfile.name")
        v_Type = *jResp.StringOf("runs[i].networkProfile.type")
        UplinkBandwidthBits = jResp.IntOf("runs[i].networkProfile.uplinkBandwidthBits")
        UplinkDelayMs = jResp.IntOf("runs[i].networkProfile.uplinkDelayMs")
        UplinkJitterMs = jResp.IntOf("runs[i].networkProfile.uplinkJitterMs")
        UplinkLossPercent = jResp.IntOf("runs[i].networkProfile.uplinkLossPercent")
        parsingResultUrl = *jResp.StringOf("runs[i].parsingResultUrl")
        platform = *jResp.StringOf("runs[i].platform")
        Bluetooth = jResp.IntOf("runs[i].radios.bluetooth")
        Gps = jResp.IntOf("runs[i].radios.gps")
        Nfc = jResp.IntOf("runs[i].radios.nfc")
        Wifi = jResp.IntOf("runs[i].radios.wifi")
        result = *jResp.StringOf("runs[i].result")
        resultCode = *jResp.StringOf("runs[i].resultCode")
        seed = jResp.IntOf("runs[i].seed")
        skipAppResign = jResp.IntOf("runs[i].skipAppResign")
        started = jResp.IntOf("runs[i].started")
        status = *jResp.StringOf("runs[i].status")
        stopped = jResp.IntOf("runs[i].stopped")
        testSpecArn = *jResp.StringOf("runs[i].testSpecArn")
        totalJobs = jResp.IntOf("runs[i].totalJobs")
        v_type = *jResp.StringOf("runs[i].type")
        webUrl = *jResp.StringOf("runs[i].webUrl")
        j = 0
        count_j = jResp.SizeOfArray("runs[i].customerArtifactPaths.androidPaths")
        for j < count_j {
            jResp.SetJ(j)
            strVal = *jResp.StringOf("runs[i].customerArtifactPaths.androidPaths[j]")
            j = j + 1
        }

        j = 0
        count_j = jResp.SizeOfArray("runs[i].customerArtifactPaths.deviceHostPaths")
        for j < count_j {
            jResp.SetJ(j)
            strVal = *jResp.StringOf("runs[i].customerArtifactPaths.deviceHostPaths[j]")
            j = j + 1
        }

        j = 0
        count_j = jResp.SizeOfArray("runs[i].customerArtifactPaths.iosPaths")
        for j < count_j {
            jResp.SetJ(j)
            strVal = *jResp.StringOf("runs[i].customerArtifactPaths.iosPaths[j]")
            j = j + 1
        }

        j = 0
        count_j = jResp.SizeOfArray("runs[i].deviceSelectionResult.filters")
        for j < count_j {
            jResp.SetJ(j)
            attribute = *jResp.StringOf("runs[i].deviceSelectionResult.filters[j].attribute")
            operator = *jResp.StringOf("runs[i].deviceSelectionResult.filters[j].operator")
            k = 0
            count_k = jResp.SizeOfArray("runs[i].deviceSelectionResult.filters[j].values")
            for k < count_k {
                jResp.SetK(k)
                strVal = *jResp.StringOf("runs[i].deviceSelectionResult.filters[j].values[k]")
                k = k + 1
            }

            j = j + 1
        }

        i = i + 1
    }

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

    // {
    //   "nextToken": "string",
    //   "runs": [
    //     {
    //       "appUpload": "string",
    //       "arn": "string",
    //       "billingMethod": "string",
    //       "completedJobs": number,
    //       "counters": {
    //         "errored": number,
    //         "failed": number,
    //         "passed": number,
    //         "skipped": number,
    //         "stopped": number,
    //         "total": number,
    //         "warned": number
    //       },
    //       "created": number,
    //       "customerArtifactPaths": {
    //         "androidPaths": [
    //           "string"
    //         ],
    //         "deviceHostPaths": [
    //           "string"
    //         ],
    //         "iosPaths": [
    //           "string"
    //         ]
    //       },
    //       "deviceMinutes": {
    //         "metered": number,
    //         "total": number,
    //         "unmetered": number
    //       },
    //       "devicePoolArn": "string",
    //       "deviceSelectionResult": {
    //         "filters": [
    //           {
    //             "attribute": "string",
    //             "operator": "string",
    //             "values": [
    //               "string"
    //             ]
    //           }
    //         ],
    //         "matchedDevicesCount": number,
    //         "maxDevices": number
    //       },
    //       "eventCount": number,
    //       "jobTimeoutMinutes": number,
    //       "locale": "string",
    //       "location": {
    //         "latitude": number,
    //         "longitude": number
    //       },
    //       "message": "string",
    //       "name": "string",
    //       "networkProfile": {
    //         "arn": "string",
    //         "description": "string",
    //         "downlinkBandwidthBits": number,
    //         "downlinkDelayMs": number,
    //         "downlinkJitterMs": number,
    //         "downlinkLossPercent": number,
    //         "name": "string",
    //         "type": "string",
    //         "uplinkBandwidthBits": number,
    //         "uplinkDelayMs": number,
    //         "uplinkJitterMs": number,
    //         "uplinkLossPercent": number
    //       },
    //       "parsingResultUrl": "string",
    //       "platform": "string",
    //       "radios": {
    //         "bluetooth": boolean,
    //         "gps": boolean,
    //         "nfc": boolean,
    //         "wifi": boolean
    //       },
    //       "result": "string",
    //       "resultCode": "string",
    //       "seed": number,
    //       "skipAppResign": boolean,
    //       "started": number,
    //       "status": "string",
    //       "stopped": number,
    //       "testSpecArn": "string",
    //       "totalJobs": number,
    //       "type": "string",
    //       "webUrl": "string"
    //     }
    //   ]
    // }

    rest.DisposeRest()
    authAws.DisposeAuthAws()
    json.DisposeJsonObject()
    sbRequestBody.DisposeStringBuilder()
    sbResponseBody.DisposeStringBuilder()
    jResp.DisposeJsonObject()