{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "CreateUserContract",
  "type": "object",
  "description": "Contract for creating a new user",
  "properties": {
    "firstName": {
      "type": "string",
      "description": "User's first name"
    },
    "lastName": {
      "type": "string",
      "description": "User's last name"
    },
    "email": {
      "type": "string",
      "description": "User's email address"
    },
    "role": {
      "type": "string",
      "description": "User role determining access level"
    },
    "defaultWorkerTag": {
      "type": "string",
      "description": "Default worker tag for the user"
    },
    "canScheduleJobs": {
      "type": "boolean",
      "description": "Whether the user can create schedules"
    },
    "canPrioritizeJobs": {
      "type": "boolean",
      "description": "Whether the user can set job priority"
    },
    "canAssignJobs": {
      "type": "boolean",
      "description": "Whether the user can assign jobs to workers"
    },
    "canCreateCollections": {
      "type": "boolean",
      "description": "Whether the user can create collections"
    },
    "isApiEnabled": {
      "type": "boolean",
      "description": "Whether API access is enabled for the user"
    },
    "defaultCredentialId": {
      "type": "string",
      "description": "Default credential ID for the user"
    },
    "isActive": {
      "type": "boolean",
      "description": "Whether the user account is active"
    },
    "timeZone": {
      "type": "string",
      "description": "User's preferred time zone"
    },
    "canCreateAndUpdateDcm": {
      "type": "boolean",
      "description": "Whether the user can create and update DCM connections"
    },
    "canShareForExecutionDcm": {
      "type": "boolean",
      "description": "Whether the user can share DCM connections for execution"
    },
    "canShareForCollaborationDcm": {
      "type": "boolean",
      "description": "Whether the user can share DCM connections for collaboration"
    },
    "canManageGenericVaultsDcm": {
      "type": "boolean",
      "description": "Whether the user can manage generic DCM vaults"
    }
  }
}