# 更新规格

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

更新一个计算规格的定义。

```text
PUT https://api.moi.matrixorigin.cn/v5/compute-resource-specs/{spec_id}
```

## 调用前准备

先[列出计算规格](list-compute-resource-specs.md)，确认要更新的规格。准备有目标工作区访问权限的个人访问令牌、目标工作区 ID 和规格 ID。

## 请求体

PUT 实际采用零值回填更新：空字符串、0、false 或标量 `null` 都保留旧值，不能用它清空文本、GPU 数值、价格或禁用规格。禁用请使用启用状态 PATCH。调度配置省略时保留，显式 `{}` 或 `null` 清空。

:::::::{div} mo-api-tabs
::::::{tab-set}
:::::{tab-item} 请求示例

```bash
curl -X PUT "https://api.moi.matrixorigin.cn/v5/compute-resource-specs/$SPEC_ID" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "task-standard-small",
    "kind": "task",
    "family": "standard",
    "family_name": "标准",
    "family_name_en": "Standard",
    "cpu_milli": 2000,
    "memory_mib": 4096,
    "gpu_count": 0,
    "gpu_memory_mib": 0,
    "gpu_cores": 0,
    "credit_per_hour": 1,
    "enabled": true
  }'
```

:::::
:::::{tab-item} 参数说明

::::{tab-set}
:::{tab-item} 路径参数

| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `spec_id` | string | 是 | 要更新的计算规格 ID。 |

:::
:::{tab-item} 请求体

| 字段 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `id` | string 或 null | 否 | 规格 ID；提供时必须与路径中的 `spec_id` 一致。 |
| `kind` | string 或 null | 否 | 资源类型。零值、null 或省略时保留旧值。 |
| `family` | string 或 null | 否 | 规格系列。零值、null 或省略时保留旧值。 |
| `family_name` | string 或 null | 否 | 规格系列名称。零值、null 或省略时保留旧值。 |
| `family_name_en` | string 或 null | 否 | 规格系列英文名称。零值、null 或省略时保留旧值。 |
| `cpu_milli` | integer 或 null | 否 | CPU 毫核数。零值、null 或省略时保留旧值。 |
| `memory_mib` | integer 或 null | 否 | 内存 MiB。零值、null 或省略时保留旧值。 |
| `gpu_count` | integer 或 null | 否 | GPU 数量。零值、null 或省略时保留旧值。 |
| `gpu_memory_mib` | integer 或 null | 否 | GPU 显存 MiB。零值、null 或省略时保留旧值。 |
| `gpu_cores` | integer 或 null | 否 | GPU 核数。零值、null 或省略时保留旧值。 |
| `credit_per_hour` | number 或 null | 否 | 每小时积分价格。零值、null 或省略时保留旧值。 |
| `description` | string 或 null | 否 | 当前对象的说明。零值、null 或省略时保留旧值。 |
| `node_placement` | object 或 null | 否 | Kubernetes 节点调度对象；仅接受已定义的 Kubernetes 调度字段。 |
| `node_placement.node_selector` | object 或 null | 否 | 节点标签选择器。对象允许扩展键。 |
| `node_placement.affinity` | object 或 null | 否 | 亲和性配置。 |
| `node_placement.affinity.nodeAffinity` | object 或 null | 否 | 节点亲和条件。 |
| `node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution` | object 或 null | 否 | 必须满足的调度条件。 |
| `node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms` | object[] 或 null | 否 | 节点选择条件。 |
| `node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions` | object[] 或 null | 否 | 标签匹配表达式。 |
| `node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].key` | string | 否 | 匹配键。 |
| `node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].operator` | string | 否 | 匹配运算符。 |
| `node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].values` | string[] 或 null | 否 | 匹配值。 |
| `node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields` | object[] 或 null | 否 | 字段匹配表达式。 |
| `node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].key` | string | 否 | 匹配键。 |
| `node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].operator` | string | 否 | 匹配运算符。 |
| `node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].values` | string[] 或 null | 否 | 匹配值。 |
| `node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution` | object[] 或 null | 否 | 优先匹配的调度条件。 |
| `node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].weight` | integer | 否 | 权重。 |
| `node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference` | object | 否 | 优先条件。 |
| `node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions` | object[] 或 null | 否 | 标签匹配表达式。 |
| `node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].key` | string | 否 | 匹配键。 |
| `node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].operator` | string | 否 | 匹配运算符。 |
| `node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].values` | string[] 或 null | 否 | 匹配值。 |
| `node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields` | object[] 或 null | 否 | 字段匹配表达式。 |
| `node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].key` | string | 否 | 匹配键。 |
| `node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].operator` | string | 否 | 匹配运算符。 |
| `node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].values` | string[] 或 null | 否 | 匹配值。 |
| `node_placement.affinity.podAffinity` | object 或 null | 否 | Pod 亲和条件。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution` | object[] 或 null | 否 | 必须满足的调度条件。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector` | object 或 null | 否 | 标签选择器。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels` | object 或 null | 否 | 标签匹配条件。对象允许扩展键。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions` | object[] 或 null | 否 | 标签匹配表达式。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].key` | string | 否 | 匹配键。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].operator` | string | 否 | 匹配运算符。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values` | string[] 或 null | 否 | 匹配值。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces` | string[] 或 null | 否 | 命名空间。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].topologyKey` | string | 否 | 拓扑标签键。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector` | object 或 null | 否 | 命名空间选择器。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels` | object 或 null | 否 | 标签匹配条件。对象允许扩展键。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions` | object[] 或 null | 否 | 标签匹配表达式。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].key` | string | 否 | 匹配键。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].operator` | string | 否 | 匹配运算符。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values` | string[] 或 null | 否 | 匹配值。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys` | string[] 或 null | 否 | 从现有 Pod 标签读取的匹配键。 |
| `node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys` | string[] 或 null | 否 | 从现有 Pod 标签读取的不匹配键。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution` | object[] 或 null | 否 | 优先匹配的调度条件。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].weight` | integer | 否 | 权重。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm` | object | 否 | Pod 亲和条件。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector` | object 或 null | 否 | 标签选择器。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels` | object 或 null | 否 | 标签匹配条件。对象允许扩展键。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions` | object[] 或 null | 否 | 标签匹配表达式。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].key` | string | 否 | 匹配键。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].operator` | string | 否 | 匹配运算符。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values` | string[] 或 null | 否 | 匹配值。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces` | string[] 或 null | 否 | 命名空间。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.topologyKey` | string | 否 | 拓扑标签键。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector` | object 或 null | 否 | 命名空间选择器。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels` | object 或 null | 否 | 标签匹配条件。对象允许扩展键。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions` | object[] 或 null | 否 | 标签匹配表达式。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].key` | string | 否 | 匹配键。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].operator` | string | 否 | 匹配运算符。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values` | string[] 或 null | 否 | 匹配值。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys` | string[] 或 null | 否 | 从现有 Pod 标签读取的匹配键。 |
| `node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys` | string[] 或 null | 否 | 从现有 Pod 标签读取的不匹配键。 |
| `node_placement.affinity.podAntiAffinity` | object 或 null | 否 | Pod 反亲和条件。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution` | object[] 或 null | 否 | 必须满足的调度条件。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector` | object 或 null | 否 | 标签选择器。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels` | object 或 null | 否 | 标签匹配条件。对象允许扩展键。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions` | object[] 或 null | 否 | 标签匹配表达式。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].key` | string | 否 | 匹配键。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].operator` | string | 否 | 匹配运算符。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values` | string[] 或 null | 否 | 匹配值。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces` | string[] 或 null | 否 | 命名空间。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].topologyKey` | string | 否 | 拓扑标签键。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector` | object 或 null | 否 | 命名空间选择器。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels` | object 或 null | 否 | 标签匹配条件。对象允许扩展键。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions` | object[] 或 null | 否 | 标签匹配表达式。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].key` | string | 否 | 匹配键。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].operator` | string | 否 | 匹配运算符。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values` | string[] 或 null | 否 | 匹配值。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys` | string[] 或 null | 否 | 从现有 Pod 标签读取的匹配键。 |
| `node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys` | string[] 或 null | 否 | 从现有 Pod 标签读取的不匹配键。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution` | object[] 或 null | 否 | 优先匹配的调度条件。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].weight` | integer | 否 | 权重。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm` | object | 否 | Pod 亲和条件。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector` | object 或 null | 否 | 标签选择器。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels` | object 或 null | 否 | 标签匹配条件。对象允许扩展键。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions` | object[] 或 null | 否 | 标签匹配表达式。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].key` | string | 否 | 匹配键。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].operator` | string | 否 | 匹配运算符。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values` | string[] 或 null | 否 | 匹配值。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces` | string[] 或 null | 否 | 命名空间。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.topologyKey` | string | 否 | 拓扑标签键。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector` | object 或 null | 否 | 命名空间选择器。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels` | object 或 null | 否 | 标签匹配条件。对象允许扩展键。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions` | object[] 或 null | 否 | 标签匹配表达式。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].key` | string | 否 | 匹配键。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].operator` | string | 否 | 匹配运算符。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values` | string[] 或 null | 否 | 匹配值。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys` | string[] 或 null | 否 | 从现有 Pod 标签读取的匹配键。 |
| `node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys` | string[] 或 null | 否 | 从现有 Pod 标签读取的不匹配键。 |
| `node_placement.tolerations` | object[] 或 null | 否 | 污点容忍规则。 |
| `node_placement.tolerations[].key` | string | 否 | 匹配键。 |
| `node_placement.tolerations[].operator` | string | 否 | 匹配运算符。 |
| `node_placement.tolerations[].value` | string | 否 | 值。 |
| `node_placement.tolerations[].effect` | string | 否 | 污点效果。 |
| `node_placement.tolerations[].tolerationSeconds` | integer 或 null | 否 | 容忍秒数。 |
| `node_placement.topology_spread_constraints` | object[] 或 null | 否 | 拓扑分布约束。 |
| `node_placement.topology_spread_constraints[].maxSkew` | integer | 否 | 最大分布偏差。 |
| `node_placement.topology_spread_constraints[].topologyKey` | string | 否 | 拓扑标签键。 |
| `node_placement.topology_spread_constraints[].whenUnsatisfiable` | string | 否 | 无法满足约束时的调度方式。 |
| `node_placement.topology_spread_constraints[].labelSelector` | object 或 null | 否 | 标签选择器。 |
| `node_placement.topology_spread_constraints[].labelSelector.matchLabels` | object 或 null | 否 | 标签匹配条件。对象允许扩展键。 |
| `node_placement.topology_spread_constraints[].labelSelector.matchExpressions` | object[] 或 null | 否 | 标签匹配表达式。 |
| `node_placement.topology_spread_constraints[].labelSelector.matchExpressions[].key` | string | 否 | 匹配键。 |
| `node_placement.topology_spread_constraints[].labelSelector.matchExpressions[].operator` | string | 否 | 匹配运算符。 |
| `node_placement.topology_spread_constraints[].labelSelector.matchExpressions[].values` | string[] 或 null | 否 | 匹配值。 |
| `node_placement.topology_spread_constraints[].minDomains` | integer 或 null | 否 | 最少拓扑域数量。 |
| `node_placement.topology_spread_constraints[].nodeAffinityPolicy` | string 或 null | 否 | 节点亲和性计数策略。 |
| `node_placement.topology_spread_constraints[].nodeTaintsPolicy` | string 或 null | 否 | 节点污点计数策略。 |
| `node_placement.topology_spread_constraints[].matchLabelKeys` | string[] 或 null | 否 | 从现有 Pod 标签读取的匹配键。 |
| `node_placement.priority_class_name` | string | 否 | 优先级类名称。 |
| `node_placement.runtime_class_name` | string | 否 | 运行时类名称。 |
| `node_placement.scheduler_name` | string | 否 | 调度器名称。 |
| `enabled` | boolean 或 null | 否 | false、null 或省略均保留旧启用值；禁用需另调用启用状态 PATCH。 |

请求体用于更新非零值字段；省略标量保留原值，不能用本接口禁用规格。

:::
:::{tab-item} `node_placement` 对象

下面表格展开请求示例中的 `node_placement` 对象；每一行是该对象的一个字段。

| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `node_selector` | object | 否 | 节点标签选择器；键和值均为 Kubernetes 合法标签。 |
| `affinity` | object | 否 | Kubernetes Pod 亲和性与反亲和性规则。 |
| `tolerations` | array of object | 否 | 容忍节点污点的规则列表。 |
| `topology_spread_constraints` | array of object | 否 | 拓扑分布约束列表。 |
| `priority_class_name` | string | 否 | Kubernetes PriorityClass 名称。 |
| `runtime_class_name` | string | 否 | Kubernetes RuntimeClass 名称。 |
| `scheduler_name` | string | 否 | Kubernetes 调度器名称。 |

:::
:::{tab-item} `node_placement.node_selector` 对象

下面表格展开请求示例中的 `node_placement.node_selector` 对象；每一行是该对象的一个字段。

| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `<key>` | string | 否 | 一个节点标签键对应的目标标签值。 |

:::
:::{tab-item} `node_placement.affinity` 对象

下面表格展开请求示例中的 `node_placement.affinity` 对象；每一行是该对象的一个字段。

| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `nodeAffinity` | object | 否 | 节点亲和性规则。 |
| `podAffinity` | object | 否 | Pod 亲和性规则。 |
| `podAntiAffinity` | object | 否 | Pod 反亲和性规则。 |

:::
:::{tab-item} `node_placement.tolerations` 项

下面表格展开请求示例中 `node_placement.tolerations` 数组的每一项；每一行是该数组项的一个字段。

| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `key` | string | 否 | 污点键；`operator` 为 `Exists` 时可省略。 |
| `operator` | string | 否 | 匹配方式：`Equal` 或 `Exists`；省略时按 `Equal` 处理。 |
| `value` | string | 否 | 污点值；`operator` 为 `Exists` 时必须为空。 |
| `effect` | string | 否 | 污点效果；有值时为 `NoSchedule`、`PreferNoSchedule` 或 `NoExecute`。 |
| `tolerationSeconds` | integer | 否 | 对 `NoExecute` 污点的容忍秒数。 |

:::
:::{tab-item} `node_placement.topology_spread_constraints` 项

下面表格展开请求示例中 `node_placement.topology_spread_constraints` 数组的每一项；每一行是该数组项的一个字段。

| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `maxSkew` | integer | 否 | 同一拓扑域间允许的最大偏差。 |
| `topologyKey` | string | 否 | 用于划分拓扑域的节点标签键。 |
| `whenUnsatisfiable` | string | 否 | 不满足约束时的处理方式：`DoNotSchedule` 或 `ScheduleAnyway`。 |
| `labelSelector` | object | 否 | 用于匹配 Pod 的标签选择器。 |
| `matchLabelKeys` | array of string | 否 | 参与匹配的 Pod 标签键。 |
| `nodeAffinityPolicy` | string | 否 | 节点亲和性策略。 |
| `nodeTaintsPolicy` | string | 否 | 节点污点策略。 |
| `minDomains` | integer | 否 | 最小可用拓扑域数量。 |

:::
:::{tab-item} `node_placement.topology_spread_constraints[].labelSelector` 对象

下面表格展开请求示例中的 `node_placement.topology_spread_constraints[].labelSelector` 对象；每一行是该对象的一个字段。

| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `matchLabels` | object | 否 | 标签键值选择器。 |
| `matchExpressions` | array of object | 否 | 标签选择表达式列表。 |

:::
:::{tab-item} `node_placement.topology_spread_constraints[].labelSelector.matchLabels` 对象

下面表格展开请求示例中的 `node_placement.topology_spread_constraints[].labelSelector.matchLabels` 对象；每一行是该对象的一个字段。

| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `<key>` | string | 否 | 一个标签键对应的目标标签值。 |

:::
:::{tab-item} `node_placement.topology_spread_constraints[].labelSelector.matchExpressions` 项

下面表格展开请求示例中 `node_placement.topology_spread_constraints[].labelSelector.matchExpressions` 数组的每一项；每一行是该数组项的一个字段。

| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `key` | string | 否 | 标签键。 |
| `operator` | string | 否 | 标签运算符。 |
| `values` | array of string | 否 | 标签比较值列表。 |

:::
::::

:::::
::::::
:::::::

## 成功响应

调度配置的三个名称使用 `priority_class_name`、`runtime_class_name`、`scheduler_name`。亲和性内部的 Kubernetes 字段仍使用 camelCase，不能将所有层级统一改成下划线命名。

成功时返回 200 和当前操作结果。

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} 响应示例

```json
{
  "code": "OK",
  "msg": "OK",
  "data": {
    "id": "task-standard-small",
    "kind": "task",
    "family": "standard",
    "family_name": "标准",
    "family_name_en": "Standard",
    "cpu_milli": 2000,
    "memory_mib": 4096,
    "gpu_count": 0,
    "gpu_memory_mib": 0,
    "gpu_cores": 0,
    "credit_per_hour": 1,
    "description": "用于常规任务",
    "node_placement": {},
    "enabled": true,
    "description_en": "",
    "is_system": false,
    "created_by": "user_01",
    "updated_by": "user_01",
    "created_at": "2026-10-14T00:00:00Z",
    "updated_at": "2026-10-14T00:00:00Z"
  }
}
```

:::::
:::::{tab-item} 字段说明

响应字段如下。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | string | 成功代码。 |
| `msg` | string | 响应信息。 |
| `data` | object | 本次操作返回的数据。 |
| `data.id` | string | 更新后的规格 ID。始终返回。 |
| `data.kind` | string | 资源类型。取值为 `task`、`query`。始终返回。 |
| `data.family` | string | 规格族标识。始终返回。 |
| `data.family_name` | string | 规格族名称。始终返回。 |
| `data.family_name_en` | string | 规格族英文名称。始终返回。 |
| `data.cpu_milli` | integer | CPU 容量，单位为毫核。始终返回。 |
| `data.memory_mib` | integer | 内存容量，单位为 MiB。始终返回。 |
| `data.gpu_count` | integer | GPU 数量。始终返回。 |
| `data.gpu_memory_mib` | integer | GPU 显存，单位为 MiB。始终返回。 |
| `data.gpu_cores` | integer | GPU 核数。始终返回。 |
| `data.credit_per_hour` | number | 每小时 Credit 用量。始终返回。 |
| `data.description` | string | 规格说明。始终返回。 |
| `data.description_en` | string | 英文规格说明；系统规格可返回。始终返回。 |
| `data.node_placement` | object | Kubernetes 节点调度对象；仅接受已定义的 Kubernetes 调度字段。始终返回。 |
| `data.node_placement.node_selector` | object | 节点标签选择器；键和值均为 Kubernetes 合法标签。未设置或零值时可省略。对象允许扩展键。 |
| `data.node_placement.affinity` | object | Kubernetes Pod 亲和性与反亲和性规则。未设置或零值时可省略。 |
| `data.node_placement.affinity.nodeAffinity` | object | 节点亲和性规则。未设置或零值时可省略。 |
| `data.node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution` | object | 必须满足的调度条件。未设置或零值时可省略。 |
| `data.node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms` | object（对象数组） | 节点选择条件。始终返回。 |
| `data.node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions` | object（对象数组） | 标签匹配表达式。未设置或零值时可省略。 |
| `data.node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].key` | string | 匹配键。始终返回。 |
| `data.node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].operator` | string | 匹配运算符。始终返回。 |
| `data.node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].values` | string（字符串数组） | 匹配值。未设置或零值时可省略。 |
| `data.node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields` | object（对象数组） | 字段匹配表达式。未设置或零值时可省略。 |
| `data.node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].key` | string | 匹配键。始终返回。 |
| `data.node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].operator` | string | 匹配运算符。始终返回。 |
| `data.node_placement.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].values` | string（字符串数组） | 匹配值。未设置或零值时可省略。 |
| `data.node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution` | object（对象数组） | 优先匹配的调度条件。未设置或零值时可省略。 |
| `data.node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].weight` | integer | 权重。始终返回。 |
| `data.node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference` | object | 优先条件。始终返回。 |
| `data.node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions` | object（对象数组） | 标签匹配表达式。未设置或零值时可省略。 |
| `data.node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].key` | string | 匹配键。始终返回。 |
| `data.node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].operator` | string | 匹配运算符。始终返回。 |
| `data.node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].values` | string（字符串数组） | 匹配值。未设置或零值时可省略。 |
| `data.node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields` | object（对象数组） | 字段匹配表达式。未设置或零值时可省略。 |
| `data.node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].key` | string | 匹配键。始终返回。 |
| `data.node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].operator` | string | 匹配运算符。始终返回。 |
| `data.node_placement.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].values` | string（字符串数组） | 匹配值。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity` | object | Pod 亲和性规则。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution` | object（对象数组） | 必须满足的调度条件。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector` | object | 标签选择器。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels` | object | 标签匹配条件。未设置或零值时可省略。对象允许扩展键。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions` | object（对象数组） | 标签匹配表达式。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].key` | string | 匹配键。始终返回。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].operator` | string | 匹配运算符。始终返回。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values` | string（字符串数组） | 匹配值。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces` | string（字符串数组） | 命名空间。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].topologyKey` | string | 拓扑标签键。始终返回。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector` | object | 命名空间选择器。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels` | object | 标签匹配条件。未设置或零值时可省略。对象允许扩展键。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions` | object（对象数组） | 标签匹配表达式。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].key` | string | 匹配键。始终返回。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].operator` | string | 匹配运算符。始终返回。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values` | string（字符串数组） | 匹配值。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys` | string（字符串数组） | 从现有 Pod 标签读取的匹配键。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys` | string（字符串数组） | 从现有 Pod 标签读取的不匹配键。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution` | object（对象数组） | 优先匹配的调度条件。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].weight` | integer | 权重。始终返回。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm` | object | Pod 亲和条件。始终返回。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector` | object | 标签选择器。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels` | object | 标签匹配条件。未设置或零值时可省略。对象允许扩展键。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions` | object（对象数组） | 标签匹配表达式。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].key` | string | 匹配键。始终返回。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].operator` | string | 匹配运算符。始终返回。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values` | string（字符串数组） | 匹配值。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces` | string（字符串数组） | 命名空间。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.topologyKey` | string | 拓扑标签键。始终返回。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector` | object | 命名空间选择器。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels` | object | 标签匹配条件。未设置或零值时可省略。对象允许扩展键。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions` | object（对象数组） | 标签匹配表达式。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].key` | string | 匹配键。始终返回。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].operator` | string | 匹配运算符。始终返回。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values` | string（字符串数组） | 匹配值。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys` | string（字符串数组） | 从现有 Pod 标签读取的匹配键。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys` | string（字符串数组） | 从现有 Pod 标签读取的不匹配键。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity` | object | Pod 反亲和性规则。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution` | object（对象数组） | 必须满足的调度条件。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector` | object | 标签选择器。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels` | object | 标签匹配条件。未设置或零值时可省略。对象允许扩展键。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions` | object（对象数组） | 标签匹配表达式。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].key` | string | 匹配键。始终返回。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].operator` | string | 匹配运算符。始终返回。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values` | string（字符串数组） | 匹配值。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces` | string（字符串数组） | 命名空间。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].topologyKey` | string | 拓扑标签键。始终返回。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector` | object | 命名空间选择器。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels` | object | 标签匹配条件。未设置或零值时可省略。对象允许扩展键。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions` | object（对象数组） | 标签匹配表达式。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].key` | string | 匹配键。始终返回。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].operator` | string | 匹配运算符。始终返回。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values` | string（字符串数组） | 匹配值。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys` | string（字符串数组） | 从现有 Pod 标签读取的匹配键。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys` | string（字符串数组） | 从现有 Pod 标签读取的不匹配键。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution` | object（对象数组） | 优先匹配的调度条件。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].weight` | integer | 权重。始终返回。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm` | object | Pod 亲和条件。始终返回。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector` | object | 标签选择器。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels` | object | 标签匹配条件。未设置或零值时可省略。对象允许扩展键。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions` | object（对象数组） | 标签匹配表达式。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].key` | string | 匹配键。始终返回。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].operator` | string | 匹配运算符。始终返回。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values` | string（字符串数组） | 匹配值。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces` | string（字符串数组） | 命名空间。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.topologyKey` | string | 拓扑标签键。始终返回。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector` | object | 命名空间选择器。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels` | object | 标签匹配条件。未设置或零值时可省略。对象允许扩展键。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions` | object（对象数组） | 标签匹配表达式。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].key` | string | 匹配键。始终返回。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].operator` | string | 匹配运算符。始终返回。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values` | string（字符串数组） | 匹配值。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys` | string（字符串数组） | 从现有 Pod 标签读取的匹配键。未设置或零值时可省略。 |
| `data.node_placement.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys` | string（字符串数组） | 从现有 Pod 标签读取的不匹配键。未设置或零值时可省略。 |
| `data.node_placement.tolerations` | object（对象数组） | 容忍节点污点的规则列表。未设置或零值时可省略。 |
| `data.node_placement.tolerations[].key` | string | 污点键；`operator` 为 `Exists` 时可省略。未设置或零值时可省略。 |
| `data.node_placement.tolerations[].operator` | string | 匹配方式：`Equal` 或 `Exists`；省略时按 `Equal` 处理。未设置或零值时可省略。 |
| `data.node_placement.tolerations[].value` | string | 污点值；`operator` 为 `Exists` 时必须为空。未设置或零值时可省略。 |
| `data.node_placement.tolerations[].effect` | string | 污点效果；有值时为 `NoSchedule`、`PreferNoSchedule` 或 `NoExecute`。未设置或零值时可省略。 |
| `data.node_placement.tolerations[].tolerationSeconds` | integer | 对 `NoExecute` 污点的容忍秒数。未设置或零值时可省略。 |
| `data.node_placement.topology_spread_constraints` | object（对象数组） | 拓扑分布约束列表。未设置或零值时可省略。 |
| `data.node_placement.topology_spread_constraints[].maxSkew` | integer | 同一拓扑域间允许的最大偏差。始终返回。 |
| `data.node_placement.topology_spread_constraints[].topologyKey` | string | 用于划分拓扑域的节点标签键。始终返回。 |
| `data.node_placement.topology_spread_constraints[].whenUnsatisfiable` | string | 不满足约束时的处理方式：`DoNotSchedule` 或 `ScheduleAnyway`。始终返回。 |
| `data.node_placement.topology_spread_constraints[].labelSelector` | object | 用于匹配 Pod 的标签选择器。未设置或零值时可省略。 |
| `data.node_placement.topology_spread_constraints[].labelSelector.matchLabels` | object | 标签键值选择器。未设置或零值时可省略。对象允许扩展键。 |
| `data.node_placement.topology_spread_constraints[].labelSelector.matchExpressions` | object（对象数组） | 标签选择表达式列表。未设置或零值时可省略。 |
| `data.node_placement.topology_spread_constraints[].labelSelector.matchExpressions[].key` | string | 标签键。始终返回。 |
| `data.node_placement.topology_spread_constraints[].labelSelector.matchExpressions[].operator` | string | 标签运算符。始终返回。 |
| `data.node_placement.topology_spread_constraints[].labelSelector.matchExpressions[].values` | string（字符串数组） | 标签比较值列表。未设置或零值时可省略。 |
| `data.node_placement.topology_spread_constraints[].minDomains` | integer | 最小可用拓扑域数量。未设置或零值时可省略。 |
| `data.node_placement.topology_spread_constraints[].nodeAffinityPolicy` | string | 节点亲和性策略。未设置或零值时可省略。 |
| `data.node_placement.topology_spread_constraints[].nodeTaintsPolicy` | string | 节点污点策略。未设置或零值时可省略。 |
| `data.node_placement.topology_spread_constraints[].matchLabelKeys` | string（字符串数组） | 参与匹配的 Pod 标签键。未设置或零值时可省略。 |
| `data.node_placement.priority_class_name` | string | 优先级类名称。未设置或零值时可省略。 |
| `data.node_placement.runtime_class_name` | string | 运行时类名称。未设置或零值时可省略。 |
| `data.node_placement.scheduler_name` | string | 调度器名称。未设置或零值时可省略。 |
| `data.enabled` | boolean | 更新后的启用状态。始终返回。 |
| `data.is_system` | boolean | 是否为系统内置规格。始终返回。 |
| `data.created_by` | string | 创建者标识。始终返回。 |
| `data.updated_by` | string | 最后更新者标识。始终返回。 |
| `data.created_at` | string | 创建时间。采用 RFC 3339 格式。始终返回。 |
| `data.updated_at` | string | 最后更新时间。采用 RFC 3339 格式。始终返回。 |

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

:::::
::::::
:::::::

## 错误响应

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} 响应示例

```json
{
  "code": "INVALID_PARAMS",
  "msg": "family_name_en is required",
  "data": null
}
```

:::::
:::::{tab-item} 字段说明

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | string | 错误代码。 |
| `msg` | string | 错误说明。 |
| `data` | null | 错误时为空。 |

:::::
::::::
:::::::

### 常见 HTTP 错误

```{list-table}
:header-rows: 1

* - HTTP 状态码
  - 错误代码
  - 常见原因
  - 建议操作
* - 400
  - `INVALID_PARAMS`、`ErrWorkspaceRequired`
  - 请求字段、工作区或操作前置条件无效。
  - 修正参数后再提交。
* - 401
  - `ErrUnauthenticated`
  - 认证凭据缺失或无效。
  - 检查凭据类型、有效期及认证头。
* - 403
  - `ErrForbidden`
  - 当前身份或有效角色无执行该操作的权限。
  - 使用有权限的身份，或联系管理员授权。
* - 404
  - `COMPUTE_RESOURCE_SPEC_NOT_FOUND`
  - 目标对象或所需引用未找到。
  - 核对对象标识、所属工作区和当前状态。
* - 409
  - `COMPUTE_RESOURCE_SPEC_ALREADY_EXISTS`
  - 资源状态、请求内容或并发条件冲突。
  - 重新读取当前状态和版本，按实际结果处理。
* - 500
  - `LIST_SPECS_FAILED`、`CREATE_SPEC_FAILED`、`UPDATE_SPEC_FAILED`、`SET_SPEC_ENABLED_FAILED`、`ErrServer`
  - 内部处理失败；写操作可能已有部分效果。
  - 保留请求和追踪信息，先核对当前结果。
* - 503
  - `ErrServiceUnavailable`
  - 业务、运行时或授权依赖暂不可用。
  - 恢复依赖后先核对已有结果，不自动重复写入。
```

## 后续操作

如只需切换可用性，使用[启用或禁用计算规格](set-compute-resource-spec-enabled.md)。
