public WorkspaceImpl updateWorkspace(String id, Workspace update)
throws ConflictException, ServerException, NotFoundException, ValidationException {
requireNonNull(id, "Required non-null workspace id");
requireNonNull(update, "Required non-null workspace update");
requireNonNull(update.getConfig(), "Required non-null workspace configuration update");
validator.validateConfig(update.getConfig());
validator.validateAttributes(update.getAttributes());
WorkspaceImpl workspace = workspaceDao.get(id);
workspace.setConfig(new WorkspaceConfigImpl(update.getConfig()));
workspace.setAttributes(update.getAttributes());
workspace.getAttributes().put(UPDATED_ATTRIBUTE_NAME, Long.toString(currentTimeMillis()));
workspace.setTemporary(update.isTemporary());
return normalizeState(workspaceDao.update(workspace), true);
}