# 启用或禁用计算规格

设置一个计算规格的启用状态。

```text
PATCH https://moi.matrixorigin.cn/newmoi/compute-resource-specs/{spec_id}/enabled
```

## 调用前准备

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

下方示例使用：

- `$AI_STUDIO_API_KEY`：实际个人访问令牌，通过 `X-API-Key` Header 传递。
- `$WORKSPACE_ID`：目标工作区 ID，通过 `X-Workspace-ID` Header 传递。
- `$SPEC_ID`：要设置状态的计算规格 ID，取自[列出计算规格](list-compute-resource-specs.md)的响应。

先[查询计算规格管理权限](get-compute-resource-spec-management-permission.md)。只有结果为 `true` 时才能修改启用状态。禁用规格不会替代对现有计算实例的生命周期管理。

## 路径参数

| 参数 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `spec_id` | string | 是 | 要设置状态的计算规格 ID。 |

## 请求体

| 字段 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `enabled` | boolean | 否 | `true` 启用，`false` 禁用。未提供时服务按 `false` 处理，因此应始终显式传入。 |

## 请求示例

```bash
curl -X PATCH "https://moi.matrixorigin.cn/newmoi/compute-resource-specs/$SPEC_ID/enabled" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  -d '{
    "enabled": false
  }'
```

## 成功响应

成功时返回 `200`。`data` 返回更新后的规格对象，其中 `enabled` 为请求后的状态。

```json
{
  "code": "OK",
  "msg": "OK",
  "data": {
    "id": "task-standard-small",
    "enabled": false
  }
}
```

响应字段如下。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | string | 成功时为 `OK`。 |
| `msg` | string | 成功时为 `OK`。 |
| `data.id` | string | 计算规格 ID。 |
| `data.kind` | string | 资源类型。 |
| `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 | 节点调度配置。 |
| `data.enabled` | boolean | 更新后的启用状态。 |
| `data.is_system` | boolean | 是否为系统内置规格。 |
| `data.created_by` | string | 创建者标识。 |
| `data.updated_by` | string | 最后更新者标识。 |
| `data.created_at` | string | 创建时间。 |
| `data.updated_at` | string | 最后更新时间。 |

## 错误响应

```json
{
  "code": "INVALID_PARAMS",
  "msg": "invalid request parameters",
  "data": null
}
```

### 常见 HTTP 错误

```{list-table}
:header-rows: 1
:widths: 12 22 32 34

* - HTTP 状态码
  - 错误代码
  - 常见原因
  - 建议操作
* - `400`
  - `INVALID_PARAMS`
  - 请求体无法解析，或 `enabled` 不是布尔值。
  - 显式传入布尔类型的 `enabled`。
* - `401`
  - —
  - 缺少、无效或已失效的访问凭据。
  - 检查 API Key。
* - `403`
  - `COMPUTE_RESOURCE_SPEC_FORBIDDEN`
  - 当前身份没有规格管理权限。
  - 使用具有相应权限的身份重试。
* - `404`
  - —
  - `spec_id` 对应的规格不存在。
  - 先[列出计算规格](list-compute-resource-specs.md)，并确认路径参数。
* - `500`
  - `SET_SPEC_ENABLED_FAILED`
  - 服务端未能更新启用状态。
  - 稍后重试；持续失败时联系支持人员。
```

## 后续操作

[列出计算规格](list-compute-resource-specs.md)确认新状态。
