# 变更操作

当您已知所需的写入操作并希望获取 Luxonis Hub GraphQL 控制 API 的精确公共变更接口时，请使用此页面。每个支持的变更操作都有独立章节，方便您直接链接。

> **Public mutation surface**
> 公共根变更类型是
> `PublicMutation`
> 。支持的公共变更操作位于
> `team { ... }`
> 下。

## 关于变更操作

每个 GraphQL 模式都有一个根变更类型。在 Luxonis Hub 中，公共根变更类型是 PublicMutation。

使用此页面可以：

 * 确认确切的变更名称及其参数名称
 * 查看每个变更结果类型上的顶级字段
 * 从指南或变更日志条目直接链接到某个变更字段

如需获取输入对象详情（例如 InstallAppOnDeviceInput 或 StartOTAOnDeviceInput），请继续查阅
[模式](https://docs.luxonis.com/cloud/api/reference/control-api/schema.md)，或通过自省检查实时模式。

## team

进入已认证的团队范围的变更接口。

路径： team

类型： TeamScopedMutations!

此页面上的其余变更章节均嵌套在 team 下，并使用路径 team.<字段>。

## abortOtaOnDevice

中止设备上正在进行的 OTA 更新。

路径： team.abortOtaOnDevice

返回： AbortOTAOnDeviceResult!

### abortOtaOnDevice 的参数

 * deviceId (ID!): 要中止其 OTA 更新的设备的 ID。

### abortOtaOnDevice 的返回字段

 * status (AbortOTAOnDeviceResultStatus!): 操作的结果。
 * failedMessage (String): 操作未成功时的失败详情。

## createAdoptKey

为设备注册创建设备接纳密钥。

路径： team.createAdoptKey

返回： CreateAdoptKeyResult!

### createAdoptKey 的参数

 * input (CreateAdoptKeyInput!): 设备接纳密钥设置，包括名称、过期时间和剩余使用次数。

### createAdoptKey 的返回字段

 * status (CreateAdoptKeyResultStatus!): 操作的结果。
 * key (UUID): 新生成的原始设备接纳密钥值。
 * adoptKey (TeamAdoptKey): 创建的采纳密钥的元数据。

## createDeviceGroup

创建新的设备组。

路径： team.createDeviceGroup

返回： CreateDeviceGroupResult!

### createDeviceGroup 的参数

 * input (CreateDeviceGroupInput!): 设备组设置。当前此输入包含组名称。

### createDeviceGroup 的返回字段

 * status (CreateDeviceGroupResultStatus!): 操作的结果。
 * deviceGroup (DeviceGroup): 创建的设备组的元数据。

## deleteAdoptKey

删除设备接纳密钥。

路径： team.deleteAdoptKey

返回： DeleteAdoptKeyResult!

### deleteAdoptKey 的参数

 * adoptKeyId (ID!): 要删除的接纳密钥的 ID。

### deleteAdoptKey 的返回字段

 * status (DeleteAdoptKeyResultStatus!): 操作的结果。

## deleteDevice

从团队中删除设备记录。

路径： team.deleteDevice

返回： DeleteDeviceResult!

### deleteDevice 的参数

 * deviceId (ID!): 要删除的设备的 ID。

### deleteDevice 的返回字段

 * status (DeleteDeviceResultStatus!): 操作的结果。

## deleteDeviceApp

从设备中删除已安装的设备应用。

路径： team.deleteDeviceApp

返回： DeleteDeviceAppResult!

### deleteDeviceApp 的参数

 * deviceAppId (ID!): 要删除的已安装设备应用的 ID。

### deleteDeviceApp 的返回字段

 * status (DeleteDeviceAppResultStatus!): 操作的结果。
 * failedMessage (String): 操作未成功时的失败详情。

## deleteDeviceGroup

删除设备组。

路径： team.deleteDeviceGroup

返回： DeleteDeviceGroupResult!

### deleteDeviceGroup 的参数

 * deviceGroupId (ID!): 要删除的设备组的 ID。

### deleteDeviceGroup 的返回字段

 * status (DeleteDeviceGroupResultStatus!): 操作的结果。

## deleteSnapsByFilter

使用过滤器批量删除快照。

路径： team.deleteSnapsByFilter

返回： DeleteSnapsResult!

### deleteSnapsByFilter 的参数

 * filter (EventSnapFilterInput!): 用于选择要删除的快照的过滤器。

### deleteSnapsByFilter 的返回字段

 * status (DeleteSnapsResultStatus!): 操作的结果。
 * bgTaskId (ID): 后台任务 ID，用于在删除操作异步进行时轮询。

## deleteSnapsByIds

通过 ID 删除特定的一组快照。

路径： team.deleteSnapsByIds

返回： DeleteSnapsResult!

### deleteSnapsByIds 的参数

 * ids（[ID!]!）：要删除的快照的 ID。

### deleteSnapsByIds 的返回字段

 * status（DeleteSnapsResultStatus!）：操作的结果。
 * bgTaskId（ID）：当删除异步进行时用于轮询的后台任务 ID。

## deviceGroupAddDevice

向设备组添加一个设备。

路径： team.deviceGroupAddDevice

返回类型： AddDeviceToDeviceGroupResult!

### deviceGroupAddDevice 的参数

 * deviceGroupId（ID!）：目标设备组的 ID。
 * input（AddDeviceToDeviceGroupInput!）：设备组分配输入。当前此输入包含设备 ID。

### deviceGroupAddDevice 的返回字段

 * status（AddDeviceToDeviceGroupResultStatus!）：操作的结果。

## deviceGroupRemoveDevice

从设备组中移除一个设备。

路径： team.deviceGroupRemoveDevice

返回类型： RemoveDeviceFromDeviceGroupResult!

### deviceGroupRemoveDevice 的参数

 * deviceGroupId（ID!）：设备组的 ID。
 * input（RemoveDeviceFromDeviceGroupInput!）：设备组移除输入。当前此输入包含设备 ID。

### deviceGroupRemoveDevice 的返回字段

 * status（RemoveDeviceFromDeviceGroupResultStatus!）：操作的结果。

## disableDeviceApp

禁用一个已安装的设备应用。

路径： team.disableDeviceApp

返回类型： DisableDeviceAppResult!

### disableDeviceApp 的参数

 * deviceAppId（ID!）：要禁用的已安装设备应用的 ID。

### disableDeviceApp 的返回字段

 * status（DisableDeviceAppResultStatus!）：操作的结果。
 * failedMessage（String）：操作未成功时的失败详情。

## enableDeviceApp

启用一个已安装的设备应用。

路径： team.enableDeviceApp

返回类型： EnableDeviceAppResult!

### enableDeviceApp 的参数

 * deviceAppId（ID!）：要启用的已安装设备应用的 ID。

### enableDeviceApp 的返回字段

 * status（EnableDeviceAppResultStatus!）：操作的结果。
 * failedMessage（String）：操作未成功时的失败详情。

## installAppOnDevice

在设备上安装一个应用。

路径： team.installAppOnDevice

返回类型： InstallAppOnDeviceResult!

### installAppOnDevice 的参数

 * deviceId（ID!）：要安装应用的设备 ID。
 * input（InstallAppOnDeviceInput!）：安装设置，包括应用标识符、可选版本、环境和启动行为。

### installAppOnDevice 的返回字段

 * status（InstallAppOnDeviceResultStatus!）：操作的结果。
 * failedMessage（String）：操作未成功时的失败详情。

## rebootDevice

重启一个设备。

路径： team.rebootDevice

返回类型： RebootDeviceResult!

### rebootDevice 的参数

 * deviceId（ID!）：要重启的设备 ID。

### rebootDevice 的返回字段

 * status（RebootDeviceResultStatus!）：操作的结果。
 * failedMessage（String）：操作未成功时的失败详情。

## renameDeviceGroup

重命名一个已有的设备组。

路径： team.renameDeviceGroup

返回类型： RenameDeviceGroupResult!

### renameDeviceGroup 的参数

 * deviceGroupId（ID!）：要重命名的设备组 ID。
 * input（RenameDeviceGroupInput!）：重命名输入。当前此输入包含新的组名。

### renameDeviceGroup 的返回字段

 * status（RenameDeviceGroupResultStatus!）：操作的结果。

## requestDeviceAppConnection

请求设备应用会话的连接详情。

路径： team.requestDeviceAppConnection

返回类型： RequestDeviceAppConnectionResult!

### requestDeviceAppConnection 的参数

 * deviceAppId（ID!）：要连接的已安装设备应用的 ID。

### requestDeviceAppConnection 的返回字段

 * status（RequestDeviceAppConnectionResultStatus!）：操作的结果。
 * failedMessage（String）：操作未成功时的失败详情。
 * connection（AppConnectionResponse）：连接负载。如果存在，选择 deviceAppId 和 state。

## requestDeviceWebrtcConfig

请求设备浏览器端 WebRTC 启动详情。

路径： team.requestDeviceWebrtcConfig

返回类型： RequestDeviceWebrtcConfigResult!

### requestDeviceWebrtcConfig 的参数

 * deviceId（ID!）：要连接的设备 ID。

### requestDeviceWebrtcConfig 的返回字段

 * status（RequestDeviceWebrtcConfigResultStatus!）：操作的结果。
 * failedMessage（String）：操作未成功时的失败详情。
 * config（WebRtcConfigResponse）：WebRTC 启动负载。如果存在，选择 authToken 和 clientId。

## revokeAdoptKey

撤销一个采纳密钥，但不删除其记录。

路径： team.revokeAdoptKey

返回类型： RevokeAdoptKeyResult!

### revokeAdoptKey 的参数

 * adoptKeyId (ID!)：要撤销的采用密钥的 ID。

### revokeAdoptKey 的返回字段

 * status (RevokeAdoptKeyResultStatus!)：操作的结果。

## setDeviceAppConfig

更新设备应用的运行时配置。

路径： team.setDeviceAppConfig

返回类型： SetDeviceAppConfigResult!

### setDeviceAppConfig 的参数

 * deviceAppId (ID!)：要配置的已安装设备应用的 ID。
 * input (SetDeviceAppConfigInput!)：配置更新，包括环境对象和重启行为。

### setDeviceAppConfig 的返回字段

 * status (SetDeviceAppConfigResultStatus!)：操作的结果。
 * failedMessage (String)：操作失败时的详细信息。

## startDeviceApp

启动一个已安装的设备应用。

路径： team.startDeviceApp

返回类型： StartDeviceAppResult!

### startDeviceApp 的参数

 * deviceAppId (ID!)：要启动的已安装设备应用的 ID。
 * input (StartDeviceAppInput!)：运行时覆盖，例如环境变化或应用启用行为。

### startDeviceApp 的返回字段

 * status (StartDeviceAppResultStatus!)：操作的结果。
 * failedMessage (String)：操作失败时的详细信息。

## startOtaOnDevice

在设备上启动 OTA 更新。

路径： team.startOtaOnDevice

返回类型： StartOTAOnDeviceResult!

### startOtaOnDevice 的参数

 * deviceId (ID!)：要更新的设备的 ID。
 * input (StartOTAOnDeviceInput!)：OTA 设置，包括固件 ID 和可选的重新启动行为。

### startOtaOnDevice 的返回字段

 * status (StartOTAOnDeviceResultStatus!)：操作的结果。
 * failedMessage (String)：操作失败时的详细信息。

## stopDeviceApp

停止一个正在运行的设备应用。

路径： team.stopDeviceApp

返回类型： StopDeviceAppResult!

### stopDeviceApp 的参数

 * deviceAppId (ID!)：要停止的已安装设备应用的 ID。

### stopDeviceApp 的返回字段

 * status (StopDeviceAppResultStatus!)：操作的结果。
 * failedMessage (String)：操作失败时的详细信息。

## 相关文档

### Schema

检查实时 Schema 端点、SDL 工作流程和自省选项。

[Schema](https://docs.luxonis.com/cloud/api/reference/control-api/schema.md)

### Types

检查突变结果使用的公共对象和连接类型。

[Types](https://docs.luxonis.com/cloud/api/reference/control-api/types.md)

### Queries

切换到同一 API 表面支持的公共读取操作。

[Queries](https://docs.luxonis.com/cloud/api/reference/control-api/queries.md)

### About GraphQL

返回请求结构、身份验证和公共 API 边界。

[About GraphQL](https://docs.luxonis.com/cloud/api/graphql.md)
