{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/main/json-schema/eagle-eye-networks-api-role-schema.json", "title": "ApiRole", "x-generated": "2026-10-14", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/eagle-eye-networks-user-accounts-openapi.yml#/components/schemas/ApiRole", "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "The ID of the role." }, "assignable": { "x-jsoninclude-nonnull-annotation": true, "type": "boolean", "description": "True if the user doing the request can assign this role to other users, false otherwise." }, "userCount": { "x-jsoninclude-nonnull-annotation": true, "type": "integer", "description": "Count of users that are associated with this role in the account" }, "name": { "type": "string", "description": "The name of the role.", "minLength": 1, "maxLength": 126 }, "notes": { "x-jsoninclude-nonnull-annotation": true, "type": "string", "description": "The notes of the role.", "maxLength": 5000 }, "default": { "type": "boolean", "description": "True if the role is one of the default roles for the account, false otherwise." }, "permissions": { "$ref": "#/$defs/Permissions" } }, "required": [ "id", "name", "default" ], "$defs": { "AdminPermission": { "properties": { "administrator": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "All permissions are enabled - create, delete, edit, and view access to all accounts and user settings, bridges, cameras, layouts, audit log and archive.\n" } } }, "Permissions": { "allOf": [ { "$ref": "#/$defs/AdminPermission" }, { "type": "object", "properties": { "editAccounts": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Edit Control, Days, Security, Camera, Alerts, Notifications, Privacy, Sharing, Responders, Default retentions, and camera resolution settings.\n" }, "layoutAdministrator": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Create, delete and edit any accessible layouts. All user layouts are visible to admin users.\n" }, "createLayouts": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Ability to create layouts and edit the layouts created. This does not grant permission to edit layouts created by other users.\n" }, "editNoBillingDeviceSettings": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Edit Camera Settings except for Cloud Retention and Full Video Resolution. Cannot add or delete cameras. Edit existing Analytics. Cannot add or delete Analytics.\n" }, "turnCamerasOnOff": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Turn Cameras on/off. Cameras off cannot be recorded." }, "editMotionAreas": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Edit Motion Settings. Set object size and sensitivity, add/delete regions, add/delete alerts for regions. Edit existing Analytics. Set object size and sensitivity, add/delete alerts.\n" }, "editAllCameraSettings": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Editing all Camera Settings. Cannot add or delete cameras." }, "editUsers": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Create, delete and edit non-admin users in an end user account." }, "upgradeEdition": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Upgrade current edition subscription to a higher level edition." }, "addEditBridgesCameras": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Create, delete, edit, and view Bridges and Cameras. This is the only permission for a non-admin to be able to add and view bridges in an end user account.\n" }, "editSharing": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Edit Sharing and Responders settings." }, "controlPTZ": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Control Pan, Tilt, Zoom, & recall stations while viewing a preview or live video of PTZ cameras.\n" }, "editPTZStations": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Edit PTZ Settings. Set PTZ mode and create, delete, edit stations.\n" }, "addEditSpeakers": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Add speakers, edit speaker settings, delete speakers." }, "editSpeakers": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Edit speaker settings. Cannot add or delete speakers." }, "viewLiveVideo": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "View full resolution video live." }, "viewHistoricVideo": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "View history browser and historic video." }, "downloadVideo": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Download preview and full resolution video." }, "viewPreviewVideo": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "View preview images from cameras." }, "talkDown": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Allows the users to initiate Talk Down to the camera field(s) of view." }, "editMap": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Add and edit floors, lines, shapes, and cameras on the map." }, "viewAuditLog": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "View Audit Log and download reports from it." }, "viewArchive": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "View all files and folders within the Archive." }, "editArchive": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Save videos to Archive - delete, edit, and view files and folders within the Archive." }, "viewPlugins": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "View all Plugins." }, "editPlugins": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Add and remove plugins." }, "exportUsers": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Export a list of account users in .csv format." }, "viewVSP": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "User access to view vehicle data, search vehicle across camera & location, set rules, and alert." }, "editResellerUsers": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Create, delete and edit reseller user who is not an Admin." }, "editAdminUsers": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Create, delete and edit admin and non-admin users in an end user account. Give access to bridges, cameras, and layouts. Create new end user accounts and give access to them.\n" }, "viewContract": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "View recordings, search, and create new recordings." }, "addRemovePayment": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Add and remove payment methods." }, "viewInvoice": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "View and download invoices." }, "placeOrders": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Add products to the shopping cart and place orders." }, "viewShipments": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "View the status of shipments." }, "viewPricingInformation": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "View pricing information." }, "viewResellerProgramInformation": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "View Marketing's reseller program information." }, "viewVSPRule": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "View VSP rules." }, "editVSPRule": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Edit VSP rules." }, "viewVehicleList": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "View vehicle lists." }, "editVehicleList": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Edit vehicle lists." }, "viewAutomations": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "View automation alerts, rules, and actions." }, "editAutomations": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Edit automation alerts, rules, and actions." }, "editAlertManagerRulesAndActions": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "Edit Automations rules and actions." }, "viewAlertManagerRulesAndActions": { "type": "boolean", "x-jsoninclude-nonnull-annotation": true, "description": "View Alert Manager rules and actions." } } } ] } } }