public function cloneProject($pidSource, $pidTarget, $includeData = 0, $includeUsers = 0) { $uri = "/gdc/md/{$pidSource}/maintenance/export"; $params = ['exportProject' => ['exportUsers' => $includeUsers, 'exportData' => $includeData]]; $result = $this->client->post($uri, $params); if (empty($result['exportArtifact']['token']) || empty($result['exportArtifact']['status']['uri'])) { throw Exception::unexpectedResponseError('Clone project export failed', 'POST', $uri, $result); } $this->client->pollTask($result['exportArtifact']['status']['uri']); $uri = "/gdc/md/{$pidTarget}/maintenance/import"; $result = $this->client->post($uri, ['importProject' => ['token' => $result['exportArtifact']['token']]]); if (empty($result['uri'])) { throw Exception::unexpectedResponseError('Clone project import failed', 'POST', $uri, $result); } $this->client->pollTask($result['uri']); }