Chilkat Online Tools

ListDataSources Swift3 Example

AWS AppSync

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

    // URL: https://appsync.us-west-2.amazonaws.com/
    // Use the same region as specified above.
    success = rest.connect("appsync.us-west-2.amazonaws.com", port: 443, tls: true, autoReconnect: true)
    if success != true {
        print("ConnectFailReason: \(rest.connectFailReason.intValue)")
        print("\(rest.lastErrorText!)")
        return
    }

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

    let sbResponseBody = CkoStringBuilder()!
    success = rest.fullRequestNoBodySb("GET", uriPath: "/v1/apis/{apiId}/datasources", sb: 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 dataSourceArn: String?
    var description: String?
    var AwsRegion: String?
    var BaseTableTTL: Int
    var DeltaSyncTableName: String?
    var DeltaSyncTableTTL: Int
    var TableName: String?
    var UseCallerCredentials: Int
    var Versioned: Int
    var elasticsearchConfigAwsRegion: String?
    var Endpoint: String?
    var AuthorizationType: String?
    var SigningRegion: String?
    var SigningServiceName: String?
    var httpConfigEndpoint: String?
    var LambdaFunctionArn: String?
    var name: String?
    var openSearchServiceConfigAwsRegion: String?
    var openSearchServiceConfigEndpoint: String?
    var RdsHttpEndpointConfigAwsRegion: String?
    var AwsSecretStoreArn: String?
    var DatabaseName: String?
    var DbClusterIdentifier: String?
    var Schema: String?
    var RelationalDatabaseSourceType: String?
    var serviceRoleArn: String?
    var v_type: String?

    var nextToken: String? = jResp.string(of: "nextToken")
    var i: Int = 0
    var count_i: Int = jResp.size(ofArray: "dataSources").intValue
    while i < count_i {
        jResp.i = i
        dataSourceArn = jResp.string(of: "dataSources[i].dataSourceArn")
        description = jResp.string(of: "dataSources[i].description")
        AwsRegion = jResp.string(of: "dataSources[i].dynamodbConfig.awsRegion")
        BaseTableTTL = jResp.int(of: "dataSources[i].dynamodbConfig.deltaSyncConfig.baseTableTTL").intValue
        DeltaSyncTableName = jResp.string(of: "dataSources[i].dynamodbConfig.deltaSyncConfig.deltaSyncTableName")
        DeltaSyncTableTTL = jResp.int(of: "dataSources[i].dynamodbConfig.deltaSyncConfig.deltaSyncTableTTL").intValue
        TableName = jResp.string(of: "dataSources[i].dynamodbConfig.tableName")
        UseCallerCredentials = jResp.int(of: "dataSources[i].dynamodbConfig.useCallerCredentials").intValue
        Versioned = jResp.int(of: "dataSources[i].dynamodbConfig.versioned").intValue
        elasticsearchConfigAwsRegion = jResp.string(of: "dataSources[i].elasticsearchConfig.awsRegion")
        Endpoint = jResp.string(of: "dataSources[i].elasticsearchConfig.endpoint")
        AuthorizationType = jResp.string(of: "dataSources[i].httpConfig.authorizationConfig.authorizationType")
        SigningRegion = jResp.string(of: "dataSources[i].httpConfig.authorizationConfig.awsIamConfig.signingRegion")
        SigningServiceName = jResp.string(of: "dataSources[i].httpConfig.authorizationConfig.awsIamConfig.signingServiceName")
        httpConfigEndpoint = jResp.string(of: "dataSources[i].httpConfig.endpoint")
        LambdaFunctionArn = jResp.string(of: "dataSources[i].lambdaConfig.lambdaFunctionArn")
        name = jResp.string(of: "dataSources[i].name")
        openSearchServiceConfigAwsRegion = jResp.string(of: "dataSources[i].openSearchServiceConfig.awsRegion")
        openSearchServiceConfigEndpoint = jResp.string(of: "dataSources[i].openSearchServiceConfig.endpoint")
        RdsHttpEndpointConfigAwsRegion = jResp.string(of: "dataSources[i].relationalDatabaseConfig.rdsHttpEndpointConfig.awsRegion")
        AwsSecretStoreArn = jResp.string(of: "dataSources[i].relationalDatabaseConfig.rdsHttpEndpointConfig.awsSecretStoreArn")
        DatabaseName = jResp.string(of: "dataSources[i].relationalDatabaseConfig.rdsHttpEndpointConfig.databaseName")
        DbClusterIdentifier = jResp.string(of: "dataSources[i].relationalDatabaseConfig.rdsHttpEndpointConfig.dbClusterIdentifier")
        Schema = jResp.string(of: "dataSources[i].relationalDatabaseConfig.rdsHttpEndpointConfig.schema")
        RelationalDatabaseSourceType = jResp.string(of: "dataSources[i].relationalDatabaseConfig.relationalDatabaseSourceType")
        serviceRoleArn = jResp.string(of: "dataSources[i].serviceRoleArn")
        v_type = jResp.string(of: "dataSources[i].type")
        i = i + 1
    }

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

    // {
    //   "dataSources": [
    //     {
    //       "dataSourceArn": "string",
    //       "description": "string",
    //       "dynamodbConfig": {
    //         "awsRegion": "string",
    //         "deltaSyncConfig": {
    //           "baseTableTTL": number,
    //           "deltaSyncTableName": "string",
    //           "deltaSyncTableTTL": number
    //         },
    //         "tableName": "string",
    //         "useCallerCredentials": boolean,
    //         "versioned": boolean
    //       },
    //       "elasticsearchConfig": {
    //         "awsRegion": "string",
    //         "endpoint": "string"
    //       },
    //       "httpConfig": {
    //         "authorizationConfig": {
    //           "authorizationType": "string",
    //           "awsIamConfig": {
    //             "signingRegion": "string",
    //             "signingServiceName": "string"
    //           }
    //         },
    //         "endpoint": "string"
    //       },
    //       "lambdaConfig": {
    //         "lambdaFunctionArn": "string"
    //       },
    //       "name": "string",
    //       "openSearchServiceConfig": {
    //         "awsRegion": "string",
    //         "endpoint": "string"
    //       },
    //       "relationalDatabaseConfig": {
    //         "rdsHttpEndpointConfig": {
    //           "awsRegion": "string",
    //           "awsSecretStoreArn": "string",
    //           "databaseName": "string",
    //           "dbClusterIdentifier": "string",
    //           "schema": "string"
    //         },
    //         "relationalDatabaseSourceType": "string"
    //       },
    //       "serviceRoleArn": "string",
    //       "type": "string"
    //     }
    //   ],
    //   "nextToken": "string"
    // }

}