public function edit($dataSetId, $name, $description, $code = '', $isRemote = 0, $method = '', $uri = '', $postData = '', $authentication = '', $username = '', $password = '', $refreshRate = null, $clearRate = null, $runsAfter = null, $dataRoot = '', $summarize = '', $summarizeField = '')
    {
        $this->dataSetId = $dataSetId;
        $this->dataSet = $name;
        $this->description = $description;
        $this->code = $code;
        $this->isRemote = $isRemote;
        $this->method = $method;
        $this->uri = $uri;
        $this->postData = $postData;
        $this->authentication = $authentication;
        $this->username = $username;
        $this->password = $password;
        $this->refreshRate = $refreshRate;
        $this->clearRate = $clearRate;
        $this->runsAfter = $runsAfter;
        $this->dataRoot = $dataRoot;
        $this->summarize = $summarize;
        $this->summarizeField = $summarizeField;

        $this->getLogger()->info('Editing dataSet ID ' . $this->dataSetId);
        $response = $this->doPut('/dataset/' . $dataSetId, $this->toArray());
        
        return $this->hydrate($response);
    }