Rhombus Systems Scene Query Webservice API

The Scene Query Webservice API from Rhombus Systems — 9 operation(s) for scene query webservice.

Operations 9

POST /api/scenequery/adHocPrompt Execute a prompt, ad-hoc #
POST /api/scenequery/createPromptConfiguration Create prompt configuration #
POST /api/scenequery/deletePromptConfiguration Delete prompt configuration #
POST /api/scenequery/findPromptConfigurations Find all prompt configurations #
POST /api/scenequery/getPromptConfiguration Get prompt configuration #
POST /api/scenequery/optimizePromptChat Optimize prompt via chat #
POST /api/scenequery/selectiveUpdatePromptConfiguration Selective update prompt configuration #
POST /api/scenequery/triggerPrompt Trigger prompt #
POST /api/scenequery/updatePromptConfiguration Update prompt configuration #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/rhombus-systems-scene-query-webservice-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

rhombus-systems-scene-query-webservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: developer@rhombussystems.com
  description: 'This API is for use by Rhombus customers and partners.


    ## Authentication


    All requests require two headers:

    - `x-auth-scheme` — The authentication scheme identifier. Use `api-token` for standard API key auth, or `partner-api-token` for partner API auth.

    - `x-auth-apikey` — Your Rhombus API key.


    Example:

    ```

    POST /api/camera/getMinimalCameraStateList

    x-auth-scheme: api-token

    x-auth-apikey: YOUR_API_KEY

    Content-Type: application/json

    ```'
  title: Rhombus Scene Query Webservice API
  version: '1.0'
servers:
- description: Production Server
  url: https://api2.rhombussystems.com
security:
- ApiKeyAuth: []
tags:
- name: Scene Query Webservice
paths:
  /api/scenequery/adHocPrompt:
    post:
      description: Exectue an existing prompt, ad-hoc
      operationId: adHocPrompt
      parameters:
      - description: Authentication scheme identifier. Use `api-token` for standard API key authentication, `partner-api-token` for partner API key authentication. Must be paired with the `x-auth-apikey` header containing your API key.
        example: api-token
        in: header
        name: x-auth-scheme
        required: true
        schema:
          type: string
          default: api-token
          enum:
          - api-token
          - api
          - partner-api-token
          - partner-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scenequery_AdHocPromptWSRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scenequery_AdHocPromptWSResponse'
          description: OK
      summary: Execute a prompt, ad-hoc
      tags:
      - Scene Query Webservice
  /api/scenequery/createPromptConfiguration:
    post:
      description: Create scene query configuration
      operationId: createPromptConfiguration
      parameters:
      - description: Authentication scheme identifier. Use `api-token` for standard API key authentication, `partner-api-token` for partner API key authentication. Must be paired with the `x-auth-apikey` header containing your API key.
        example: api-token
        in: header
        name: x-auth-scheme
        required: true
        schema:
          type: string
          default: api-token
          enum:
          - api-token
          - api
          - partner-api-token
          - partner-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scenequery_CreatePromptConfigurationWSRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scenequery_CreatePromptConfigurationWSResponse'
          description: OK
      summary: Create prompt configuration
      tags:
      - Scene Query Webservice
  /api/scenequery/deletePromptConfiguration:
    post:
      description: Delete scene query configuration
      operationId: deletePromptConfiguration
      parameters:
      - description: Authentication scheme identifier. Use `api-token` for standard API key authentication, `partner-api-token` for partner API key authentication. Must be paired with the `x-auth-apikey` header containing your API key.
        example: api-token
        in: header
        name: x-auth-scheme
        required: true
        schema:
          type: string
          default: api-token
          enum:
          - api-token
          - api
          - partner-api-token
          - partner-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scenequery_DeletePromptConfigurationWSRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scenequery_DeletePromptConfigurationWSResponse'
          description: OK
      summary: Delete prompt configuration
      tags:
      - Scene Query Webservice
  /api/scenequery/findPromptConfigurations:
    post:
      description: Find all scene query configurations
      operationId: findAllPromptConfigurations
      parameters:
      - description: Authentication scheme identifier. Use `api-token` for standard API key authentication, `partner-api-token` for partner API key authentication. Must be paired with the `x-auth-apikey` header containing your API key.
        example: api-token
        in: header
        name: x-auth-scheme
        required: true
        schema:
          type: string
          default: api-token
          enum:
          - api-token
          - api
          - partner-api-token
          - partner-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scenequery_FindAllPromptConfigurationsWSRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scenequery_FindAllPromptConfigurationsWSResponse'
          description: OK
      summary: Find all prompt configurations
      tags:
      - Scene Query Webservice
  /api/scenequery/getPromptConfiguration:
    post:
      description: Get scene query configuration
      operationId: getPromptConfiguration
      parameters:
      - description: Authentication scheme identifier. Use `api-token` for standard API key authentication, `partner-api-token` for partner API key authentication. Must be paired with the `x-auth-apikey` header containing your API key.
        example: api-token
        in: header
        name: x-auth-scheme
        required: true
        schema:
          type: string
          default: api-token
          enum:
          - api-token
          - api
          - partner-api-token
          - partner-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scenequery_GetPromptConfigurationWSRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scenequery_GetPromptConfigurationWSResponse'
          description: OK
      summary: Get prompt configuration
      tags:
      - Scene Query Webservice
  /api/scenequery/optimizePromptChat:
    post:
      description: Optimize a scene query prompt through an interactive chat with Gemini
      operationId: optimizePromptChat
      parameters:
      - description: Authentication scheme identifier. Use `api-token` for standard API key authentication, `partner-api-token` for partner API key authentication. Must be paired with the `x-auth-apikey` header containing your API key.
        example: api-token
        in: header
        name: x-auth-scheme
        required: true
        schema:
          type: string
          default: api-token
          enum:
          - api-token
          - api
          - partner-api-token
          - partner-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scenequery_PromptOptimizationChatWSRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scenequery_PromptOptimizationChatWSResponse'
          description: OK
      summary: Optimize prompt via chat
      tags:
      - Scene Query Webservice
  /api/scenequery/selectiveUpdatePromptConfiguration:
    post:
      description: Selectively update a scene query configuration
      operationId: selectiveUpdatePromptConfiguration
      parameters:
      - description: Authentication scheme identifier. Use `api-token` for standard API key authentication, `partner-api-token` for partner API key authentication. Must be paired with the `x-auth-apikey` header containing your API key.
        example: api-token
        in: header
        name: x-auth-scheme
        required: true
        schema:
          type: string
          default: api-token
          enum:
          - api-token
          - api
          - partner-api-token
          - partner-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scenequery_SelectiveUpdatePromptConfigurationWSRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scenequery_SelectiveUpdatePromptConfigurationWSResponse'
          description: OK
      summary: Selective update prompt configuration
      tags:
      - Scene Query Webservice
  /api/scenequery/triggerPrompt:
    post:
      description: Trigger scene query with a custom prompt
      operationId: triggerPrompt
      parameters:
      - description: Authentication scheme identifier. Use `api-token` for standard API key authentication, `partner-api-token` for partner API key authentication. Must be paired with the `x-auth-apikey` header containing your API key.
        example: api-token
        in: header
        name: x-auth-scheme
        required: true
        schema:
          type: string
          default: api-token
          enum:
          - api-token
          - api
          - partner-api-token
          - partner-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scenequery_TriggerPromptWSRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scenequery_TriggerPromptWSResponse'
          description: OK
      summary: Trigger prompt
      tags:
      - Scene Query Webservice
  /api/scenequery/updatePromptConfiguration:
    post:
      description: Update scene query configuration
      operationId: updatePromptConfiguration
      parameters:
      - description: Authentication scheme identifier. Use `api-token` for standard API key authentication, `partner-api-token` for partner API key authentication. Must be paired with the `x-auth-apikey` header containing your API key.
        example: api-token
        in: header
        name: x-auth-scheme
        required: true
        schema:
          type: string
          default: api-token
          enum:
          - api-token
          - api
          - partner-api-token
          - partner-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scenequery_UpdatePromptConfigurationWSRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scenequery_UpdatePromptConfigurationWSResponse'
          description: OK
      summary: Update prompt configuration
      tags:
      - Scene Query Webservice
components:
  schemas:
    Scenequery_CreatePromptConfigurationWSResponse:
      type: object
      description: Response object for creating a prompt configuration.
      properties:
        error:
          type:
          - boolean
          - 'null'
        errorMsg:
          type:
          - string
          - 'null'
        promptConfiguration:
          $ref: '#/components/schemas/PromptConfigurationType'
        warningMsg:
          type:
          - string
          - 'null'
    RegionPolygonType:
      type: object
      properties:
        coordinates:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/RegionCoordinateType'
    PromptTypeEnum:
      type: string
      enum:
      - COUNT
      - PERCENT
      - BOOLEAN
      - TEXT
    Scenequery_UpdatePromptConfigurationWSRequest:
      type: object
      description: Request object for updating a prompt configuration.
      properties:
        promptConfiguration:
          $ref: '#/components/schemas/PromptConfigurationType'
    Scenequery_DeletePromptConfigurationWSResponse:
      type: object
      description: Response object for deleting a prompt configuration.
      properties:
        error:
          type:
          - boolean
          - 'null'
        errorMsg:
          type:
          - string
          - 'null'
        warningMsg:
          type:
          - string
          - 'null'
    ConnectAudioDeviceToPhoneNumberActionType:
      type: object
      properties:
        audioDeviceUuid:
          type:
          - string
          - 'null'
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
        deviceType:
          $ref: '#/components/schemas/DeviceTypeEnum'
        doorUuid:
          type:
          - string
          - 'null'
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
        optionalGreeting:
          type:
          - string
          - 'null'
        phoneNumber:
          type:
          - string
          - 'null'
    Trigger:
      type: object
      properties:
        activity:
          $ref: '#/components/schemas/TriggerActivityEnum'
        value:
          type:
          - string
          - 'null'
    Scenequery_OptimizationContextType:
      type: object
      description: Context for prompt optimization including the camera frame, original prompt, and expected answer.
      properties:
        deviceFacetUuid:
          type:
          - string
          - 'null'
          format: DeviceFacetUuid
          description: RUUID with optional appended facet information
          example: AAAAAAAAAAAAAAAAAAAAAA.v0
        expectedAnswer:
          type:
          - string
          - 'null'
          description: Expected answer the prompt should produce
        optionalContext:
          type:
          - string
          - 'null'
          description: Optional additional context for the optimization
        originalAnswer:
          type:
          - string
          - 'null'
          description: Original answer produced by the LLM (must be a boolean, number, or percentage)
        originalPrompt:
          type:
          - string
          - 'null'
          description: Original prompt that was used
        region:
          $ref: '#/components/schemas/Scenequery_RegionPolygonType'
        timestampMs:
          type:
          - integer
          - 'null'
          format: int64
          description: Timestamp in milliseconds for the camera frame to use
    Scenequery_RegionPolygonType:
      type: object
      description: Optional region polygon to crop the camera frame
      properties:
        coordinates:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Scenequery_RegionCoordinateType'
    Scenequery_GetPromptConfigurationWSResponse:
      type: object
      description: Response object for getting a prompt configuration.
      properties:
        error:
          type:
          - boolean
          - 'null'
        errorMsg:
          type:
          - string
          - 'null'
        promptConfiguration:
          $ref: '#/components/schemas/PromptConfigurationType'
        warningMsg:
          type:
          - string
          - 'null'
    RemoteDoorUnlockActionType:
      type: object
      properties:
        doorId:
          type:
          - string
          - 'null'
        placeId:
          type:
          - string
          - 'null'
        system:
          $ref: '#/components/schemas/RemoteDoorUnlockSystemEnum'
    ReportLookbackTypeEnum:
      type: string
      enum:
      - ROLLING
      - PREVIOUS_DAY
      - PREVIOUS_WEEK
      - PREVIOUS_MONTH
    ActivityEnum:
      type: string
      enum:
      - SOUND_LOUD
      - SOUND_GUN_SHOT
      - TAMPER
      - VISUAL_TAMPER
      - MOTION_TAMPER
      - MOTION
      - MOTION_HUMAN
      - MOTION_CAR
      - MOTION_ANIMAL
      - FACE
      - FACE_IDENTIFIED
      - FACE_UNIDENTIFIED
      - FACE_BLACKLISTED
      - FACE_ALERT
      - POSE_ANOMALOUS
      - POSE_FALL
      - LICENSEPLATE
      - LICENSEPLATE_IDENTIFIED
      - LICENSEPLATE_UNIDENTIFIED
      - LICENSEPLATE_ALERT
      - LICENSEPLATE_BLACKLISTED
      - LICENSEPLATE_TRUSTED
      - PEOPLECOUNT_HIGH
      - PEOPLECOUNT_HIGH_RESET
      - PEOPLECOUNT_LOW
      - PEOPLECOUNT_LOW_RESET
      - HUMAN_ENTER
      - HUMAN_EXIT
      - CAR_ENTER
      - CAR_EXIT
      - TEMPERATURE_EXCEEDED_HIGH
      - TEMPERATURE_EXCEEDED_LOW
      - HUMIDITY_EXCEEDED_HIGH
      - HUMIDITY_EXCEEDED_LOW
      - PM25_EXCEEDED_HIGH
      - TVOC_EXCEEDED_HIGH
      - ETOH_EXCEEDED_HIGH
      - IAQ_EXCEEDED_HIGH
      - CO2_EXCEEDED_HIGH
      - CO2_EXCEEDED_LOW
      - PROBE_TEMPERATURE_EXCEEDED_HIGH
      - PROBE_TEMPERATURE_EXCEEDED_LOW
      - PROBE_DISCONNECTED
      - PROBE_CONNECTED
      - HEAT_INDEX_EXCEEDED_HIGH
      - PRESSURE_EXCEEDED_HIGH
      - PRESSURE_EXCEEDED_LOW
      - PM10_EXCEEDED_HIGH
      - PM40_EXCEEDED_HIGH
      - PM100_EXCEEDED_HIGH
      - VOC_IDX_EXCEEDED_HIGH
      - NOX_IDX_EXCEEDED_HIGH
      - FORMALDEHYDE_EXCEEDED_HIGH
      - CARBON_MONOXIDE_EXCEEDED_HIGH
      - AQI_EXCEEDED_HIGH
      - DOOR_AJAR
      - DOOR_OPENED
      - DOOR_CLOSED
      - BUTTON_SINGLE_PRESSED
      - BUTTON_DOUBLE_PRESSED
      - BUTTON_LONG_PRESSED
      - TAG_ARRIVED
      - TAG_DEPARTED
      - TAG_MOVED
      - TAG_POSITIONING_CHANGED
      - TAG_BOUNDARY_INGRESS
      - TAG_BOUNDARY_EGRESS
      - TAG_PANIC
      - BADGE_AUTHORIZED
      - BADGE_UNAUTHORIZED
      - BADGE_UNAUTHORIZED_V2
      - BADGE_AJAR
      - BADGE_MANUAL
      - BADGE_FORCED_OPEN
      - BADGE_LOCKDOWN
      - BADGE_REQUEST_TO_EXIT
      - BADGE_DURESS
      - BADGE_SECURITY_BREACH
      - BADGE_TAMPER
      - BADGE_FACE_MISMATCH
      - POS_ORDER
      - GUN_DETECT_EVENT
      - IOT_SOUND_AGGRESSION
      - IOT_SOUND_HELP
      - IOT_AIR_CO
      - IOT_AIR_CO2
      - IOT_AIR_MASKING
      - IOT_AIR_THC
      - IOT_AIR_VAPE
      - IOT_AIR_VOC
      - IOT_AIR_TEMP
      - IOT_TAMPER
      - IOT_GUNSHOT
      - IOT_BUTTON_SINGLE_CLICK
      - IOT_BUTTON_DOUBLE_CLICK
      - IOT_BUTTON_HOLD
      - IOT_PANIC_BUTTON_TRIGGERED
      - AUDIO_SOUND_SIGNIFICANT
      - AUDIO_SOUND_LOUD
      - AUDIO_SOUND_ABUSIVE
      - AUDIO_SOUND_GREETING
      - AUDIO_SOUND_HELP
      - AUDIO_SOUND_GUN
      - AUDIO_SOUND_GLASS_BREAK
      - AUDIO_SOUND_ALARM_SMOKE_FIRE
      - AUDIO_SOUND_ALARM_CARBON_MONOXIDE
      - AUDIO_SOUND_SIREN
      - CLIMATE_VOC
      - CLIMATE_VAPE
      - CLIMATE_SMOKE
      - CLIMATE_THC
      - CLIMATE_CO2
      - CLIMATE_ETOH
      - CLIMATE_PM25
      - CLIMATE_IAQ
      - CLIMATE_LEAK
      - SOUND_AGGRESSION
      - SOUND_HELP
      - AIR_CO
      - AIR_CO2
      - AIR_MASKING
      - AIR_THC
      - AIR_VAPE
      - AIR_VOC
      - MASK_MISSING
      - HELMET_MISSING
      - GLOVES_MISSING
      - PIR_OCCUPIED
      - PIR_MOVEMENT
      - PIR_VACANT
      - CUSTOM
      - VISITOR_ARRIVED
      - VISITOR_DEPARTED
      - AC_DR_CONNECTED
      - AC_DR_DISCONNECTED
      - AC_DPI_DOOR_OPEN
      - AC_DPI_DOOR_CLOSED
      - AC_DPI_DOOR_AJAR
      - AC_DPI_DOOR_FORCED_OPEN
      - AC_DSR_UNLOCKED
      - AC_DSR_LOCKED
      - AC_DB_TRIGGERED
      - AC_PANIC_BUTTON_TRIGGERED
      - AC_REMOTE_UNLOCK
      - AC_BADGE_AUTHORIZED
      - AC_BADGE_UNAUTHORIZED
      - AC_BADGE_FACE_MISMATCH
      - AC_LOCKDOWN_ACTIVATED
      - AC_LOCKDOWN_DEACTIVATED
      - AC_TAMPER_PROX
      - AC_TAMPER_ACCEL
      - AC_TAMPER_SWITCH
      - AC_GR_ACTIVE
      - AC_GR_INACTIVE
      - AC_GI_ACTIVE
      - AC_GI_INACTIVE
      - AC_REX_ACTIVE
      - AC_REX_INACTIVE
      - AC_APERIO_DEVICE_DISCONNECTED
      - AC_APERIO_DEVICE_CONNECTED
      - AC_APERIO_DEVICE_REBOOT
      - AC_APERIO_DEVICE_TAMPER
      - AC_APERIO_LOW_BATTERY
      - AC_APERIO_FLAT_BATTERY
      - AC_APERIO_OK_BATTERY
      - POWER_SWITCH_BATTERY
      - POWER_SWITCH_PRIMARY
      - AI_SEARCH_MATCH
      - CUSTOM_LLM_BOOLEAN_TRUE
      - CUSTOM_LLM_BOOLEAN_FALSE
      - CUSTOM_LLM_THRESHOLD_EXCEEDED_LOW
      - CUSTOM_LLM_THRESHOLD_EXCEEDED_HIGH
      - ALM_AUTHORITIES_CONTACTED
      - ALM_MONITORING_ENABLED
      - ALM_MONITORING_DISABLED
      - ALM_MONITORING_SETTINGS_CHANGE
      - ALM_THREAT_CASE_CLOSED
      - ALM_THREAT_DETECTED
      - ALM_MONITORING_EVENT_DETECTED
      - ROBOT_DOG_DETECTED
      - ROBOT_ARRIVED_AT_WAYPOINT
      - ROBOT_ARRIVED_AT_POSE
      - ROBOT_WAITING_AT_POSE
      - ROBOT_MANUAL_CMD_VEL
      - ROBOT_MANUAL_ACTION
      - ROBOT_MANUAL_POSTURE
      - ROBOT_NAVIGATE_TO_POSE_START
      - ROBOT_NAVIGATE_TO_POSE_END
      - ROBOT_NAVIGATE_TO_HOME_START
      - ROBOT_NAVIGATE_TO_HOME_END
      - ROBOT_NAVIGATE_TO_WAYPOINT_START
      - ROBOT_NAVIGATE_TO_WAYPOINT_END
      - ROBOT_ROUTE_RUN_START
      - ROBOT_ROUTE_RUN_END
      - ROBOT_LOW_BATTERY_DOCKING
      - ROBOT_IDLE_DOCKING
      - ROBOT_EMERGENCY
      - LOITER_HUMAN
      - REID_HUMAN
      - INACTIVITY_HUMAN
      - INACTIVITY_CAR
      - ONGUARD_BADGE_AUTHORIZED
      - ONGUARD_BADGE_ANOMALY
      - ONGUARD_NO_ENTRY_MADE
      - ELEMENTS_BADGE_AUTHORIZED
      - ELEMENTS_BADGE_ANOMALY
      - ELEMENTS_NO_ENTRY_MADE
      - NETBOX_BADGE_AUTHORIZED
      - NETBOX_BADGE_ANOMALY
      - NETBOX_NO_ENTRY_MADE
      - THERMAL_TEMPERATURE_ALARM
      - THERMAL_TEMPERATURE_WARNING
      - THERMAL_FIRE_DETECTED
      - THERMAL_SMOKING_DETECTED
      - THERMAL_FIRE_VERIFIED
      - THERMAL_HEAT_NO_THREAT
      - THERMAL_VISUAL_HOTSPOT
      - THERMAL_VISUAL_HEAT_RISE
      - THERMAL_VISUAL_WARM_BODY
      - UNKNOWN
    ToastCheckInfo:
      type: object
      properties:
        totalAmount:
          type:
          - number
          - 'null'
          format: double
    CustomRuleAction:
      type: object
      properties:
        headers:
          type:
          - object
          - 'null'
          additionalProperties:
            type:
            - string
            - 'null'
        path:
          type:
          - string
          - 'null'
    ChangeComponentCompositeAccessStateActionType:
      type: object
      properties:
        accessState:
          $ref: '#/components/schemas/AccessControlledDoorStateEnumType'
        alwaysCreateOverrideIfNoFirstIn:
          type:
          - boolean
          - 'null'
        componentCompositeUuid:
          type:
          - string
          - 'null'
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
        expirationStrategy:
          $ref: '#/components/schemas/AccessStateOverrideExpirationStrategyEnum'
        expireTimeDelaySeconds:
          type:
          - integer
          - 'null'
          format: int64
        expireTimeOfDayLocalSeconds:
          type:
          - integer
          - 'null'
          format: int64
        useFirstInRulesIfPossible:
          type:
          - boolean
          - 'null'
        version:
          type:
          - integer
          - 'null'
          format: int32
          readOnly: true
    CreateAlarmTriggerTypeEnum:
      type: string
      enum:
      - PANIC_BUTTON
      - ALARM_INTEGRATION
    ComponentRelayOutputTypeEnum:
      type: string
      enum:
      - TRANSIENT
      - STEADY
    AccessControlledDoorStateEnumType:
      type: string
      enum:
      - UNLOCKED
      - ACCESS_CONTROLLED
    ScheduledAction:
      type: object
      properties:
        action:
          $ref: '#/components/schemas/RuleActionType'
        backoffMinutes:
          type:
          - integer
          - 'null'
          format: int32
        backoffSeconds:
          type:
          - integer
          - 'null'
          format: int32
        ruleUuid:
          type:
          - string
          - 'null'
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
        scheduleUuid:
          type:
          - string
          - 'null'
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
    ToastOrderIdType:
      type: object
      properties:
        employeeName:
          type:
          - string
          - 'null'
        guid:
          type:
          - string
          - 'null'
        locationName:
          type:
          - string
          - 'null'
        restaurantName:
          type:
          - string
          - 'null'
        toastCheckInfo:
          $ref: '#/components/schemas/ToastCheckInfo'
    Pose:
      type: object
      properties:
        orientation:
          type:
          - array
          - 'null'
          items:
            type: number
            format: double
            description: Serialized as [x, y, z, w]
          maxItems: 4
          minItems: 4
        position:
          type:
          - array
          - 'null'
          items:
            type: number
            format: double
            description: Serialized as [x, y, z]
          maxItems: 3
          minItems: 3
    RuleActionType:
      type: object
      description: The action to take when this lockdown rule is triggered.
      properties:
        activateLocationLockdown:
          $ref: '#/components/schemas/ActivateLocationLockdownActionType'
        alertAction:
          type:
          - boolean
          - 'null'
        audioPlaybackActions:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/AudioPlaybackActionType'
        cancelLoopingAudioPlaybackAction:
          $ref: '#/components/schemas/CancelLoopingAudioPlaybackActionType'
        changeComponentCompositeAccessStateActions:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ChangeComponentCompositeAccessStateActionType'
        connectAudioDeviceToMobileAppAction:
          $ref: '#/components/schemas/ConnectAudioDeviceToMobileAppActionType'
        connectAudioDeviceToPhoneNumberAction:
          $ref: '#/components/schemas/ConnectAudioDeviceToPhoneNumberActionType'
        createAlarmAction:
          $ref: '#/components/schemas/CreateAlarmActionType'
        customActions:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CustomRuleAction'
        customLLMActions:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CustomLLMActionType'
        emailAuditLogExportActions:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/EmailAuditLogExportActionType'
        enableDisableAudioRecordActions:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/EnableDisableAudioRecordActionType'
        integrationCommandActions:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/IntegrationCommandActionType'
        integrationNotificationActions:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/IntegrationNotificationActionType'
        liveNotificationAction:
          type:
          - boolean
          - 'null'
        remoteDoorUnlockActions:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/RemoteDoorUnlockActionType'
        robotActions:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/RobotAction'
        thirdPartyAudioPlaybackAction:
          $ref: '#/components/schemas/ThirdPartyAudioPlaybackActionType'
        thirdPartyStrobeSirenAction:
          $ref: '#/components/schemas/ThirdPartyStrobeSirenActionType'
        triggerComponentRelayActions:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/TriggerComponentRelayActionType'
        webhookActions:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/WebhookActionType'
    TriggerComponentRelayActionType:
      type: object
      properties:
        componentUuid:
          type:
          - string
          - 'null'
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
        outputType:
          $ref: '#/components/schemas/ComponentRelayOutputTypeEnum'
        overrideRelayDurationMs:
          type:
          - integer
          - 'null'
          format: int32
        overrideRelayDurationSec:
          type:
          - integer
          - 'null'
          format: int32
        ownerDeviceUuid:
          type:
          - string
          - 'null'
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
        state:
          $ref: '#/components/schemas/GenericRelayStateEnumType'
        version:
          type:
          - integer
          - 'null'
          format: int32
          readOnly: true
    GenericRelayStateEnumType:
      type: string
      enum:
      - ACTIVE
      - INACTIVE
      - UNKNOWN
    OPERATOREnum:
      type: string
      enum:
      - GT
      - LT
      - LTE
      - GTE
      - EQ
      - CONTAINS
    CancelLoopingAudioPlaybackActionType:
      type: object
      properties:
        _audioDevices:
          type:
          - array
          - 'null'
          items:
            type:
            - string
            - 'null'
            format: DeviceFacetUuid
            description: RUUID with optional appended facet information
            example: AAAAAAAAAAAAAAAAAAAAAA.v0
        audioDevices:
          type:
          - array
          - 'null'
          items:
            type:
            - string
            - 'null'
            format: DeviceFacetUuid
            description: RUUID with optional appended facet information
            example: AAAAAAAAAAAAAAAAAAAAAA.v0
    IntegrationCommandActionType:
      type: object
      properties:
        commandPayload:
          type:
          - string
          - 'null'
        delaySecs:
          type:
          - integer
          - 'null'
          format: int32
        integration:
          $ref: '#/components/schemas/IntegrationEnum'
    RobotActionTypeEnum:
      type: string
      enum:
      - DEPLOY
      - UNKNOWN
    DeployRobotAction:
      type:
      - object
      - 'null'
      allOf:
      - type: object
        properties:
          mapUuid:
            type:
            - string
            - 'null'
            format: RUUID
            description: base 64 (url-safe) uuid string
            example: AAAAAAAAAAAAAAAAAAAAAA
          navType:
            $ref: '#/components/schemas/NavigationTypeEnum'
          pose:
            $ref: '#/components/schemas/Pose'
          routeUuid:
            type:
            - string
            - 'null'
            format: RUUID
            description: base 64 (url-safe) uuid string
            example: AAAAAAAAAAAAAAAAAAAAAA
          waypointUuid:
            type:
            - string
            - 'null'
            format: RUUID
            description: base 64 (url-safe) uuid string
            example: AAAAAAAAAAAAAAAAAAAAAA
      properties:
        deviceUuid:
          type:
          - string
          - 'null'
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
        type:
          $ref: '#/components/schemas/RobotActionTypeEnum'
    CheckCondition:
      type:
      - object
      - 'null'
      properties:
        operator:
          $ref: '#/components/schemas/OPERATOREnum'
        value:
          type:
          - string
          - 'null'
    WebhookActionType:
      type: object
      properties:
        headers:
          type:
          - object
          - 'null'
          additionalProperties:
            type:
            - string
            - 'null'
        oauthClientId:
          type:
          - string
          - 'null'
        oauthClientSecret:
          type:
          - string
          - 'null'
        oauthGrantType:
          type:
          - string
          - 'null'
        oauthScope:
          type:
          - string
  

# --- truncated at 32 KB (62 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/rhombus-systems/refs/heads/main/openapi/rhombus-systems-scene-query-webservice-api-openapi.yml