operator

Set Operator Coverage Groups

Replace this operator's standing coverage-group membership.

COVERAGE GROUPS CONFER SCOPE, NEVER PERMISSION. Membership changes which SITES the operator can see -- every site the group's grants cover, off-shift included -- and never what they may do; their capabilities remain exactly their role's. Their own parent/site grants are untouched and keep working as an additive exception list.

Replace-all: the list sent IS the membership, and [] clears it. Refusals: 409 for a structurally scoped target (site_manager / account_manager / location_manager, whose scope is derived) or an unconfined one (owner / monitoring_manager -- the row would be inert); 403 for a confined caller; 404 for an unknown operator or group.

Changes reach an open SSE stream within the subscriber scope refresh window (30 s), in both directions.

put/operator/{operator_id}/coverage-groups

Request

  • Base URL
    https://api.verdun.ai (the document declares no server; this is the origin it was published from)
  • URL
    https://api.verdun.ai/operator/{operator_id}/coverage-groups
  • Auth
    HTTP bearer

Path parameters

operator_idstring required

Request body

group_idsstring[] required

The coverage groups this operator is a standing member of. Replace-all: groups omitted here are removed, and their sites stop resolving at the operator's next scope resolution.

Response

Successful Response

idstring uuid required

UUID of operator

first_namestring required

The first name of the operator

last_namestring required

The last name of the operator

emailstring required

The email address of the operator

role'owner' | 'operator' | 'site_manager' | 'read_only' | 'account_manager' | 'monitoring_manager' | 'location_manager' | 'support' required
last_seen_atstring date-time nullable

The time the operator was last seen

last_logged_instring date-time nullable

The time the operator last logged in

created_atstring date-time required

The time the operator was created

permissionsobject nullable

Per-permission overrides ({OperatorPermission value: bool}); null means role defaults apply

is_primary_ownerboolean

The account anchor: cannot be removed or demoted, and only they may edit their own record. Not settable via the API.

all_sitesboolean

EFFECTIVE all-sites access (operator / read_only only; false for every other role). When true the user sees every client and site, including future ones, and their coverage groups and parent/site rows are retained but inert. Set via PUT /operator/{id}/site-access.

deactivated_atstring date-time nullable

When this user was deactivated (POST /operator/{id}/deactivate), or null while active. A deactivated user cannot log in and holds no seats or coverage groups; their records are kept.

Example response

{
  "id": "<Some UUID of some sort>",
  "first_name": "Joe",
  "last_name": "Johnson",
  "email": "JJ@example.com",
  "permissions": {
    "manage_users": false,
    "view_alarm_queue": true
  },
  "parents": [
    {
      "id": "<UUID of some sort>",
      "company_name": "Joe",
      "primary_contact_name": "Joe Johnson",
      "primary_contact_phone_number": "1013217890",
      "primary_contact_email": "JJ@example.com",
      "notes": "Super important notes"
    }
  ],
  "sites": [
    {
      "id": "<UUID of some sort>",
      "name": "Elm St Facility",
      "parent_id": "<UUID of the owning client>"
    }
  ],
  "accounts": [
    {
      "id": "<UUID of some sort>",
      "name": "Northgate Logistics",
      "parent_id": "<UUID of the owning client>"
    }
  ],
  "coverage_groups": [
    {
      "id": "<UUID of some sort>",
      "name": "Overnight High-Risk",
      "color": "#4DFFD2",
      "site_count": 42
    }
  ]
}

Changes

No recorded changes to this operation across all 2 revisions of this API.