Sample code for 30+ languages & platforms
Swift

AWS KMS List Keys

See more AWS KMS Examples

Gets a list of all KMS keys in the caller's AWS account and Region.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

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

    let rest = CkoRest()!

    // Connect to the Amazon AWS REST server.
    // Make sure to use the region that is correct for you.
    // such as https://kms.us-west-2.amazonaws.com/
    var bTls: Bool = true
    var port: Int = 443
    var bAutoReconnect: Bool = true
    success = rest.connect(hostname: "kms.us-west-2.amazonaws.com", port: port, tls: bTls, autoReconnect: bAutoReconnect)

    // Provide AWS credentials for the REST call.
    let authAws = CkoAuthAws()!
    authAws.accessKey = "AWS_ACCESS_KEY"
    authAws.secretKey = "AWS_SECRET_KEY"
    // the region should match our URL above..
    authAws.region = "us-west-2"
    authAws.serviceName = "kms"

    rest.setAuthAws(authProvider: authAws)

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

    var strJson: String? = rest.fullRequestString(httpVerb: "POST", uriPath: "/", bodyText: "{}")
    if rest.lastMethodSuccess != true {
        print("\(rest.lastErrorText!)")
        return
    }

    // A successful response will have a status code equal to 200.
    if rest.responseStatusCode.intValue != 200 {
        print("response status code = \(rest.responseStatusCode.intValue)")
        print("response status text = \(rest.responseStatusText!)")
        print("response header: \(rest.responseHeader!)")
        print("response body: \(strJson!)")
        return
    }

    // Examine the successful JSON response (shown below)
    let json = CkoJsonObject()!
    json.load(json: strJson)
    json.emitCompact = false

    print("\(json.emit()!)")

    // Sample output:

    // {
    //   "KeyCount": 4,
    //   "Keys": [
    //     {
    //       "KeyArn": "arn:aws:kms:us-west-2:954491834127:key/082f8520-7afc-4a09-b703-89b7243072e5",
    //       "KeyId": "082f8520-7afc-4a09-b703-89b7243072e5"
    //     },
    //     {
    //       "KeyArn": "arn:aws:kms:us-west-2:954491834127:key/17432483-ff08-4950-93d3-f46ebb5e17d1",
    //       "KeyId": "17432483-ff08-4950-93d3-f46ebb5e17d1"
    //     },
    //     {
    //       "KeyArn": "arn:aws:kms:us-west-2:954491834127:key/1b0e5b3c-0675-4510-adb6-a75b40a93da0",
    //       "KeyId": "1b0e5b3c-0675-4510-adb6-a75b40a93da0"
    //     },
    //     {
    //       "KeyArn": "arn:aws:kms:us-west-2:954491834127:key/265e3993-428b-4581-9466-b1030a53062f",
    //       "KeyId": "265e3993-428b-4581-9466-b1030a53062f"
    //     },
    //   ],
    //   "Truncated": false
    // }

    // Use this online tool to generate parsing code from sample JSON: 
    // Generate Parsing Code from JSON

    var KeyArn: String?
    var KeyId: String?

    var KeyCount: Int = json.int(of: "KeyCount").intValue
    var Truncated: Bool = json.bool(of: "Truncated")
    var i: Int = 0
    var count_i: Int = json.size(ofArray: "Keys").intValue
    while i < count_i {
        json.i = i
        KeyArn = json.string(of: "Keys[i].KeyArn")
        KeyId = json.string(of: "Keys[i].KeyId")
        i = i + 1
    }


}