BotRobotManageResult bot.robot-manage-result@1

Generated at from openvibe-contracts v0.97.0 and openvibe-sdk v0.26.0.

Version
1.0.0
Owner
bot
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/bot/robot-manage-result.v1.json

bot.robot-manage-result@1: answers of bot.robot.manage on OpenVibe.Bot. POST /api/v1/robots → 201 { robot, pairing }; PATCH …/robots/:id and POST …/robots/:id/estop/clear → { robot }; DELETE …/robots/:id → 204 (no body); POST …/robots/:id/pairing-code → 201 { code, expires_at, installer }; POST …/robots/:id/operators → 201 { operators }; DELETE …/robots/:id/operators/:subject → { operators }; POST …/devices/:id/rotate and /revoke → bot.device-connect-result@1.

Fields

This schema has no named fields.

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: created
{
  "robot": {
    "id": "rob_01J8Z4M2Q0R7T9YV3K6N8P1W2X",
    "name": "Rover",
    "profile_id": "adeept.adr036",
    "profile_version": 1,
    "access_policy": "private",
    "limits": {
      "max_command_ms": 300
    },
    "estop": {
      "latched": false,
      "by": null,
      "at": null
    },
    "created_at": "2026-09-29T19:20:00.000Z",
    "updated_at": "2026-09-29T19:20:00.000Z"
  },
  "pairing": {
    "code": "ABCD-EFGH",
    "expires_at": "2026-09-29T19:20:00.000Z",
    "installer": "curl -fsSL https://openvibe.bot/install.sh | sh -s ABCD-EFGH"
  }
}
Valid: device-rotated
{
  "device": {
    "id": "dev_01J8Z4N0A1B2C3D4E5F6G7H8J9",
    "robot_ids": [
      "rob_01J8Z4M2Q0R7T9YV3K6N8P1W2X"
    ],
    "name": "rover-pi",
    "kind": "agent",
    "agent_version": "0.1.0",
    "drivers": [
      "adeept"
    ],
    "capabilities": {},
    "last_seen": "2026-09-29T19:20:00.000Z",
    "revoked_at": null,
    "created_at": "2026-09-29T19:20:00.000Z",
    "updated_at": "2026-09-29T19:20:00.000Z"
  },
  "credential": "devc_secret",
  "publish_key": "pk_secret"
}
Valid: estop-cleared
{
  "robot": {
    "id": "rob_01J8Z4M2Q0R7T9YV3K6N8P1W2X",
    "name": "Rover",
    "profile_id": "adeept.adr036",
    "profile_version": 1,
    "access_policy": "private",
    "limits": {
      "max_command_ms": 300
    },
    "estop": {
      "latched": false,
      "by": "usr_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3",
      "at": "2026-09-29T19:20:00.000Z"
    },
    "created_at": "2026-09-29T19:20:00.000Z",
    "updated_at": "2026-09-29T19:20:00.000Z"
  }
}
Valid: operators
{
  "operators": [
    {
      "subject": "usr_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3",
      "role": "operator",
      "added_by": "usr_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3",
      "created_at": "2026-09-29T19:20:00.000Z"
    }
  ]
}
Rejected: operator-without-subject
{
  "operators": [
    {
      "role": "operator"
    }
  ]
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('bot.robot-manage-result@1', value);   // { valid, errors: [{ path, message }] }