# 设为处理结果生效版本

```{raw} html
<div class="mo-api-page-show-toc" aria-hidden="true"></div>
```

设置一个或多个处理结果输出内容的生效版本。

```text
POST https://api.moi.matrixorigin.cn/v5/lineage/artifacts/{artifact_id}/effective-revisions
```

## 调用前准备

准备有目标工作区访问权限的[个人访问令牌](../../../../../guides/genesis/api-keys.md#创建和管理个人访问令牌)和[目标工作区 ID](../../../../../guides/ai-studio/resource-center/workspace.md#复制工作区-id)。

## 请求示例

示例中的凭据和资源标识需替换为当前调用者的实际值。

```bash
curl -X POST "https://api.moi.matrixorigin.cn/v5/lineage/artifacts/$ARTIFACT_ID/effective-revisions" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "switches": [
    {
      "block_id": "block-001",
      "effective_revision_id": "rev-002"
    }
  ],
  "expected_effective_set_version": 3
}'
```

## 路径参数

| 参数 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `artifact_id` | string | 是 | 根资产 ID 与源运行 ID 组成的复合标识，作为一个路径段编码。 |

## 请求体

| 字段 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `expected_effective_set_version` | integer | 是 | 用于避免并发覆盖的生效版本集版本号；不小于 0。 |
| `switches` | object（对象数组） | 是 | 要更新的输出内容列表；至少 1 项。 |
| `switches[].block_id` | string | 对象提供时 | 输出块ID；不能为空。 |
| `switches[].effective_revision_id` | string | 否 | 当前生效修订 ID。 |
| `switches[].use_original` | boolean | 否 | 是否使用原始内容作为基线。 |

字段路径中的 `[]` 表示数组中的每一项。

expected_effective_set_version 必须提交，首次切换为 0。版本冲突返回 409；读取最新状态并核对选择后再提交。

switches 必须满足接口规定的非空与唯一性要求，不能重复选择同一目标。即使选择与当前相同，也会推进版本；目标不存在或版本冲突分别返回 404、409。

## 成功响应

请求成功时返回 HTTP 200，响应如下。

切换仅改变生效修订指针，不会自动执行节点重跑。

```json
{
  "code": "OK",
  "msg": "OK",
  "data": {
    "artifact_id": "asset-001:case-001",
    "effective_set_version": 4
  }
}
```

响应字段如下。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `data.artifact_id` | string | 处理结果 ID。 |
| `data.node_id` | string | 完整节点路径。 无值时可省略。 |
| `data.node_execution_id` | string | 节点执行ID。 无值时可省略。 |
| `data.output_artifact_id` | string | 输出产物ID。 无值时可省略。 |
| `data.effective_set_version` | integer | 设置后的生效版本集版本号；不小于 1。 |

## 错误响应

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} 响应示例
```json
{
  "code": "ErrParamInvalid",
  "msg": "请求参数无效",
  "data": null
}
```
:::::
:::::{tab-item} 字段说明
| 字段 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `code` | string | 否 | 错误代码。 |
| `msg` | string | 否 | 可读错误信息。 |
| `data` | null | 否 | 错误响应中为 null。 |
:::::
::::::
:::::::
