Update Datasource Connection
Update connection details for the specified datasource.
REQUEST URI
https://<ZohoAnalytics_Server_URI>/restapi/v2/workspaces/<workspace-id>/datasources/<datasource-id>
Putoauthscope: ZohoAnalytics.metadata.update
QUERY PARAMETERS
| Description | |
|---|---|
| CONFIG* | JSONObject Config parameter specifications are available in the below section.  | 
FIELDS FOR CONFIG JSON
| Key | Description | 
|---|---|
| serviceName* | String Name of the cloud service. Allowed Values: 
  | 
| databaseType | String Type of the database. Allowed Values: 
  | 
| hostName* | String
  | 
| port | Integer Database port number.  | 
| userName* | String Service provider login username.  | 
| password | String Service provider login password.  | 
| cloudDatabaseName | String Specify the database name as in the cloud service.  | 
| instanceName | String For SQLSERVER datatype - provide the instance name on which your database is present. If not specified, then default instance will be taken to establish connection. | 
| s3OutputLocation | String For AMAZON ATHENA service - provide the Amazon s3 location path where you want to store the query results. This path should be prefixed bt s3://. | 
| warehouseName | String For SNOWFLAKE service - provide the warehousename value on which your snowflake database instance is present. Make sure that the provided warehouse is active and the given user has permission to access the database. | 
| sId | String For ORACLE service - provide the oracle service name value. | 
| projectId | String For GOOGLE BIG QUERY service - provide the project id of your BigQuery project. This can be obtained from the dashboard of your Google Cloud console. | 
| refreshToken | String For GOOGLE BIG QUERY service - provide the refresh token value. | 
| accessToken | String For GOOGLE BIG QUERY service - provide the access token value. | 
| useSSL | Boolean Set true if your database server set up to serve encrypted data through SSL. Default false. | 
POSSIBLE ERROR CODES
7103, 7301, 8083, 8504, 8518, 8535, 18011, 18040, 18041, 18042, 18043, 18044, 18056, 18060, 18061
Sample Request:
Copiedcurl https://analyticsapi.zoho.com/restapi/v2/workspaces/<workspace-id>/datasources/<datasoure-id>?CONFIG=<encoded_json_value> 
-X 'PUT' 
-H 'ZANALYTICS-ORGID: <org-id>' 
-H 'Authorization: Zoho-oauthtoken <access_token>'Copiedusing System;
using System.Collections.Generic;
using ZohoAnalytics;
namespace ZohoAnalyticsTest
{
    class Program
    {
        long orgId = 67648404;
        long workspaceId = 1148746000002449012;
        public void UpdateDatasourceConnection(IAnalyticsClient ac)
        {
            long datasourceId = 1148746000002545001;
            Dictionary<string, object> config = new Dictionary<string, object>();
            config.Add("serviceName", "AMAZON RDS");
            config.Add("databaseType", "POSTGRESQL");
            config.Add("hostName", "******");
            config.Add("port", "5432");
            config.Add("userName", "******");
            config.Add("password", "******");
            config.Add("cloudDatabaseName", "sampledb");
            IWorkspaceAPI workspace = ac.GetWorkspaceInstance(orgId, workspaceId);
            workspace.UpdateDatasourceConnection(datasourceId, config);
            Console.WriteLine("success");
        }
        static void Main(string[] args)
        {
            string clientId = "";
            string clientSecret = "";
            string refreshToken = "";
            try
            {
                IAnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);
                Program obj = new Program();
                obj.UpdateDatasourceConnection(ac);
            }
            catch (ServerException ex)
            {
                Console.WriteLine("Server exception - " + ex.GetErrorMessage());
            }
            catch (Exception ex)
            {
                Console.WriteLine("Other exception - " + ex.Message);
            }
        }
    }
}
Copiedpackage main
import (
    "fmt"
    ZAnalytics "zoho/pkg/analyticsclient"
)
var(
    clientId = "1000.xxxxxxx"
    clientSecret = "xxxxxxx"
    refreshToken = "1000.xxxxxxx.xxxxxxx"
    orgId = "55522777"
    workspaceId = "35130000001055707"
)
func UpdateDatasourceConnection(ac ZAnalytics.Client) {
    datasourceid:= "1767024000003890005"
    config := map[string]interface{}{}
    config["serviceName"] = "AMAZON RDS"
    config["databaseType"] = "MYSQL"
    config["hostName"] = "******"
    config["port"] = "3306"
    config["userName"] = "******"
    config["password"] = "*****"
    config["cloudDatabaseName"] = "sampledb"
    workspace := ZAnalytics.GetWorkspaceInstance(&ac, orgId, workspaceId)
    exception := workspace.UpdateDatasourceConnection(datasourceid, config)
    if(exception != nil){
        fmt.Println(exception.ErrorMessage)
    }else{
        fmt.Println("Success")
    }
}
func main() {
    ac := ZAnalytics.GetAnalyticsClient(clientId, clientSecret, refreshToken)
    UpdateDatasourceConnection(ac)
}
Copiedimport com.zoho.analytics.client.*;
import org.json.*;
public class Test {
    private long orgId = 55522777l;
    private long workspaceId = 35130000001055707l;
    public static void main(String args[]){
        String clientId = "1000.xxxxxxx";
        String clientSecret = "xxxxxxx";
        String refreshToken = "1000.xxxxxxx.xxxxxxx";
        Test tObj = new Test();
        AnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);
        try {
            tObj.updateDatasourceConnection(ac);
        }
        catch (ServerException ex) {
            System.out.println("Server exception - ErrorCode : " + ex.getErrorCode() + ", ErrorMessage : "  + ex.getErrorMessage());
        }
        catch (ParseException ex) {
            System.out.println("Parser exception - ErrorMessage : "  + ex.getResponseMessage());
        }
        catch (Exception ex) {
            System.out.println("Other exception - ");
            ex.printStackTrace();
        }
    }
    public void updateDatasourceConnection(AnalyticsClient ac) throws Exception {
        long datasourceId = 0l;
        JSONObject config = new JSONObject();
        config.put("serviceName", "AMAZON RDS");
        config.put("databaseType", "POSTGRESQL");
        config.put("hostName", "******");
        config.put("port", "5432");
        config.put("userName", "******");
        config.put("password", "******");
        config.put("cloudDatabaseName", "sampledb");
        WorkspaceAPI workspace = ac.getWorkspaceInstance(orgId, workspaceId);
        workspace.updateDatasourceConnection(datasourceId, config);
        System.out.println("success");
    }
}
Copied<?php
    require 'AnalyticsClient.php';
    class Test
    {
        public $ac = NULL;
        public $client_id = "1000.xxxxxxx";
        public $client_secret = "xxxxxxx";
        public $refresh_token = "1000.xxxxxxx.xxxxxxx";
        public $org_id = "55522777";
        public $workspace_id = "35130000001055707";
        function __construct() {
            $this->ac =  new AnalyticsClient($this->client_id, $this->client_secret, $this->refresh_token);
        }
        function updateDatasourceConnection() {
            $datasource_id = "1767024000003890005";
            $config = array();
            $config["serviceName"] = "AMAZON RDS";
            $config["databaseType"] = "MYSQL";
            $config["hostName"] = "******";
            $config["port"] = "3306";
            $config["userName"] = "******";
            $config["password"] = "******";
            $config["cloudDatabaseName"] = "sampledb";
            $workspace = $this->ac->getWorkspaceInstance($this->org_id, $this->workspace_id);
            $workspace->updateDatasourceConnection($datasource_id, $config);
            echo "success\n";
        }
    }
    $test_obj = new Test();
    try {
        $test_obj->updateDatasourceConnection();
    }
    catch(ServerException $se) {
        echo "Server exception : " . $se->getErrorMessage() . "\n";
    }
    catch(IOException $ioe) {
        echo "IO exception : " . $ioe->getErrorMessage() . "\n";
    }
    catch(ParseException $pe) {
        echo "Parser exception : " . $pe->getErrorMessage() . "\n";
    }
    catch(Exception $e) {
        echo "Exception : " . $e->getErrorMessage() . "\n";
    }
?>
Copiedfrom __future__ import with_statement
from AnalyticsClient import AnalyticsClient
import sys
import json
class Config:
    CLIENTID = "1000.xxxxxxx";
    CLIENTSECRET = "xxxxxxx";
    REFRESHTOKEN = "1000.xxxxxxx.xxxxxxx";
    ORGID = "55522777";
    WORKSPACEID = "35130000001055707";
class sample:
    ac = AnalyticsClient(Config.CLIENTID, Config.CLIENTSECRET, Config.REFRESHTOKEN)
    def update_datasource_connection(self, ac):
        datasource_id = "1767024000003890005"
        config = {}
        config["serviceName"] = "AMAZON RDS"
        config["databaseType"] = "POSTGRESQL"
        config["hostName"] = "******"
        config["port"] = "5432"
        config["userName"] = "******"
        config["password"] = "******"
        config["cloudDatabaseName"] = "sampledb"
        workspace = ac.get_workspace_instance(Config.ORGID, Config.WORKSPACEID)
        workspace.update_datasource_connection(datasource_id, config)           
        print("success")
try:
    obj = sample()
    obj.update_datasource_connection(obj.ac);
except Exception as e:
    print(str(e))
Copiedvar nodelib = require('./ZAnalyticsClient');
var clientId = '1000.xxxxxxx';
var clientSecret = 'xxxxxxx';
var refreshtoken = '1000.xxxxxxx.xxxxxxx';
var orgId = '55522777';
var workspaceId = '35130000001055707';
var datasoureId = '';
var config = {};
config["serviceName"] = "AMAZON RDS";
config["databaseType"] = "POSTGRESQL";
config["hostName"] = "******";
config["port"] = "5432";
config["userName"] = "******";
config["password"] = "******";
config["cloudDatabaseName"] = "sampledb";
var ac = new analyticsClient(clientId, clientSecret, refreshtoken);
var workspace = ac.getWorkspaceInstance(orgId, workspaceId);
workspace.updateDatasourceConnection(datasoureId, config).catch((error) => {
    console.log('errorCode : '+error.errorCode);
    console.log('errorMessage : '+error.errorMessage);
});
CopiedorgId = "55522777";
workspaceId = "35130000001055707";
datasoureId = "";
headersMap = Map();
headersMap.put("ZANALYTICS-ORGID",orgId);
config = Map();
config.put("serviceName", "AMAZON RDS");
config.put("databaseType", "POSTGRESQL");
config.put("hostName", "******");
config.put("port", "5432");
config.put("userName", "******");
config.put("password", "******");
config.put("cloudDatabaseName", "sampledb");
parameters = "CONFIG=" + zoho.encryption.urlEncode(config.toString());
response = invokeurl
[
  url :"https://analyticsapi.zoho.com/restapi/v2/workspaces/" + workspaceId + "/datasources/" + datasoureId + "?" + parameters
  type :PUT
  headers:headersMap
  connection:"analytics_oauth_connection"
];
info response;
Download client libraries: C# | GO | JAVA | PHP | PYTHON | NodeJS
Sample value for CONFIG parameter:
Copied{
   "serviceName":"AMAZON RDS",
   "databaseType":"POSTGRESQL",
   "hostName":"******",
   "port":"5432",
   "userName":"******",
   "password":"******",
   "cloudDatabaseName":"sampledb"
}Sample Response:
CopiedHTTP/1.1 204 No Content