{
  "description": "Set whether the robot vacuums, mops or does both, optionally with a suction level and water flow. Omitted levels keep the current non-off value. Values outside the configured supported lists are rejected with 422 before dispatch.",
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "description": "What a cleaning robot does: vacuum only, mop only, or vacuum and mop together. CUSTOM is a vendor-specific setting with no Port OS name (for example per-room settings); devices report it but do not accept it.",
      "enum": [
        "VACUUM",
        "MOP",
        "VACUUM_AND_MOP",
        "CUSTOM"
      ]
    },
    "suctionLevel": {
      "type": "string",
      "description": "Vacuum suction level, ordered from off to strongest. CUSTOM is a vendor-specific setting with no Port OS name (for example per-room settings); devices report it but do not accept it.",
      "enum": [
        "OFF",
        "QUIET",
        "BALANCED",
        "TURBO",
        "MAX",
        "MAX_PLUS",
        "CUSTOM"
      ]
    },
    "waterFlow": {
      "type": "string",
      "description": "Mop water flow level, ordered from off to highest. CUSTOM is a vendor-specific setting with no Port OS name (for example per-room settings); devices report it but do not accept it.",
      "enum": [
        "OFF",
        "LOW",
        "MEDIUM",
        "HIGH",
        "EXTREME",
        "CUSTOM"
      ]
    }
  },
  "required": [
    "mode"
  ],
  "additionalProperties": false
}
