whole_func_string: function DatasetClient(datasetId, opts){
    opts = opts || {};
    this.datasetId = datasetId;
    this.queryParams = opts.queryParams || {};
    this.metaData = opts.metaData || {};
    this.id = generateDatasetClientId(this);
    this.config = opts.config || datasets.getDatasetConfig(datasetId);
    this.collisionCount = opts.collisionCount || 0;
    this.stopped = opts.stopped;
    this.syncScheduled = opts.syncScheduled;
    this.syncCompleted = opts.syncCompleted;
    this.syncLoopStart = opts.syncLoopStart;
    this.syncLoopEnd = opts.syncLoopEnd;
    this.lastAccessed = opts.lastAccessed;
  }
func_code_string: function DatasetClient(datasetId, opts){
    opts = opts || {};
    this.datasetId = datasetId;
    this.queryParams = opts.queryParams || {};
    this.metaData = opts.metaData || {};
    this.id = generateDatasetClientId(this);
    this.config = opts.config || datasets.getDatasetConfig(datasetId);
    this.collisionCount = opts.collisionCount || 0;
    this.stopped = opts.stopped;
    this.syncScheduled = opts.syncScheduled;
    this.syncCompleted = opts.syncCompleted;
    this.syncLoopStart = opts.syncLoopStart;
    this.syncLoopEnd = opts.syncLoopEnd;
    this.lastAccessed = opts.lastAccessed;
  }
func_documentation_string: Represent a dataset client that is managed by sync framework.
  @param {String} datasetId the id of the dataset
  @param {Object} opts options of the dataset client
  @param {Object} opts.queryParams the query parameters of the dataset client. Will be passed to the data handler to list data.
  @param {Object} opts.metaData the meta data of the dataset client. Will be passed to the data handler to list data.
  @param {Object} opts.config the configuration option of the dataset client