> ## Documentation Index
> Fetch the complete documentation index at: https://docs.neoagent.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create an agent

> Creates an agent/workflow for the caller's tenant. The body is a discriminated union on `autonomy_type` (CHAINED_ACTIONS / AGENTIC / CONVERSATIONAL). The contract is intent-shaped: callers describe `entity_type` + `ticket_conditions` / `time_entry_conditions`, and the server constructs the canonical `actions` array (prepending `FIND_ENTITIES` for CHAINED_ACTIONS / AGENTIC; the trailing `AGENTIC` action for AGENTIC; an empty list for CONVERSATIONAL). For CHAINED_ACTIONS, `actions` is the pipeline AFTER the auto-prepended `FIND_ENTITIES` — including `FIND_ENTITIES` yourself returns 400. CONVERSATIONAL agents accept `audience` (MSP | END_USER, default MSP) — set END_USER to provision a user-facing chat agent that can bind an END_USER channel; it must then hold only END_USER tools. Audience is set at create and is immutable. They also accept `access` (ALL_USERS | ADMINS_ONLY | SPECIFIC_USERS, default ALL_USERS), controlling which of the MSP's own users may message the agent (set in the dashboard thereafter). `created_by_user` is derived from the authenticated identity — not accepted in the body. Toolboxes that supply external-API credentials are rejected (400 `validation_error`); configure those in the dashboard. Discover the shapes via the `/schemas/*` endpoints.



## OpenAPI

````yaml https://api.neoagent.io/public-api/openapi.json post /public-api/agents
openapi: 3.1.0
info:
  description: >-
    Neo's public contract for the dashboard ChatAgent, partner integrations, and
    MSP automation. Every response is wrapped in a `{data, meta}` envelope;
    errors use `{error: {code, message, details?}, meta: {request_id}}`.
    Authenticate with a `Bearer neo_sk_<env>_<secret>` API key (service account)
    or a Microsoft Entra ID JWT (dashboard user). Signed-URL endpoints (end-user
    feedback links) take a `signature` query parameter instead.
  title: Neo Public API
  version: 1.0.0
servers:
  - url: https://api.neoagent.io
security: []
tags:
  - description: Service metadata — health, OpenAPI.
    name: Meta
  - description: Agents and workflows — read, version history, delete, stats.
    name: Agents
  - description: Agent/workflow execution history, sub-resources, retry/cancel.
    name: Executions
  - description: PSA webhook events and their workflow-match results.
    name: Callbacks
  - description: Technician-in-the-loop approval requests.
    name: TIL requests
  - description: RMM script executions triggered by agents.
    name: RMM scripts
  - description: Dispatch-agent field-update decisions.
    name: Dispatch
  - description: The authenticated tenant.
    name: Tenant
  - description: Agent-builder schema catalogs (raw JSON payloads).
    name: Schemas
  - description: Escalate to the Neo team (HubSpot ticket).
    name: Escalation
  - description: Tenant settings.
    name: Settings
  - description: Tenant API-key management (dashboard JWT only).
    name: API keys
  - description: End-user feedback links (signed-URL auth).
    name: Feedback
  - description: End-client companies (CRUD + bulk-update).
    name: End companies
  - description: Channels — bind a CONVERSATIONAL agent to a transport (Teams).
    name: Channels
  - description: PSA/RMM/M365 integration status and connection management.
    name: Integrations
  - description: Technician roster (controls TIL routing and paging).
    name: Technicians
  - description: Future runs queued for TRIGGERED agents.
    name: Scheduled work
  - description: Subscription state and customer-facing credit usage (no provider $).
    name: Billing
  - description: Inbox messages and announcements.
    name: Inbox & Comms
  - description: Tenant-authored agent skills (CRUD) and the built-in skill catalog.
    name: Skills
paths:
  /public-api/agents:
    post:
      tags:
        - Agents
      summary: Create an agent
      description: >-
        Creates an agent/workflow for the caller's tenant. The body is a
        discriminated union on `autonomy_type` (CHAINED_ACTIONS / AGENTIC /
        CONVERSATIONAL). The contract is intent-shaped: callers describe
        `entity_type` + `ticket_conditions` / `time_entry_conditions`, and the
        server constructs the canonical `actions` array (prepending
        `FIND_ENTITIES` for CHAINED_ACTIONS / AGENTIC; the trailing `AGENTIC`
        action for AGENTIC; an empty list for CONVERSATIONAL). For
        CHAINED_ACTIONS, `actions` is the pipeline AFTER the auto-prepended
        `FIND_ENTITIES` — including `FIND_ENTITIES` yourself returns 400.
        CONVERSATIONAL agents accept `audience` (MSP | END_USER, default MSP) —
        set END_USER to provision a user-facing chat agent that can bind an
        END_USER channel; it must then hold only END_USER tools. Audience is set
        at create and is immutable. They also accept `access` (ALL_USERS |
        ADMINS_ONLY | SPECIFIC_USERS, default ALL_USERS), controlling which of
        the MSP's own users may message the agent (set in the dashboard
        thereafter). `created_by_user` is derived from the authenticated
        identity — not accepted in the body. Toolboxes that supply external-API
        credentials are rejected (400 `validation_error`); configure those in
        the dashboard. Discover the shapes via the `/schemas/*` endpoints.
      operationId: public_api.agents_create_post
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              agentic_triggered:
                summary: AGENTIC — entity-triggered AI triage on new tickets
                value:
                  agent_settings:
                    custom_instructions: >-
                      Triage incoming tickets — categorise, set priority, post a
                      summary note.
                  autonomy_type: AGENTIC
                  callback_settings:
                    target_changes:
                      - change_type: CREATE
                  entity_type: ticket
                  name: Triage agent
                  ticket_conditions:
                    conditions:
                      combinator: and
                      rules: []
                    custom_field_conditions: null
                    workload_conditions: null
                  toolbox:
                    tool_settings_by_type: {}
                  trigger_type: TRIGGERED
              chained_actions_scheduled:
                summary: CHAINED_ACTIONS — nightly sweep of stale tickets
                value:
                  actions:
                    - action_type: ADD_TICKET_NOTE
                      input_as_dict:
                        message: Stale ticket — please review.
                  autonomy_type: CHAINED_ACTIONS
                  entity_type: ticket
                  name: Nightly stale-ticket sweep
                  schedule:
                    start_datetimes:
                      - '2026-05-14T02:00:00+00:00'
                    time_period:
                      interval: 1
                      unit: DAY
                    timezone: UTC
                  ticket_conditions:
                    conditions:
                      combinator: and
                      rules: []
                    custom_field_conditions: null
                    workload_conditions: null
                  trigger_type: SCHEDULED
              conversational:
                summary: CONVERSATIONAL — chat agent for Neo configuration help
                value:
                  agent_settings:
                    custom_instructions: Help the user debug their Neo setup.
                  autonomy_type: CONVERSATIONAL
                  name: Neo Support Agent
                  toolbox:
                    tool_settings_by_type: {}
              conversational_end_user:
                summary: >-
                  CONVERSATIONAL — user-facing chat agent (binds an END_USER
                  channel)
                value:
                  agent_settings:
                    custom_instructions: Help end users raise and track support tickets.
                  audience: END_USER
                  autonomy_type: CONVERSATIONAL
                  name: Client Help Desk
                  toolbox:
                    tool_settings_by_type: {}
            schema:
              $ref: '#/components/schemas/CreateAgentRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/Agent'
                  meta:
                    $ref: '#/components/schemas/SuccessMeta'
                required:
                  - data
                  - meta
                type: object
          description: Success.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Bad request — malformed input.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Unauthenticated — missing or invalid credentials.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Forbidden — authenticated but not allowed.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Not found.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Conflict — the resource is in a state that blocks this operation.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Request validation failed.
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Rate limited — see Retry-After.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Internal server error.
      security:
        - bearerAuth: []
components:
  schemas:
    CreateAgentRequest:
      description: '`POST /public-api/agents` body — pick the variant via `autonomy_type`.'
      discriminator:
        mapping:
          AGENTIC:
            $ref: '#/components/schemas/CreateAgenticAgent'
          CHAINED_ACTIONS:
            $ref: '#/components/schemas/CreateChainedActionsAgent'
          CONVERSATIONAL:
            $ref: '#/components/schemas/CreateConversationalAgent'
        propertyName: autonomy_type
      oneOf:
        - $ref: '#/components/schemas/CreateChainedActionsAgent'
        - $ref: '#/components/schemas/CreateAgenticAgent'
        - $ref: '#/components/schemas/CreateConversationalAgent'
      title: CreateAgentRequest
    Agent:
      description: >-
        Lean summary of a workflow row — the per-item shape `GET
        /public-api/agents`

        (list) returns. The single-resource `GET /public-api/agents/<id>`
        returns the

        richer `AgentDetail`; historical snapshots come back as `AgentVersion`.
      properties:
        access:
          $ref: '#/components/schemas/AgentAccess'
        audience:
          $ref: '#/components/schemas/ToolAudience'
        autonomy_type:
          $ref: '#/components/schemas/AutonomyType'
        created_at:
          format: date-time
          title: Created At
          type: string
        entity_type:
          $ref: '#/components/schemas/EntityType'
        id:
          title: Id
          type: string
        name:
          title: Name
          type: string
        state:
          $ref: '#/components/schemas/WorkflowState'
        trigger_type:
          $ref: '#/components/schemas/WorkflowTriggerType'
        updated_at:
          format: date-time
          title: Updated At
          type: string
      required:
        - id
        - name
        - state
        - autonomy_type
        - entity_type
        - trigger_type
        - audience
        - access
        - created_at
        - updated_at
      title: Agent
      type: object
    SuccessMeta:
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        request_id:
          format: uuid
          type: string
        timings_ms:
          additionalProperties:
            type: number
          type: object
        warnings:
          description: >-
            Non-fatal warnings about the created/updated resource (e.g. an
            unhealthy PSA callback).
          items:
            type: string
          type: array
      required:
        - request_id
        - timings_ms
      type: object
    ErrorEnvelope:
      properties:
        error:
          properties:
            code:
              description: Stable machine-readable error code.
              type: string
            details:
              additionalProperties: true
              type: object
            message:
              type: string
          required:
            - code
            - message
          type: object
        meta:
          properties:
            request_id:
              format: uuid
              type:
                - string
                - 'null'
          type: object
      required:
        - error
        - meta
      type: object
    CreateAgenticAgent:
      description: >-
        An agentic workflow — a MasterAgent picks tools at runtime against the
        entity the

        server's auto-prepended `FIND_ENTITIES` resolves. Always
        entity-triggered.
      properties:
        agent_settings:
          $ref: '#/components/schemas/AgentSettings'
        autonomy_type:
          const: AGENTIC
          default: AGENTIC
          title: Autonomy Type
          type: string
        callback_settings:
          anyOf:
            - $ref: '#/components/schemas/EventMatchSettings'
            - type: 'null'
          default: null
        description:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Description
        entity_type:
          $ref: '#/components/schemas/EntityType'
          default: TICKET
        group_name:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Group Name
        group_order:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          title: Group Order
        integrations:
          anyOf:
            - $ref: '#/components/schemas/Integrations'
            - type: 'null'
          default: null
        name:
          title: Name
          type: string
        show_in_psa_pod:
          anyOf:
            - type: boolean
            - type: 'null'
          default: null
          title: Show In Psa Pod
        state:
          $ref: '#/components/schemas/WorkflowState'
          default: ENABLED
        ticket_conditions:
          anyOf:
            - $ref: '#/components/schemas/PsaTicketConditions'
            - type: 'null'
          default: null
        time_entry_conditions:
          anyOf:
            - $ref: '#/components/schemas/PsaConditions'
            - type: 'null'
          default: null
        toolbox:
          additionalProperties: true
          title: Toolbox
          type: object
        trigger_type:
          const: TRIGGERED
          default: TRIGGERED
          title: Trigger Type
          type: string
      required:
        - name
        - agent_settings
        - toolbox
      title: CreateAgenticAgent
      type: object
    CreateChainedActionsAgent:
      description: >-
        A fixed-pipeline workflow — the server runs `FIND_ENTITIES` (built from
        `entity_type`

        and the conditions below) followed by `actions` in order. Triggered by a
        PSA event

        (`trigger_type=TRIGGERED` + `callback_settings`) or on a schedule
        (`trigger_type=SCHEDULED`

        + `schedule`).
      properties:
        actions:
          items:
            additionalProperties: true
            type: object
          title: Actions
          type: array
        autonomy_type:
          const: CHAINED_ACTIONS
          default: CHAINED_ACTIONS
          title: Autonomy Type
          type: string
        callback_settings:
          anyOf:
            - $ref: '#/components/schemas/EventMatchSettings'
            - type: 'null'
          default: null
        description:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Description
        entity_type:
          $ref: '#/components/schemas/EntityType'
          default: TICKET
        execution_order:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          title: Execution Order
        group_name:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Group Name
        group_order:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          title: Group Order
        name:
          title: Name
          type: string
        process_entities_sequentially:
          default: false
          title: Process Entities Sequentially
          type: boolean
        process_sub_entities_only_once:
          default: false
          title: Process Sub Entities Only Once
          type: boolean
        schedule:
          anyOf:
            - $ref: '#/components/schemas/WorkflowSchedule'
            - type: 'null'
          default: null
        show_in_psa_pod:
          anyOf:
            - type: boolean
            - type: 'null'
          default: null
          title: Show In Psa Pod
        state:
          $ref: '#/components/schemas/WorkflowState'
          default: ENABLED
        ticket_conditions:
          anyOf:
            - $ref: '#/components/schemas/PsaTicketConditions'
            - type: 'null'
          default: null
        time_entry_conditions:
          anyOf:
            - $ref: '#/components/schemas/PsaConditions'
            - type: 'null'
          default: null
        trigger_type:
          $ref: '#/components/schemas/WorkflowTriggerType'
      required:
        - name
        - trigger_type
        - actions
      title: CreateChainedActionsAgent
      type: object
    CreateConversationalAgent:
      description: >-
        A chat agent — user-initiated via `POST /chat/sessions`, no trigger or
        action pipeline.

        `toolbox`/`agent_settings`/`integrations` configure it.
      properties:
        access:
          $ref: '#/components/schemas/AgentAccess'
          default: ALL_USERS
        agent_settings:
          $ref: '#/components/schemas/AgentSettings'
        audience:
          $ref: '#/components/schemas/ToolAudience'
          default: MSP
        autonomy_type:
          const: CONVERSATIONAL
          default: CONVERSATIONAL
          title: Autonomy Type
          type: string
        description:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Description
        integrations:
          anyOf:
            - $ref: '#/components/schemas/Integrations'
            - type: 'null'
          default: null
        name:
          title: Name
          type: string
        state:
          $ref: '#/components/schemas/WorkflowState'
          default: ENABLED
        toolbox:
          additionalProperties: true
          title: Toolbox
          type: object
      required:
        - name
        - agent_settings
        - toolbox
      title: CreateConversationalAgent
      type: object
    AgentAccess:
      description: >-
        Who, within the MSP's own staff, may message an INTERNAL chat agent.


        ALL_USERS — any active member of the MSP tenant may message the agent.
        The default, so a
          newly created agent is usable by the whole team out of the box.
        ADMINS_ONLY — only tenant admins (and Neo super-admins). A natural
        choice for privileged
          agents such as the Neo Support Agent (its toolbox can retry/cancel runs and approve TILs),
          which an MSP admin can opt into — it is never forced; even managed agents default to ALL_USERS.
        SPECIFIC_USERS — admins, the agent's creator, and users it has been
        explicitly shared with
          (reuses the existing per-user `shared_workflows` grant).
      enum:
        - ALL_USERS
        - ADMINS_ONLY
        - SPECIFIC_USERS
      title: AgentAccess
      type: string
    ToolAudience:
      description: >-
        Trust domain a tool / agent / channel may be exposed to.


        MSP — technician/dashboard surfaces; tools may take MSP-wide scope and
        accept company/

        contact identifiers as LLM-supplied parameters. An agent/channel with
        this audience is the

        MSP's own INTERNAL surface (the dashboard labels MSP as "Internal").

        END_USER — the MSP's end-client users (white-label Teams bots, embedded
        end-company chat).

        END_USER tools must derive ALL identity (end-company, contact) from the
        session context,

        never from tool parameters, so a prompt-injected or curious end user
        cannot widen scope.

        The two surfaces are disjoint by construction:
        `resolve_end_user_toolbox` resolves only

        END_USER tools (deny-by-default, no auto-injection), and
        `resolve_full_toolbox` is for

        MSP surfaces only.
      enum:
        - MSP
        - END_USER
      title: ToolAudience
      type: string
    AutonomyType:
      enum:
        - CHAINED_ACTIONS
        - AGENTIC
        - CONVERSATIONAL
      title: AutonomyType
      type: string
    EntityType:
      enum:
        - ticket
        - project_ticket
        - task
        - scheduled_entry
        - time_entry
        - project
        - company
        - contact
        - resource
        - contract
        - opportunity
        - none
        - configuration
        - note
        - team
        - role
        - audit_trail
        - appointment
        - servicecall
        - contract_service
        - company_location
        - product
      title: EntityType
      type: string
    WorkflowState:
      enum:
        - ENABLED
        - DISABLED
        - DELETED
      title: WorkflowState
      type: string
    WorkflowTriggerType:
      enum:
        - SCHEDULED
        - TRIGGERED
        - NONE
      title: WorkflowTriggerType
      type: string
    Pagination:
      properties:
        has_more:
          type: boolean
        next_cursor:
          type:
            - string
            - 'null'
      required:
        - next_cursor
        - has_more
      type: object
    AgentSettings:
      description: Settings that control the behavior of the agent.
      properties:
        custom_instructions:
          title: Custom Instructions
          type: string
        model:
          anyOf:
            - $ref: '#/components/schemas/OpenAiModel'
            - type: 'null'
          default: null
          description: LLM model to use for this agent. None = framework default (GPT5_1).
        reasoning_effort:
          anyOf:
            - $ref: '#/components/schemas/ReasoningEffort'
            - type: 'null'
          default: null
          description: >-
            Reasoning effort to use for this agent. None = framework default
            (MEDIUM).
        report_test_via:
          $ref: '#/components/schemas/ReportTestVia'
          default: INTERNAL_TICKET_NOTE
          description: The agent will report the test results via the specified method.
        subagent_fanout_enabled:
          default: false
          description: >-
            If true, the agent can delegate parallel work to subagents via
            dispatch_subagents. Off by default; enable per-agent for workloads
            with embarrassingly parallel slices (e.g., per-cluster generation,
            per-company analysis).
          title: Subagent Fanout Enabled
          type: boolean
        test_mode:
          default: false
          description: >-
            If true, the agent will not call tools with side effects, like
            updating tickets, creating time entries, etc. It would add a Ticket
            Note instead.
          title: Test Mode
          type: boolean
        til_channel:
          $ref: '#/components/schemas/TilChannel'
          default: TEAMS
          description: >-
            Where Technician-in-the-Loop approval requests are delivered. Teams:
            adaptive card to the configured technicians. Chat: inline approval
            card in the chat session.
        trigger_mode:
          $ref: '#/components/schemas/TriggerMode'
          default: MENTION_ONLY
          description: >-
            When the Teams bot forwards a message to this agent in
            group-chat/channel scopes: MENTION_ONLY (only messages that @mention
            the bot) or READ_ALL (every message). Personal 1:1 chats always
            forward regardless.
      required:
        - custom_instructions
      title: AgentSettings
      type: object
    EventMatchSettings:
      properties:
        entity_type:
          $ref: '#/components/schemas/EntityType'
          default: TICKET
        run_only_once_per_entity:
          default: false
          title: Run Only Once Per Entity
          type: boolean
        target_changes:
          items:
            $ref: '#/components/schemas/TargetEvent'
          title: Target Changes
          type: array
      required:
        - target_changes
      title: EventMatchSettings
      type: object
    Integrations:
      description: >-
        Per-agent integration permissions: which permission-aware integrations
        (PSA, M365, RMM, etc.) the agent may call, and at what access level.
      properties:
        ad:
          $ref: '#/components/schemas/AdIntegration'
        autotask:
          $ref: '#/components/schemas/AtPsaIntegration'
        confluence:
          $ref: '#/components/schemas/ConfluenceIntegration'
        cw_asio:
          $ref: '#/components/schemas/CwAsioIntegration'
        cw_automate:
          $ref: '#/components/schemas/CwAutomateIntegration'
        cw_psa:
          $ref: '#/components/schemas/CwPsaIntegration'
        datto_rmm:
          $ref: '#/components/schemas/DattoRmmIntegration'
        exchange:
          $ref: '#/components/schemas/ExchangeIntegration'
        halo_psa:
          $ref: '#/components/schemas/HaloPsaIntegration'
        hudu:
          $ref: '#/components/schemas/HuduIntegration'
        itglue:
          $ref: '#/components/schemas/ItglueIntegration'
        ms_graph:
          $ref: '#/components/schemas/MsGraphIntegration'
        ncentral_rmm:
          $ref: '#/components/schemas/NCentralRmmIntegration'
        neo_api:
          $ref: '#/components/schemas/NeoApiIntegration'
        ninja_rmm:
          $ref: '#/components/schemas/NinjaRmmIntegration'
        nsight_rmm:
          $ref: '#/components/schemas/NSightRmmIntegration'
        scalepad:
          $ref: '#/components/schemas/ScalepadIntegration'
        servicenow:
          $ref: '#/components/schemas/ServicenowIntegration'
        vsax_rmm:
          $ref: '#/components/schemas/VsaxRmmIntegration'
      title: Integrations
      type: object
    PsaTicketConditions:
      properties:
        conditions:
          $ref: '#/components/schemas/RulesGroup'
        custom_field_conditions:
          $ref: '#/components/schemas/CustomFieldConditionGroup'
          default: null
          title: Use Custom Field Conditions
          type:
            - 'null'
            - object
        workload_conditions:
          $ref: '#/components/schemas/WorkloadConditions'
          default: null
          description: >-
            Define a time period to filter tickets that were actively worked on
            by a technician. Only tickets with service activity logged within
            the specified date range will be included.
          title: Workload Conditions
          type:
            - 'null'
            - object
      required:
        - conditions
      title: PsaTicketConditions
      type: object
    PsaConditions:
      properties:
        conditions:
          $ref: '#/components/schemas/RulesGroup'
      required:
        - conditions
      title: PsaConditions
      type: object
    WorkflowSchedule:
      properties:
        allowed_execution_hours:
          anyOf:
            - $ref: '#/components/schemas/WorkflowExecutionHours'
            - type: 'null'
          default: null
        daily_execution_windows:
          anyOf:
            - $ref: '#/components/schemas/WorkflowDailyExecutionWindows'
            - type: 'null'
          default: null
        should_skip_weekends:
          default: false
          title: Should Skip Weekends
          type: boolean
        start_datetimes:
          items:
            format: date-time
            type: string
          title: Start Datetimes
          type: array
        time_period:
          anyOf:
            - $ref: '#/components/schemas/TimePeriod'
            - type: 'null'
          default: null
        timezone:
          default: UTC
          title: Timezone
          type: string
      title: WorkflowSchedule
      type: object
    OpenAiModel:
      enum:
        - - gpt-5.5
          - REASONING
          - o200k_base
          - 5
          - 30
          - 80000
          - 0.5
          - gpt-5.5
        - - gpt-5.4
          - REASONING
          - o200k_base
          - 2.5
          - 15
          - 80000
          - 0.25
          - gpt-5.4
        - - gpt-5.4-mini
          - REASONING
          - o200k_base
          - 0.75
          - 4.5
          - 80000
          - 0.075
          - gpt-5.4-mini
        - - gpt-5.1
          - REASONING
          - o200k_base
          - 1.25
          - 10
          - 80000
          - 0.125
          - gpt-5.1
        - - gpt-5
          - REASONING
          - o200k_base
          - 1.25
          - 10
          - 80000
          - 0.125
          - gpt-5
        - - gpt-5-mini
          - REASONING
          - o200k_base
          - 0.25
          - 2
          - 80000
          - 0.025
          - gpt-5-mini
        - - gpt-5-nano
          - REASONING
          - o200k_base
          - 0.05
          - 0.4
          - 80000
          - 0.005
          - gpt-5-nano
        - - gpt-4o-mini-2024-07-18
          - REGULAR
          - o200k_base
          - 0.15
          - 0.6
          - 50000
          - 0.075
          - gpt-4o-mini-2024-07-18
        - - gpt-4.1
          - REGULAR
          - o200k_base
          - 2
          - 8
          - 50000
          - 0.5
          - gpt-4.1
        - - gpt-4.1-mini
          - REGULAR
          - o200k_base
          - 0.4
          - 1.6
          - 100000
          - 0.1
          - gpt-4.1-mini
        - - gpt-5-nano-for-sync
          - REASONING
          - o200k_base
          - 0.05
          - 0.4
          - 80000
          - 0.005
          - gpt-5-nano
        - - text-embedding-ada-002
          - EMBEDDING
          - cl100k_base
          - 0.1
          - 0
          - 16000
          - null
          - text-embedding-ada-002
        - - text-embedding-3-small
          - EMBEDDING
          - cl100k_base
          - 0.02
          - 0
          - 64000
          - null
          - text-embedding-3-small
      title: OpenAiModel
      type: array
    ReasoningEffort:
      enum:
        - minimal
        - low
        - medium
        - high
      title: ReasoningEffort
      type: string
    ReportTestVia:
      enum:
        - Internal Ticket Note
        - Email to Internal Team
        - Teams Message to Internal Team
        - Dashboard Message
      title: ReportTestVia
      type: string
    TilChannel:
      description: >-
        Where Technician-in-the-Loop approval requests are delivered to the
        approver.
      enum:
        - Teams
        - Chat
      title: TilChannel
      type: string
    TriggerMode:
      description: >-
        When the Teams bot relay forwards a message to the agent in shared
        scopes

        (group chat / channel). A personal 1:1 chat always forwards every
        message — there are

        no @mention semantics in a DM — so this only governs group chats and
        channels.
      enum:
        - Mention only
        - Read all
      title: TriggerMode
      type: string
    TargetEvent:
      description: A target event is something that will trigger the workflow.
      properties:
        change_type:
          $ref: '#/components/schemas/EventType'
        source_value:
          anyOf:
            - type: string
            - items:
                type: string
              type: array
            - type: 'null'
          default: null
          title: Source Value
        target_field:
          anyOf:
            - $ref: '#/components/schemas/ChangedField'
            - type: 'null'
          default: null
        target_value:
          anyOf:
            - type: string
            - items:
                type: string
              type: array
            - type: 'null'
          default: null
          title: Target Value
        target_workflow_id:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          title: Target Workflow Id
      required:
        - change_type
      title: TargetEvent
      type: object
    AdIntegration:
      description: Active Directory integration configuration.
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/AdPermissionGroup'
          title: Permissions
          type: array
      title: AdIntegration
      type: object
    AtPsaIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/AtPsaPermissionGroup'
          title: Permissions
          type: array
      title: AtPsaIntegration
      type: object
    ConfluenceIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/ConfluencePermissionGroup'
          title: Permissions
          type: array
      title: ConfluenceIntegration
      type: object
    CwAsioIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/CwAsioPermissionGroup'
          title: Permissions
          type: array
      title: CwAsioIntegration
      type: object
    CwAutomateIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/CwAutomatePermissionGroup'
          title: Permissions
          type: array
      title: CwAutomateIntegration
      type: object
    CwPsaIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/CwPsaPermissionGroup'
          title: Permissions
          type: array
      title: CwPsaIntegration
      type: object
    DattoRmmIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/DattoRmmPermissionGroup'
          title: Permissions
          type: array
      title: DattoRmmIntegration
      type: object
    ExchangeIntegration:
      description: Exchange integration configuration.
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/ExchangePermissionGroup'
          title: Permissions
          type: array
      title: ExchangeIntegration
      type: object
    HaloPsaIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/HaloPsaPermissionGroup'
          title: Permissions
          type: array
      title: HaloPsaIntegration
      type: object
    HuduIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/HuduPermissionGroup'
          title: Permissions
          type: array
      title: HuduIntegration
      type: object
    ItglueIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/ItgluePermissionGroup'
          title: Permissions
          type: array
      title: ItglueIntegration
      type: object
    MsGraphIntegration:
      description: MS Graph integration configuration.
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/MsGraphPermissionGroup'
          title: Permissions
          type: array
      title: MsGraphIntegration
      type: object
    NCentralRmmIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/NCentralRmmPermissionGroup'
          title: Permissions
          type: array
      title: NCentralRmmIntegration
      type: object
    NeoApiIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/NeoApiPermissionGroup'
          title: Permissions
          type: array
      title: NeoApiIntegration
      type: object
    NinjaRmmIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/NinjaRmmPermissionGroup'
          title: Permissions
          type: array
      title: NinjaRmmIntegration
      type: object
    NSightRmmIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/NSightRmmPermissionGroup'
          title: Permissions
          type: array
      title: NSightRmmIntegration
      type: object
    ScalepadIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/ScalepadPermissionGroup'
          title: Permissions
          type: array
      title: ScalepadIntegration
      type: object
    ServicenowIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/ServicenowPermissionGroup'
          title: Permissions
          type: array
      title: ServicenowIntegration
      type: object
    VsaxRmmIntegration:
      properties:
        permissions:
          items:
            $ref: '#/components/schemas/VsaxRmmPermissionGroup'
          title: Permissions
          type: array
      title: VsaxRmmIntegration
      type: object
    RulesGroup:
      properties:
        combinator:
          $ref: '#/components/schemas/Combinator'
        rules:
          items:
            anyOf:
              - $ref: '#/components/schemas/Rule'
              - $ref: '#/components/schemas/RulesGroup'
          title: Rules
          type: array
      required:
        - rules
        - combinator
      title: RulesGroup
      type: object
    CustomFieldConditionGroup:
      properties:
        combinator:
          $ref: '#/components/schemas/Combinator'
        conditions:
          items:
            $ref: '#/components/schemas/CustomFieldCondition'
          title: Conditions
          type: array
      required:
        - conditions
        - combinator
      title: CustomFieldConditionGroup
      type: object
    WorkloadConditions:
      properties:
        companies:
          description: >-
            The names of the companies to filter tickets by. Empty list means no
            filtering by company
          items:
            type: string
          title: Companies
          type: array
        end_date_excluding:
          format: date
          title: End Date Excluding
          type: string
        start_date_including:
          format: date
          title: Start Date Including
          type: string
      required:
        - start_date_including
        - end_date_excluding
      title: WorkloadConditions
      type: object
    WorkflowExecutionHours:
      properties:
        run_end_time:
          default: '23:59:59'
          format: time
          title: Run End Time
          type: string
        run_start_time:
          default: '00:00:00'
          format: time
          title: Run Start Time
          type: string
      title: WorkflowExecutionHours
      type: object
    WorkflowDailyExecutionWindows:
      properties:
        friday:
          items:
            $ref: '#/components/schemas/WorkflowTimeWindow'
          title: Friday
          type: array
        monday:
          items:
            $ref: '#/components/schemas/WorkflowTimeWindow'
          title: Monday
          type: array
        saturday:
          items:
            $ref: '#/components/schemas/WorkflowTimeWindow'
          title: Saturday
          type: array
        sunday:
          items:
            $ref: '#/components/schemas/WorkflowTimeWindow'
          title: Sunday
          type: array
        thursday:
          items:
            $ref: '#/components/schemas/WorkflowTimeWindow'
          title: Thursday
          type: array
        tuesday:
          items:
            $ref: '#/components/schemas/WorkflowTimeWindow'
          title: Tuesday
          type: array
        wednesday:
          items:
            $ref: '#/components/schemas/WorkflowTimeWindow'
          title: Wednesday
          type: array
      title: WorkflowDailyExecutionWindows
      type: object
    TimePeriod:
      properties:
        interval:
          title: Interval
          type: integer
        unit:
          $ref: '#/components/schemas/TimeUnit'
      required:
        - interval
        - unit
      title: TimePeriod
      type: object
    EventType:
      description: >-
        Something that happened in the PSA or NeoAgent.


        Each member also carries `agent_trigger_description`: a one-line
        sentence rendered

        into the agent's EXECUTION_CONTEXT prompt under "Triggered by:" so the
        agent can

        branch its behaviour on the specific signal. Keep these phrased from the
        AGENT's

        perspective ("the customer replied", not "CUSTOMER_REPLIED fired"). None
        means we

        don't render a line for this event type (the executed_by fallback
        handles it).
      enum:
        - - CREATE
          - PSA
          - PSA callback — the entity was created
        - - UPDATE
          - PSA
          - >-
            PSA callback — a ticket field was updated (inspect the audit trail
            for the specific field and values)
        - - DELETE
          - PSA
          - PSA callback — the entity was deleted
        - - ANY
          - PSA
          - null
        - - CUSTOMER_REPLIED
          - PSA
          - PSA callback — the customer replied on the ticket
        - - TECHNICIAN_REPLIED_TO_CUSTOMER
          - PSA
          - PSA callback — a technician replied to the customer
        - - TIME_ENTRY_CREATED
          - PSA
          - PSA callback — a time entry was created on the ticket
        - - LAST_ACTIVITY_DATE_CHANGED
          - PSA
          - PSA callback — the ticket's last-activity date changed
        - - NOTE_ADDED
          - PSA
          - PSA callback — a note was added to the ticket (non-Neo author)
        - - MANUAL_ONLY
          - NEO_AGENT
          - A human manually triggered this workflow
        - - WORKFLOW_FINISHED
          - NEO_AGENT
          - >-
            Another workflow finished and this workflow was configured to react
            to it
        - - WORKFLOW_TRIGGERED
          - NEO_AGENT
          - Another workflow triggered this run via the TRIGGER_WORKFLOW action
      title: EventType
      type: array
    ChangedField:
      enum:
        - - status
          - - CONNECTWISE
            - AUTOTASK
            - HALO
            - SERVICENOW
          - 1
          - - ticket
        - - priority
          - - CONNECTWISE
            - AUTOTASK
            - HALO
            - SERVICENOW
          - 1
          - - ticket
        - - board
          - - CONNECTWISE
          - 1
          - - ticket
        - - queue
          - - AUTOTASK
          - 1
          - - ticket
        - - type
          - - CONNECTWISE
          - 1
          - - ticket
        - - ticketType
          - - AUTOTASK
          - 1
          - - ticket
        - - Ticket Type
          - - HALO
          - 1
          - - ticket
        - - auditTrailContains
          - - CONNECTWISE
            - AUTOTASK
            - SERVICENOW
          - 1
          - - audit_trail
      title: ChangedField
      type: array
    AdPermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        group_type:
          $ref: '#/components/schemas/AdPermissionGroupType'
          enum:
            - USER_MANAGEMENT
            - GROUPS
            - COMPUTERS
            - ORGANIZATIONAL_STRUCTURE
            - INFRASTRUCTURE
            - ENTRA_CONNECT_SYNC
          enumNames:
            - User Management
            - Groups
            - Computers
            - Organizational Structure
            - Infrastructure
            - Entra Connect Sync
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: AdPermissionGroup
      type: object
    AtPsaPermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        allow_delete:
          default: false
          description: Allow deleting records (DELETE requests)
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Allow Delete
          type: boolean
        allow_merge:
          anyOf:
            - type: boolean
            - type: 'null'
          default: null
          description: Allow merging tickets (manual multi-step procedure)
          show_if_another_field_is:
            field_name: group_type
            field_value: TICKETS
          title: Allow Merge
        client_facing_settings:
          anyOf:
            - $ref: '#/components/schemas/AtClientFacingNoteSettings'
            - type: 'null'
          default: null
        group_type:
          $ref: '#/components/schemas/AtPsaPermissionGroupType'
          enum:
            - TICKETS
            - TICKET_NOTES
            - CLIENT_FACING_TICKET_NOTES
            - CONTACTS
            - COMPANIES
            - CONFIGURATIONS
            - TIME_ENTRIES
            - SERVICE_CALLS
            - PROJECTS
            - PRODUCTS
            - CONTRACTS
            - OPPORTUNITIES
            - COMPANY_TODOS
            - TAGS
            - RESOURCES
            - BILLING_CODES
            - ATTACHMENTS
            - KNOWLEDGE_BASE
            - DOCUMENTS
            - INVOICES
            - EXPENSES
            - PURCHASE_ORDERS
            - QUOTES
            - SALES_ORDERS
            - INVENTORY
            - SURVEYS
            - ADMIN
          enumNames:
            - Tickets
            - Ticket Notes (Internal)
            - Ticket Notes (Client-Facing)
            - Contacts
            - Companies
            - Configurations
            - Time Entries
            - Service Calls
            - Projects
            - Products
            - Contracts
            - Opportunities
            - Company To-Dos
            - Tags
            - Resources
            - Billing Codes
            - Attachments
            - Knowledge Base
            - Documents
            - Invoices
            - Expenses
            - Purchase Orders
            - Quotes
            - Sales Orders
            - Inventory
            - Surveys
            - Admin
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
        time_entry_udf_settings:
          anyOf:
            - $ref: '#/components/schemas/AtTimeEntryUdfSettings'
            - type: 'null'
          default: null
        update_allowed_fields:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          default: null
          description: Fields the agent may update (None = all fields allowed)
          title: Allowed Update Fields
      required:
        - access_level
        - group_type
      title: AtPsaPermissionGroup
      type: object
    ConfluencePermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        group_type:
          $ref: '#/components/schemas/ConfluencePermissionGroupType'
          enum:
            - PAGES
            - SPACES
            - SEARCH
            - ATTACHMENTS
            - USERS
          enumNames:
            - Pages
            - Spaces
            - Search
            - Attachments
            - Users
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: ConfluencePermissionGroup
      type: object
    CwAsioPermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        group_type:
          $ref: '#/components/schemas/CwAsioPermissionGroupType'
          enum:
            - ENDPOINTS
            - AUTOMATION
            - TICKETING
            - COMPANIES
            - CONTACTS
            - CUSTOM_FIELDS
            - POLICY
            - PATCHING
            - ALERTING
            - INCIDENTS
            - BACKUP
            - NETWORK_DEVICES
            - MAPPINGS
            - BILLING
            - PLATFORM
          enumNames:
            - Endpoints
            - Automation
            - Ticketing
            - Companies & Sites
            - Contacts
            - Custom Fields
            - Policy
            - OS Patching
            - Alerts & Suspensions
            - Incidents
            - Backup Dashboard
            - Network Devices
            - Endpoint & Site Mapping
            - Billing
            - Platform Info
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: CwAsioPermissionGroup
      type: object
    CwAutomatePermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        allow_delete:
          default: false
          description: Allow deleting records (DELETE requests)
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Allow Delete
          type: boolean
        group_type:
          $ref: '#/components/schemas/CwAutomatePermissionGroupType'
          enum:
            - COMPUTERS
            - CLIENTS_AND_LOCATIONS
            - SCRIPTS
            - SCRIPT_EXECUTION
            - SOFTWARE_AND_PATCHES
            - MONITORING
          enumNames:
            - Computers
            - Clients & Locations
            - Scripts
            - Script Execution
            - Software & Patches
            - Monitoring
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: CwAutomatePermissionGroup
      type: object
    CwPsaPermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        allow_bundle:
          anyOf:
            - type: boolean
            - type: 'null'
          default: null
          description: Allow bundling child tickets under a parent
          show_if_another_field_is:
            field_name: group_type
            field_value: TICKETS
          title: Allow Bundle
        allow_delete:
          default: false
          description: Allow deleting records (DELETE requests)
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Allow Delete
          type: boolean
        allow_merge:
          anyOf:
            - type: boolean
            - type: 'null'
          default: null
          description: Allow merging tickets into one
          show_if_another_field_is:
            field_name: group_type
            field_value: TICKETS
          title: Allow Merge
        client_facing_settings:
          anyOf:
            - $ref: '#/components/schemas/CwClientFacingNoteSettings'
            - type: 'null'
          default: null
        group_type:
          $ref: '#/components/schemas/CwPsaPermissionGroupType'
          enum:
            - TICKETS
            - TICKET_NOTES
            - CLIENT_FACING_TICKET_NOTES
            - CONTACTS
            - COMPANIES
            - CONFIGURATIONS
            - TIME_ENTRIES
            - SCHEDULE_ENTRIES
            - PROJECTS
            - PRODUCTS
            - AGREEMENTS
            - OPPORTUNITIES
            - INVOICES
            - PURCHASE_ORDERS
            - EXPENSES
            - SALES_ACTIVITIES
            - SALES_ORDERS
            - MARKETING
            - DOCUMENTS
            - AUDIT_TRAIL
            - PROJECT_TICKETS
            - TIMESHEETS
            - SLAS
            - KNOWLEDGE_BASE
            - INVENTORY
            - MANAGED_SERVICES
            - SALES_PIPELINE
            - ACCOUNTING
            - SYSTEM
          enumNames:
            - Tickets
            - Ticket Notes (Internal)
            - Ticket Notes (Client-Facing)
            - Contacts
            - Companies
            - Configurations
            - Time Entries
            - Schedule Entries
            - Projects
            - Products
            - Agreements
            - Opportunities
            - Invoices
            - Purchase Orders
            - Expenses
            - Sales Activities
            - Sales Orders
            - Marketing
            - Documents
            - Audit Trail
            - Project Tickets
            - Timesheets
            - SLAs
            - Knowledge Base
            - Inventory
            - Managed Services
            - Sales Pipeline
            - Accounting
            - System
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
        update_allowed_fields:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          default: null
          description: Fields the agent may update (None = all fields allowed)
          title: Allowed Update Fields
      required:
        - access_level
        - group_type
      title: CwPsaPermissionGroup
      type: object
    DattoRmmPermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        allow_delete:
          default: false
          description: Allow deleting records (DELETE requests)
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Allow Delete
          type: boolean
        group_type:
          $ref: '#/components/schemas/DattoRmmPermissionGroupType'
          enum:
            - DEVICES
            - SITES
            - COMPONENTS
            - JOBS
            - AUDIT
            - ALERTS
          enumNames:
            - Devices
            - Sites
            - Components
            - Jobs
            - Audit
            - Alerts
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: DattoRmmPermissionGroup
      type: object
    ExchangePermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        group_type:
          $ref: '#/components/schemas/ExchangePermissionGroupType'
          enum:
            - MAILBOXES
            - MAILBOX_PERMISSIONS
            - RECIPIENTS_AND_CONTACTS
            - DISTRIBUTION_GROUPS
            - MAIL_FLOW_AND_TRANSPORT
            - ADDRESS_LISTS_AND_POLICIES
            - COMPLIANCE_AND_AUDITING
          enumNames:
            - Mailboxes
            - Mailbox Permissions
            - Recipients & Contacts
            - Distribution Groups
            - Mail Flow & Transport
            - Address Lists & Policies
            - Compliance & Auditing
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: ExchangePermissionGroup
      type: object
    HaloPsaPermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        allow_delete:
          default: false
          description: Allow deleting records (DELETE requests)
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Allow Delete
          type: boolean
        allow_merge:
          anyOf:
            - type: boolean
            - type: 'null'
          default: null
          description: Allow merging tickets (POST with merged_into_id)
          show_if_another_field_is:
            field_name: group_type
            field_value: TICKETS
          title: Allow Merge
        allowed_outcome_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          default: null
          title: Allowed Outcome Ids
        client_facing_settings:
          anyOf:
            - $ref: '#/components/schemas/HaloClientFacingNoteSettings'
            - type: 'null'
          default: null
        group_type:
          $ref: '#/components/schemas/HaloPsaPermissionGroupType'
          enum:
            - TICKETS
            - ACTIONS
            - CLIENT_FACING_ACTIONS
            - TIME_ENTRIES
            - CONTACTS
            - COMPANIES
            - ASSETS
            - PRODUCTS
            - APPOINTMENTS
            - SLAS
            - KNOWLEDGE_BASE
            - CONTRACTS
            - INVOICES
            - QUOTATIONS
            - SUPPLIERS
            - OPPORTUNITIES
            - REPORTS
            - CONFIGURATION
          enumNames:
            - Tickets
            - Actions
            - Client-Facing Actions
            - Time Entries
            - Contacts
            - Companies
            - Assets
            - Products
            - Appointments
            - SLAs
            - Knowledge Base
            - Contracts
            - Invoices
            - Quotations
            - Suppliers
            - Opportunities
            - Reports
            - Configuration
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
        update_allowed_fields:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          default: null
          description: Fields the agent may update (None = all fields allowed)
          title: Allowed Update Fields
      required:
        - access_level
        - group_type
      title: HaloPsaPermissionGroup
      type: object
    HuduPermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        allow_delete:
          default: false
          description: Allow deleting records (DELETE requests)
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Allow Delete
          type: boolean
        group_type:
          $ref: '#/components/schemas/HuduPermissionGroupType'
          enum:
            - COMPANIES
            - ARTICLES
            - ASSETS
            - ASSET_LAYOUTS
            - PASSWORDS
            - FOLDERS
            - INFRASTRUCTURE
            - WEBSITES
          enumNames:
            - Companies
            - Articles
            - Assets
            - Asset Layouts
            - Passwords
            - Folders
            - Infrastructure
            - Websites
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: HuduPermissionGroup
      type: object
    ItgluePermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        allow_delete:
          default: false
          description: Allow deleting records (DELETE requests)
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Allow Delete
          type: boolean
        group_type:
          $ref: '#/components/schemas/ItgluePermissionGroupType'
          enum:
            - ORGANIZATIONS
            - CONTACTS
            - DOCUMENTS
            - FLEXIBLE_ASSETS
            - FLEXIBLE_ASSET_TYPES
            - CONFIGURATIONS
            - PASSWORDS
          enumNames:
            - Organizations
            - Contacts
            - Documents
            - Flexible Assets
            - Flexible Asset Types
            - Configurations
            - Passwords
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: ItgluePermissionGroup
      type: object
    MsGraphPermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        group_type:
          $ref: '#/components/schemas/MsGraphPermissionGroupType'
          enum:
            - USER_MANAGEMENT
            - GROUPS
            - SECURITY
            - LICENSING
            - DIRECTORY_ROLES
            - DEVICES
            - CONDITIONAL_ACCESS
            - DOMAINS
            - AUDIT_AND_REPORTS
            - APPLICATIONS
            - SERVICE_HEALTH
            - MAIL
            - SECURITY_OPERATIONS
            - SHAREPOINT_AND_ONEDRIVE
            - TEAMS_AND_CHATS
          enumNames:
            - User Management
            - Groups
            - Security
            - Licensing
            - Directory Roles
            - Devices
            - Conditional Access
            - Domains
            - Audit & Reports
            - Applications
            - Service Health
            - Mail
            - Security Operations
            - SharePoint & OneDrive
            - Teams & Chats
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: MsGraphPermissionGroup
      type: object
    NCentralRmmPermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        allow_delete:
          default: false
          description: Allow deleting records (DELETE requests)
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Allow Delete
          type: boolean
        group_type:
          $ref: '#/components/schemas/NCentralRmmPermissionGroupType'
          enum:
            - CUSTOMERS
            - DEVICES
            - SCHEDULED_TASKS
            - ASSETS
            - ACTIVE_ISSUES
          enumNames:
            - Customers
            - Devices
            - Scheduled Tasks
            - Assets
            - Active Issues
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: NCentralRmmPermissionGroup
      type: object
    NeoApiPermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        group_type:
          $ref: '#/components/schemas/NeoApiPermissionGroupType'
          enum:
            - EXECUTIONS
            - AGENTS
            - TENANT_CONFIG
            - END_COMPANIES
            - INTEGRATIONS
            - BILLING
            - TECHNICIANS
            - SCHEDULED_WORK
            - BACKFILLS
            - INBOX_AND_COMMS
            - TEMPLATES
            - OBSERVABILITY
            - CHAT
            - PHONE
            - CHANNELS
            - SKILLS
          enumNames:
            - Executions & Debugging
            - Agents & Schemas
            - Tenant Settings
            - End Companies
            - Integrations
            - Billing & Plan
            - Technicians
            - Scheduled Work
            - Backfills
            - Inbox & Comms
            - Templates
            - Observability
            - Chat Sessions
            - Phone Agent
            - Channels
            - Skills
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: NeoApiPermissionGroup
      type: object
    NinjaRmmPermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        allow_delete:
          default: false
          description: Allow deleting records (DELETE requests)
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Allow Delete
          type: boolean
        group_type:
          $ref: '#/components/schemas/NinjaRmmPermissionGroupType'
          enum:
            - DEVICES
            - ORGANIZATIONS
            - BACKUP
            - ALERTS
            - SOFTWARE
            - AUTOMATION
            - USERS
            - TICKETING
          enumNames:
            - Devices
            - Organizations
            - Backup
            - Alerts
            - Software
            - Automation
            - Users
            - Ticketing
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: NinjaRmmPermissionGroup
      type: object
    NSightRmmPermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        group_type:
          $ref: '#/components/schemas/NSightRmmPermissionGroupType'
          enum:
            - CLIENTS
            - DEVICES
            - CHECKS
            - SOFTWARE
            - TASKS
          enumNames:
            - Clients
            - Devices
            - Checks
            - Software
            - Tasks
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: NSightRmmPermissionGroup
      type: object
    ScalepadPermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        allow_delete:
          default: false
          description: Allow deleting records (DELETE requests)
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Allow Delete
          type: boolean
        group_type:
          $ref: '#/components/schemas/ScalepadPermissionGroupType'
          enum:
            - CORE
            - LIFECYCLE_MANAGER
            - CONTROLMAP
            - QUOTER
          enumNames:
            - Core
            - Lifecycle Manager
            - ControlMap
            - Quoter
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: ScalepadPermissionGroup
      type: object
    ServicenowPermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        allow_delete:
          default: false
          description: Allow deleting records (DELETE requests)
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Allow Delete
          type: boolean
        group_type:
          $ref: '#/components/schemas/ServicenowPermissionGroupType'
          enum:
            - TICKETS
            - WORK_NOTES
            - CLIENT_FACING_NOTES
            - TIME_ENTRIES
            - USERS_AND_GROUPS
            - COMPANIES
            - CMDB
            - CONFIGURATION
          enumNames:
            - Tickets
            - Work Notes
            - Client-Facing Notes
            - Time Entries
            - Users and Groups
            - Companies
            - CMDB
            - Configuration
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: ServicenowPermissionGroup
      type: object
    VsaxRmmPermissionGroup:
      properties:
        access_level:
          $ref: '#/components/schemas/AccessLevel'
          enum:
            - DISABLED
            - READ_ONLY
            - READ_WRITE
          enumNames:
            - Disabled
            - Read Only
            - Read/Write
          title: Access Level
        allow_delete:
          default: false
          description: Allow deleting records (DELETE requests)
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Allow Delete
          type: boolean
        group_type:
          $ref: '#/components/schemas/VsaxRmmPermissionGroupType'
          enum:
            - DEVICES
            - ASSETS
            - ORGANIZATIONS
            - AUTOMATION
            - PATCH_MANAGEMENT
            - ENDPOINT_PROTECTION
            - NOTIFICATIONS
            - SYSTEM
          enumNames:
            - Devices
            - Assets
            - Organizations
            - Automation
            - Patch Management
            - Endpoint Protection
            - Notifications
            - System
          title: Permission Group
        require_til:
          default: false
          description: Require technician approval before write operations in this area
          show_if_another_field_is:
            field_name: access_level
            field_value: READ_WRITE
          title: Require Technician Approval
          type: boolean
      required:
        - access_level
        - group_type
      title: VsaxRmmPermissionGroup
      type: object
    Combinator:
      enum:
        - and
        - or
      title: Combinator
      type: string
    Rule:
      properties:
        field:
          title: Field
          type: string
        id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Id
        operator:
          $ref: '#/components/schemas/Operator'
        value:
          title: Value
        valueProviderInput:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Valueproviderinput
      required:
        - field
        - operator
        - value
      title: Rule
      type: object
    CustomFieldCondition:
      properties:
        field:
          title: Field
          type: string
        operator:
          $ref: '#/components/schemas/Operator'
          default: '='
          enum:
            - '='
            - '!='
            - <
            - '>'
            - <=
            - '>='
            - contains
            - 'null'
            - notNull
        value:
          title: Value
          type: string
      required:
        - field
        - value
      title: CustomFieldCondition
      type: object
    WorkflowTimeWindow:
      properties:
        run_end_time:
          format: time
          title: Run End Time
          type: string
        run_start_time:
          format: time
          title: Run Start Time
          type: string
      required:
        - run_start_time
        - run_end_time
      title: WorkflowTimeWindow
      type: object
    TimeUnit:
      enum:
        - MINUTE
        - HOUR
        - DAY
        - WEEK
        - MONTH
      title: TimeUnit
      type: string
    AccessLevel:
      description: Universal access level for all integration permission groups.
      enum:
        - Disabled
        - Read Only
        - Read/Write
      title: AccessLevel
      type: string
    AdPermissionGroupType:
      enum:
        - User Management
        - Groups
        - Computers
        - Organizational Structure
        - Infrastructure
        - Entra Connect Sync
      title: AdPermissionGroupType
      type: string
    AtClientFacingNoteSettings:
      description: AT-specific client-facing note settings.
      properties:
        allow_notify_additional_contacts:
          default: false
          title: Allow Notify Additional Contacts
          type: boolean
        include_random_delay:
          default: false
          title: Include Random Delay
          type: boolean
        max_delay_minutes:
          default: 20
          title: Max Delay Minutes
          type: integer
        min_delay_minutes:
          default: 10
          title: Min Delay Minutes
          type: integer
        note_publish_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Note Publish Id
        note_type_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Note Type Id
        notification_mode:
          anyOf:
            - type: string
            - type: 'null'
          default: TICKET_NOTE
          title: Notification Mode
        skip_notifications_for_closed_tickets:
          default: true
          title: Skip Notifications For Closed Tickets
          type: boolean
        udf_field_name:
          default: Notify Contact by Email
          title: Udf Field Name
          type: string
        use_custom_note_type:
          default: false
          title: Use Custom Note Type
          type: boolean
        use_udf_field:
          default: false
          title: Use Udf Field
          type: boolean
      title: AtClientFacingNoteSettings
      type: object
    AtPsaPermissionGroupType:
      enum:
        - Tickets
        - Ticket Notes (Internal)
        - Ticket Notes (Client-Facing)
        - Contacts
        - Companies
        - Configurations
        - Time Entries
        - Service Calls
        - Projects
        - Products
        - Contracts
        - Opportunities
        - Company To-Dos
        - Tags
        - Resources
        - Billing Codes
        - Attachments
        - Knowledge Base
        - Documents
        - Invoices
        - Expenses
        - Purchase Orders
        - Quotes
        - Sales Orders
        - Inventory
        - Surveys
        - Admin
      title: AtPsaPermissionGroupType
      type: string
    AtTimeEntryUdfSettings:
      description: AT-specific UDF settings for time entry email notifications.
      properties:
        include_dynamic_delay:
          default: false
          title: Include Dynamic Delay
          type: boolean
        max_delay_minutes:
          default: 20
          title: Max Delay Minutes
          type: integer
        min_delay_minutes:
          default: 10
          title: Min Delay Minutes
          type: integer
        udf_field_name:
          default: Notify Contact by Email
          title: Udf Field Name
          type: string
        use_udf_field:
          default: false
          title: Use Udf Field
          type: boolean
      title: AtTimeEntryUdfSettings
      type: object
    ConfluencePermissionGroupType:
      enum:
        - Pages
        - Spaces
        - Search
        - Attachments
        - Users
      title: ConfluencePermissionGroupType
      type: string
    CwAsioPermissionGroupType:
      enum:
        - Endpoints
        - Automation
        - Ticketing
        - Companies & Sites
        - Contacts
        - Custom Fields
        - Policy
        - OS Patching
        - Alerts & Suspensions
        - Incidents
        - Backup Dashboard
        - Network Devices
        - Endpoint & Site Mapping
        - Billing
        - Platform Info
      title: CwAsioPermissionGroupType
      type: string
    CwAutomatePermissionGroupType:
      enum:
        - Computers
        - Clients & Locations
        - Scripts
        - Script Execution
        - Software & Patches
        - Monitoring
      title: CwAutomatePermissionGroupType
      type: string
    CwClientFacingNoteSettings:
      description: 'CW-specific: no extra fields beyond base.'
      properties:
        allow_notify_additional_contacts:
          default: false
          title: Allow Notify Additional Contacts
          type: boolean
        include_random_delay:
          default: false
          title: Include Random Delay
          type: boolean
        max_delay_minutes:
          default: 20
          title: Max Delay Minutes
          type: integer
        min_delay_minutes:
          default: 10
          title: Min Delay Minutes
          type: integer
        skip_notifications_for_closed_tickets:
          default: true
          title: Skip Notifications For Closed Tickets
          type: boolean
      title: CwClientFacingNoteSettings
      type: object
    CwPsaPermissionGroupType:
      enum:
        - Tickets
        - Ticket Notes (Internal)
        - Ticket Notes (Client-Facing)
        - Contacts
        - Companies
        - Configurations
        - Time Entries
        - Schedule Entries
        - Projects
        - Products
        - Agreements
        - Opportunities
        - Invoices
        - Purchase Orders
        - Expenses
        - Sales Activities
        - Sales Orders
        - Marketing
        - Documents
        - Audit Trail
        - Project Tickets
        - Timesheets
        - SLAs
        - Knowledge Base
        - Inventory
        - Managed Services
        - Sales Pipeline
        - Accounting
        - System
      title: CwPsaPermissionGroupType
      type: string
    DattoRmmPermissionGroupType:
      enum:
        - Devices
        - Sites
        - Components
        - Jobs
        - Audit
        - Alerts
      title: DattoRmmPermissionGroupType
      type: string
    ExchangePermissionGroupType:
      enum:
        - Mailboxes
        - Mailbox Permissions
        - Recipients & Contacts
        - Distribution Groups
        - Mail Flow & Transport
        - Address Lists & Policies
        - Compliance & Auditing
      title: ExchangePermissionGroupType
      type: string
    HaloClientFacingNoteSettings:
      description: >-
        Halo-specific: allowed_outcome_ids determines which email outcomes the
        agent can use.
      properties:
        allow_notify_additional_contacts:
          default: false
          title: Allow Notify Additional Contacts
          type: boolean
        allowed_outcome_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          default: null
          title: Allowed Outcome Ids
        include_random_delay:
          default: false
          title: Include Random Delay
          type: boolean
        max_delay_minutes:
          default: 20
          title: Max Delay Minutes
          type: integer
        min_delay_minutes:
          default: 10
          title: Min Delay Minutes
          type: integer
        skip_notifications_for_closed_tickets:
          default: true
          title: Skip Notifications For Closed Tickets
          type: boolean
      title: HaloClientFacingNoteSettings
      type: object
    HaloPsaPermissionGroupType:
      enum:
        - Tickets
        - Actions
        - Client-Facing Actions
        - Time Entries
        - Contacts
        - Companies
        - Assets
        - Products
        - Appointments
        - SLAs
        - Knowledge Base
        - Contracts
        - Invoices
        - Quotations
        - Suppliers
        - Opportunities
        - Reports
        - Configuration
      title: HaloPsaPermissionGroupType
      type: string
    HuduPermissionGroupType:
      enum:
        - Companies
        - Articles
        - Assets
        - Asset Layouts
        - Passwords
        - Folders
        - Infrastructure
        - Websites
      title: HuduPermissionGroupType
      type: string
    ItgluePermissionGroupType:
      enum:
        - Organizations
        - Contacts
        - Documents
        - Flexible Assets
        - Flexible Asset Types
        - Configurations
        - Passwords
      title: ItgluePermissionGroupType
      type: string
    MsGraphPermissionGroupType:
      enum:
        - User Management
        - Groups
        - Security
        - Licensing
        - Directory Roles
        - Devices
        - Conditional Access
        - Domains
        - Audit & Reports
        - Applications
        - Service Health
        - Mail
        - Security Operations
        - SharePoint & OneDrive
        - Teams & Chats
      title: MsGraphPermissionGroupType
      type: string
    NCentralRmmPermissionGroupType:
      enum:
        - Customers
        - Devices
        - Scheduled Tasks
        - Assets
        - Active Issues
      title: NCentralRmmPermissionGroupType
      type: string
    NeoApiPermissionGroupType:
      enum:
        - Executions & Debugging
        - Agents & Schemas
        - Tenant Settings
        - End Companies
        - Integrations
        - Billing & Plan
        - Technicians
        - Scheduled Work
        - Backfills
        - Inbox & Comms
        - Templates
        - Observability
        - Chat Sessions
        - Phone Agent
        - Channels
        - Skills
      title: NeoApiPermissionGroupType
      type: string
    NinjaRmmPermissionGroupType:
      enum:
        - Devices
        - Organizations
        - Backup
        - Alerts
        - Software
        - Automation
        - Users
        - Ticketing
      title: NinjaRmmPermissionGroupType
      type: string
    NSightRmmPermissionGroupType:
      enum:
        - Clients
        - Devices
        - Checks
        - Software
        - Tasks
      title: NSightRmmPermissionGroupType
      type: string
    ScalepadPermissionGroupType:
      enum:
        - Core
        - Lifecycle Manager
        - ControlMap
        - Quoter
      title: ScalepadPermissionGroupType
      type: string
    ServicenowPermissionGroupType:
      enum:
        - Tickets
        - Work Notes
        - Client-Facing Notes
        - Time Entries
        - Users and Groups
        - Companies
        - CMDB
        - Configuration
      title: ServicenowPermissionGroupType
      type: string
    VsaxRmmPermissionGroupType:
      enum:
        - Devices
        - Assets
        - Organizations
        - Automation
        - Patch Management
        - Endpoint Protection
        - Notifications
        - System
      title: VsaxRmmPermissionGroupType
      type: string
    Operator:
      enum:
        - '='
        - '!='
        - <
        - '>'
        - <=
        - '>='
        - beginsWith
        - endsWith
        - contains
        - doesNotContain
        - doesNotBeginWith
        - doesNotEndWith
        - 'null'
        - notNull
        - in
        - notIn
      title: Operator
      type: string
  securitySchemes:
    bearerAuth:
      description: >-
        `Authorization: Bearer <token>` where `<token>` is either a
        `neo_sk_<env>_<secret>` API key (service account) or a Microsoft Entra
        ID access token (dashboard user).
      scheme: bearer
      type: http

````