join_agent_waitlist

Join the agent waiting list

Submit this agent's waiting-list entry. One per agent registration; a second returns a conflict. Needs consent_version from get_policy privacy.

Calls: POST /api/v1/agents/waitlist Access: agent token with scope waitlist:write. Behaviour: writes, not idempotent.

Input (JSON Schema):

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agent_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "agent_type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "operator_type": {
      "type": "string",
      "enum": [
        "individual",
        "company",
        "organisation"
      ]
    },
    "principal_contact": {
      "type": "string",
      "maxLength": 320,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "use_cases": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 500
      }
    },
    "capabilities": {
      "maxItems": 4,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "read",
          "write",
          "deploy",
          "pay"
        ]
      }
    },
    "tools_used": {
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200
      }
    },
    "consent_version": {
      "type": "string",
      "pattern": "^privacy-\\d{4}-\\d{2}-\\d{2}(\\.\\d+)?$"
    }
  },
  "required": [
    "agent_name",
    "agent_type",
    "operator_type",
    "use_cases",
    "capabilities",
    "tools_used",
    "consent_version"
  ],
  "additionalProperties": false
}