{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/lightspeed/main/json-schema/lightspeed-staff-api-update-pos-staff-dto-schema.json",
  "title": "staff-apiUpdatePosStaffDto",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/lightspeed-staff-api-openapi.yml#/components/schemas/staff-apiUpdatePosStaffDto",
  "type": "object",
  "required": [
    "username",
    "pinCode",
    "firstName",
    "lastName",
    "active",
    "visible",
    "reportAccess",
    "roles"
  ],
  "properties": {
    "username": {
      "$ref": "#/$defs/staff-apiUsername"
    },
    "pinCode": {
      "type": "string",
      "maxLength": 4,
      "description": "The 4-digit pin code for the user."
    },
    "firstName": {
      "$ref": "#/$defs/staff-apiFirstNameNoDefault"
    },
    "lastName": {
      "$ref": "#/$defs/staff-apiLastNameNoDefault"
    },
    "active": {
      "$ref": "#/$defs/staff-apiActiveNoDefault"
    },
    "visible": {
      "$ref": "#/$defs/staff-apiVisibleNoDefault"
    },
    "group": {
      "type": "integer",
      "format": "int64",
      "default": -1,
      "x-positive-number-required": true,
      "description": "The unique identifier for the user group."
    },
    "reportAccess": {
      "$ref": "#/$defs/staff-apiReportAccessNoDefault"
    },
    "roles": {
      "type": "array",
      "x-default-null": true,
      "description": "The roles assigned to the user.",
      "items": {
        "$ref": "#/$defs/staff-apiCreatestaffRoleDto"
      }
    }
  },
  "$defs": {
    "staff-apiActiveNoDefault": {
      "type": "boolean",
      "description": "Indicates if the user is active."
    },
    "staff-apiCreatestaffRoleDto": {
      "type": "string",
      "description": "List of roles assigned to the user. Normally, these are the default POS user roles. See [Get All POS User Permissions](https://api-docs.lsk.lightspeed.app/operation/operation-staff-apigetposuserpermissions) for a list of roles."
    },
    "staff-apiFirstNameNoDefault": {
      "type": "string",
      "maxLength": 128,
      "description": "The first name of the user."
    },
    "staff-apiLastNameNoDefault": {
      "type": "string",
      "maxLength": 128,
      "description": "The last name of the user."
    },
    "staff-apiReportAccessNoDefault": {
      "type": "string",
      "description": "User report permissions."
    },
    "staff-apiUsername": {
      "description": "The staff username. Only used for POS staff.",
      "type": "string",
      "x-nonempty": true,
      "maxLength": 128
    },
    "staff-apiVisibleNoDefault": {
      "type": "boolean",
      "description": "Indicates if the user is visible."
    }
  }
}