Chilkat Online Tools

DescribeImages Swift3 Example

Amazon AppStream

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

    // URL: https://appstream2.us-west-2.amazonaws.com/
    // Use the same region as specified above.
    success = rest.connect("appstream2.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("Arns[0]", value: "string")
    json.updateInt("MaxResults", value: 123)
    json.update("Names[0]", value: "string")
    json.update("NextToken", value: "string")
    json.update("Type", value: "string")

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

    // {
    //   "Arns": [
    //     "string"
    //   ],
    //   "MaxResults": number,
    //   "Names": [
    //     "string"
    //   ],
    //   "NextToken": "string",
    //   "Type": "string"
    // }

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

    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 AppstreamAgentVersion: String?
    var Arn: String?
    var BaseImageArn: String?
    var CreatedTime: Int
    var Description: String?
    var DisplayName: String?
    var ImageBuilderName: String?
    var ImageBuilderSupported: Int
    var AllowFleet: Int
    var AllowImageBuilder: Int
    var Name: String?
    var Platform: String?
    var PublicBaseImageReleasedDate: Int
    var State: String?
    var Code: String?
    var Message: String?
    var Visibility: String?
    var j: Int
    var count_j: Int
    var AppBlockArn: String?
    var Enabled: Int
    var S3Bucket: String?
    var S3Key: String?
    var IconURL: String?
    var LaunchParameters: String?
    var LaunchPath: String?
    var v_String: String?
    var WorkingDirectory: String?
    var k: Int
    var count_k: Int
    var strVal: String?
    var ErrorCode: String?
    var ErrorMessage: String?
    var ErrorTimestamp: Int

    var NextToken: String? = jResp.string(of: "NextToken")
    var i: Int = 0
    var count_i: Int = jResp.size(ofArray: "Images").intValue
    while i < count_i {
        jResp.i = i
        AppstreamAgentVersion = jResp.string(of: "Images[i].AppstreamAgentVersion")
        Arn = jResp.string(of: "Images[i].Arn")
        BaseImageArn = jResp.string(of: "Images[i].BaseImageArn")
        CreatedTime = jResp.int(of: "Images[i].CreatedTime").intValue
        Description = jResp.string(of: "Images[i].Description")
        DisplayName = jResp.string(of: "Images[i].DisplayName")
        ImageBuilderName = jResp.string(of: "Images[i].ImageBuilderName")
        ImageBuilderSupported = jResp.int(of: "Images[i].ImageBuilderSupported").intValue
        AllowFleet = jResp.int(of: "Images[i].ImagePermissions.allowFleet").intValue
        AllowImageBuilder = jResp.int(of: "Images[i].ImagePermissions.allowImageBuilder").intValue
        Name = jResp.string(of: "Images[i].Name")
        Platform = jResp.string(of: "Images[i].Platform")
        PublicBaseImageReleasedDate = jResp.int(of: "Images[i].PublicBaseImageReleasedDate").intValue
        State = jResp.string(of: "Images[i].State")
        Code = jResp.string(of: "Images[i].StateChangeReason.Code")
        Message = jResp.string(of: "Images[i].StateChangeReason.Message")
        Visibility = jResp.string(of: "Images[i].Visibility")
        j = 0
        count_j = jResp.size(ofArray: "Images[i].Applications").intValue
        while j < count_j {
            jResp.j = j
            AppBlockArn = jResp.string(of: "Images[i].Applications[j].AppBlockArn")
            Arn = jResp.string(of: "Images[i].Applications[j].Arn")
            CreatedTime = jResp.int(of: "Images[i].Applications[j].CreatedTime").intValue
            Description = jResp.string(of: "Images[i].Applications[j].Description")
            DisplayName = jResp.string(of: "Images[i].Applications[j].DisplayName")
            Enabled = jResp.int(of: "Images[i].Applications[j].Enabled").intValue
            S3Bucket = jResp.string(of: "Images[i].Applications[j].IconS3Location.S3Bucket")
            S3Key = jResp.string(of: "Images[i].Applications[j].IconS3Location.S3Key")
            IconURL = jResp.string(of: "Images[i].Applications[j].IconURL")
            LaunchParameters = jResp.string(of: "Images[i].Applications[j].LaunchParameters")
            LaunchPath = jResp.string(of: "Images[i].Applications[j].LaunchPath")
            v_String = jResp.string(of: "Images[i].Applications[j].Metadata.string")
            Name = jResp.string(of: "Images[i].Applications[j].Name")
            WorkingDirectory = jResp.string(of: "Images[i].Applications[j].WorkingDirectory")
            k = 0
            count_k = jResp.size(ofArray: "Images[i].Applications[j].InstanceFamilies").intValue
            while k < count_k {
                jResp.k = k
                strVal = jResp.string(of: "Images[i].Applications[j].InstanceFamilies[k]")
                k = k + 1
            }

            k = 0
            count_k = jResp.size(ofArray: "Images[i].Applications[j].Platforms").intValue
            while k < count_k {
                jResp.k = k
                strVal = jResp.string(of: "Images[i].Applications[j].Platforms[k]")
                k = k + 1
            }

            j = j + 1
        }

        j = 0
        count_j = jResp.size(ofArray: "Images[i].ImageErrors").intValue
        while j < count_j {
            jResp.j = j
            ErrorCode = jResp.string(of: "Images[i].ImageErrors[j].ErrorCode")
            ErrorMessage = jResp.string(of: "Images[i].ImageErrors[j].ErrorMessage")
            ErrorTimestamp = jResp.int(of: "Images[i].ImageErrors[j].ErrorTimestamp").intValue
            j = j + 1
        }

        i = i + 1
    }

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

    // {
    //   "Images": [
    //     {
    //       "Applications": [
    //         {
    //           "AppBlockArn": "string",
    //           "Arn": "string",
    //           "CreatedTime": number,
    //           "Description": "string",
    //           "DisplayName": "string",
    //           "Enabled": boolean,
    //           "IconS3Location": {
    //             "S3Bucket": "string",
    //             "S3Key": "string"
    //           },
    //           "IconURL": "string",
    //           "InstanceFamilies": [
    //             "string"
    //           ],
    //           "LaunchParameters": "string",
    //           "LaunchPath": "string",
    //           "Metadata": {
    //             "string": "string"
    //           },
    //           "Name": "string",
    //           "Platforms": [
    //             "string"
    //           ],
    //           "WorkingDirectory": "string"
    //         }
    //       ],
    //       "AppstreamAgentVersion": "string",
    //       "Arn": "string",
    //       "BaseImageArn": "string",
    //       "CreatedTime": number,
    //       "Description": "string",
    //       "DisplayName": "string",
    //       "ImageBuilderName": "string",
    //       "ImageBuilderSupported": boolean,
    //       "ImageErrors": [
    //         {
    //           "ErrorCode": "string",
    //           "ErrorMessage": "string",
    //           "ErrorTimestamp": number
    //         }
    //       ],
    //       "ImagePermissions": {
    //         "allowFleet": boolean,
    //         "allowImageBuilder": boolean
    //       },
    //       "Name": "string",
    //       "Platform": "string",
    //       "PublicBaseImageReleasedDate": number,
    //       "State": "string",
    //       "StateChangeReason": {
    //         "Code": "string",
    //         "Message": "string"
    //       },
    //       "Visibility": "string"
    //     }
    //   ],
    //   "NextToken": "string"
    // }

}