{ "$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-user-update-schema.json", "title": "ApiUserUpdate", "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/ApiUserUpdate", "type": "object", "properties": { "firstName": { "type": "string", "minLength": 1, "maxLength": 126 }, "lastName": { "type": "string", "minLength": 1, "maxLength": 126 }, "email": { "$ref": "#/$defs/Email" }, "locationId": { "$ref": "#/$defs/LocationId" }, "status": { "type": "string", "description": "User can be enabled if set to \"active\" and disabled if set to \"blocked\"", "enum": [ "active", "blocked" ] }, "loginSchedule": { "$ref": "#/$defs/WeeklyIntervalSchedule" }, "permissions": { "$ref": "#/$defs/Permissions" }, "employeeId": { "$ref": "#/$defs/EmployeeId" } }, "$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" } } }, "Email": { "type": "string", "description": "This email is used for login.", "format": "email" }, "EmployeeId": { "type": [ "string", "null" ], "description": "Custom text field", "maxLength": 50 }, "Interval": { "type": "object", "description": "Interval of a schedule. If the start time is greater than the end time, the interval is considered to cover the remaining time of the day from the start time until 24:00, and then from 00:00 to the end time. \nFor example, start: 16:30 and end: 06:00 on monday means the interval covers from 16:30 to 24:00 and continues from 00:00 to 06:00 on the same day (monday).\n", "properties": { "start": { "type": "string", "pattern": "^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$", "description": "Starting point of the interval. It should be in the range of 00:00 to 23:59 since this is the range for a day" }, "end": { "type": "string", "pattern": "^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$", "description": "End point of the interval. It should be in the range of 00:00 to 23:59 since this is the range for the day" } }, "required": [ "start", "end" ] }, "LocationId": { "description": "ID Of the location.", "minLength": 1, "type": [ "string", "null" ] }, "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." } } } ] }, "WeeklyIntervalSchedule": { "type": "object", "description": "It signifies a week long alert schedule. This schedule is effective according to actor's (user/camera/account) timezone. It allows setting different times for different days.\n", "properties": { "sunday": { "type": "array", "items": { "$ref": "#/$defs/Interval" } }, "monday": { "type": "array", "items": { "$ref": "#/$defs/Interval" } }, "tuesday": { "type": "array", "items": { "$ref": "#/$defs/Interval" } }, "wednesday": { "type": "array", "items": { "$ref": "#/$defs/Interval" } }, "thursday": { "type": "array", "items": { "$ref": "#/$defs/Interval" } }, "friday": { "type": "array", "items": { "$ref": "#/$defs/Interval" } }, "saturday": { "type": "array", "items": { "$ref": "#/$defs/Interval" } } } } } }